1. 17 May, 2000 1 commit
    • Jody Goldberg's avatar
      Fix more memory errors. · 98e8cf26
      Jody Goldberg authored
          creating rows/cols when resizing empties.
      
      2000-05-17  Jody Goldberg <jgoldberg@home.com>
      
      	* src/sheet.c
      	(sheet_{col,row}_size_fit_pixels) : Return 0 if there are no cells.
      
      	* src/summary.c (summary_item_as_text) : Be careful to strdup all strings.
      	(g_str_case_equal) : Delete duplicate.
      	(g_str_case_hash) : Delete duplicate.
      	(summary_info_new) : Use gnumeric_strcase_hash & gnumeric_strcase_equal.
      
      	* src/workbook-cmd-format.c (workbook_cmd_format_{column,row}_auto_fit) :
      	  Only mark the sheet as dirty if something was changed.
      
      	* src/stf.c (stf_read_workbook) :  Bring up to date.
      
      	* src/xml-io.c (xml_write_attributes) : Do not use freed memory.
      
      	* src/item-bar.c (item_bar_event) : Autosizing an empty row/col
      	  returns 0.
      98e8cf26
  2. 20 Apr, 2000 1 commit
    • Jody Goldberg's avatar
      Reorg cell contents and assignment. · bedb925b
      Jody Goldberg authored
      Fixs lots of usability details.
      
      2000-04-20  Jody Goldberg <jgoldberg@home.com>
      
      	* src/dialogs/dialog-cell-format.c : Use the edit_pos as the example
      	  not the top left corner.
      
      	* src/functions/fn-stat.c (gnumeric_ftest) : Use eval_pos_cellref
      	  to help localize the strangeness.
      	(gnumeric_ttest) : Ditto.
      
      	* src/xml-io.c (xml_write_cell_and_position) : If this is an array
      	  expression and we are the top left then add attributes to indicate
      	  size of array.  Ignore the rest of the array.
      	(xml_not_used_old_array_spec) : New routinr to handle the old array format.
      	(xml_cell_set_array_expr) : store an array.
      	(xml_read_cell) : Handle the old and the new array formats.
      
      	* src/workbook.c (workbook_close_if_user_permits) : Accept input
      	  first.
      	(wb_edit_key_pressed) : Handle array formulas here.
      	(workbook_detach_sheet) : Do not recalc all if we are exiting.
      	(workbook_start_editing_at_cursor) : When we start editing an
      	  array formula display just the formula not all the extra {}()[][] crap.
      
      	* src/sheet.c (SheetPrivate) : Add a recompute_spans flag.
      	(sheet_calc_spans) : New routine.
      	(sheet_cell_calc_span) : New routine.
      	(sheet_range_calc_spans) : Renamed and extended from
      	  sheet_cells_update.
      	(sheet_update) : Use sheet_calc_spans when necessary.
      	  Update the location region when the edit_pos changes.
      	(cb_recalc_spans_in_col) : Renamed from cb_collect_cells_in_col.
      	  Recalcs spans directly, no need to collect first.
      	(cb_set_cell_content) : New routine to set expr, or expr_and_value.
      	(sheet_range_set_text) : Use cb_set_cell_content, and remember
      	  chosen format with the cell rather than overriding the assigned
      	  format.
      	(sheet_cell_set_text) : Renamed from sheet_set_text.  Be more specific
      	  about how spans, rendering and the rest are handled.
      	(sheet_cell_set_expr) : New routine.
      	(sheet_cell_set_value) : Ditto.
      	(sheet_load_cell_val) : When displaying an array formula add {%s}()[][].
      	(sheet_redraw_cell_region) : Honour spans when redrawing.
      	(sheet_redraw_partial_row) : New routine.
      	(sheet_redraw_cell) : Ditto.
      	(sheet_is_cell_array) : Use cell_is_array.
      	(sheet_range_splits_array) : Renamed from sheet_check_for_partial_array.
      	(sheet_cell_add_to_hash) :  Do not touch spans at this point.
      	(sheet_cell_insert) : Rename from sheet_cell_add made recalc span
      	  optional.
      	(sheet_cell_new) : New routine that does not touch spans.
      	(sheet_cell_remove) : Made redraw optional.
      	(cb_clear_cell_comments) : Remove the cell if there is no comment.
      	(sheet_clear_region) : Remove the cell if there are no comments or
      	  contents.  Flag an update of the status region.
      
      	* src/sheet-view.c (cb_colrow_resize) : New function.
      	(sheet_view_col_size_changed) : Resize all rows, irrespective of
      	(sheet_view_row_size_changed) : existing cells.
      	(sheet_view_redraw_cell_region) : This no longer honours spans.
      
      	* src/sheet-style.c (sheet_style_attach) : Removed call to redraw.
      	sheet_cells_update : rename to sheet_range_calc_spans and move to
      	  sheet.c.
      
      	* src/sheet-autofill.c (autofill_cell) : Use sheet_cell_set_value
      	  rather than set_text.
      
      	* src/selection.c (sheet_selection_changed_hook) : Delete.
      	(sheet_selection_extend_to) : Update the status region to display the
      	  new size.
      	(sheet_selection_cut) : Use sheet_range_splits_array.
      	(selection_check_for_array) : New routine.
      
      	* src/parser.y : Remove icky array formula parsing that conflicted
      	  with array entries.
      
      	* src/number-match.c (format_match) : Return a Value * rather than a
      	  double.
      
      	* src/mstyle.c (mstyle_set_font_size) : Do not allow font sizes < 1.
      
      	* src/main.c (gnumeric_main) : Do NOT create an empty workbook
      	  then delete it if things are successfully loaded.  This causes
      	  a global recalc.  Instead add a flag to disable exit when the
      	  number of workbooks go to zero.  Then only enable the flag AFTER
      	  we have attempted to load the initial workbooks.
      
      	* src/item-grid.c (item_grid_event) : Update the status_region when
      	  button-1 is release.  It should display the edit_pos.
      
      	* src/gutils.c : Move cell_name, col_name, col_from_name,
      	  parse_cell_name, parse_cell_name_or_range and parse_cell_name_list,
      	  to parse-util.c.
      
      	* src/gnumeric.h  : Add RenderedValue.
      
      	* src/gnumeric-util.c (gnumeric_char_start_expr_p) : Move
      	  to parse-util.c
      
      	* src/file.c (workbook_read) : Remove freese thaw usage.
      	  Move call to update AFTER mark clean.
      
      	* src/expr.c (eval_pos_init) : Take a cellpos.
      	(parse_pos_evalpos) : New routine.
      	(eval_pos_cellref) : There is some questionable code scattered in the
      	  functions.  This routing localizes the odd bits for correction.
      
      	* src/eval.c (cell_eval_content) : Use sheet_redraw_cell,
      	  and rendered_value_calc_size.
      	(cell_get_dependencies) : Improve constness.
      
      	* src/corba-sheet.c : Remove the freeze thaw operations.
      	(Sheet_cell_set_formula) : Deleted.
      	(Sheet_range_set_formula) : Delete.
      
      	* src/commands.c : Adjust so that registration of command auto
      	  calls redo.  Add misc checks for splitting arrays.
      
      	* src/clipboard.h : Move the CellCopy types here from cell.h
      
      	* src/clipboard.c (paste_cell) : Use cell_has_expr.
      	  Don't insert the new cell till after its contents are assigned.
      
      	* src/cellspan.c (cell_register_span) : Improve constness.
      	(cell_unregister_span) : Ditto.
      	(row_cell_get_displayed_at) : Delete.
      	(cell_calc_span) : Moved here from cell.c
      
      	* src/dialogs/dialog-stf.glade : Adjust the header background colour
      	  to match the purdy new icon.  Add the icon.
      
      	* src/cell-draw.c : Use the rendered_value routines.
      	  Improve constness.
      
      	* src/analysis-tools.c (set_cell) : Use sheet_cell_fetch.
      
      	*.*
      	    cell_set_* -> sheet_cell_set_
      	    cell_set_*_simple -> cell_set_
      	    Cell::{row,col} -> Cell::{row,col}_info
      	    cell_get_text -> cell_get_entered_text
      	    cell_get_content -> cell_get_entered_text
      	    cell_name -> cell_coord_name
      	    cell_get_formatted_val -> cell_get_rendered_text
      	    cell_get_content -> cell_get_entered_text
      
      	* src/cell.c :
      	(cell_dirty) : Renamed from cell_modified.  Use
      	  sheet_set_dirty.
      	(cell_formula_changed) : Make the queuing of the recalc optional.
      	(cell_cleanout) : Handle union of expression and entered_text,
      	  and remove the rendered value.
      	(cell_copy) : Ditto.
      	(cell_destroy) : handle cell_modified -> cell_dirty.
      	(cell_set_text) : Use parse_text_value_or_expr and store the prefered
      	  format.
      	(cell_set_text_and_value) : New routine.
      	(cell_assign_value) : New routine.
      	(cell_set_value) : Support formats.
      	(cell_set_expr_and_value) : New routine.
      	(cell_set_expr_internal) : Split from cell_set_expr.
      	(cell_set_expr) : Divide to allow for not queuing a recalc.
      	(cell_set_array_formula) : Use cell_set_expr_internal.
      	(cell_is_array) : New utility.
      	(cell_is_partial_array) : New utility.
      	(cell_has_expr) : New utility.
      	(cell_render_value) : Use rendered_value_*.
      	Move all comment routines into cell-comment.[ch].
      
      	* idl/Gnumeric.idl : Remove cell_set_formula, and range_set_formula.
      	  These were identical to set_text.  Made Workbook embeddable.
      bedb925b
  3. 24 Feb, 2000 1 commit
    • Michael Meeks's avatar
      Patch from Dom Lachowicz <dominicl@seas.upenn.edu>: · 2bdefefa
      Michael Meeks authored
      	Make the plugin registration process nicer and add user readable
      descriptions;
      
      Also:
      
      2000-02-24  Michael Meeks  <michael@helixcode.com>
      
      	* src/plugin.c (plugin_close): expand.
      
      2000-02-23  Dom Lachowicz <dominicl@seas.upenn.edu>
      
      	* src/widgets/widget-color-combo.[ch]:
      	In function color_table_construct() - moved tool_tip in order to
      	plug memory leak(called gtk_tooltips_new() too many times)
      
      	* src/functions/fn-database.c (gnumeric_daverage): add error for
      	-'ive count
      2bdefefa
  4. 10 Feb, 2000 1 commit
    • Jody Goldberg's avatar
      Remove inclusion of cell.h. Adjust includes to loosen things a bit more. · f6b62c13
      Jody Goldberg authored
      
      2000-02-10  Jody Goldberg <jgoldberg@home.com>
      
      	* src/sheet.h : Remove inclusion of cell.h.  Adjust includes to loosen
      	  things a bit more.
      
      	* src/colrow.h : Remove margin_a_pt margin_b_pt.  Margins are NOT
      	  scaled by resolution or zoom.
      	  Rename units -> size_pts and store as float rather than double.
      	  Rename pixels-> size_pixels
      	  hard_size -> use gboolean rather than a 1 element bitfield
      
      	* src/style.h : Move the typedefs from here.
      	* src/gnumeric.h : to here.
      
      	*.[ch] : Catch up with the renames and include changes.
      f6b62c13
  5. 31 Jan, 2000 1 commit
    • Jody Goldberg's avatar
      Move more of the pure view elements into WorkbookPrivate. · a038ab94
      Jody Goldberg authored
      
      2000-01-31  Jody Goldberg <jgoldberg@home.com>
      
      	* src/worksheet.h : Move more of the pure view elements into
      	  WorkbookPrivate.
      
      	* src/sheet.h : Remove include of workbook.h
      
      	* *.c : manually include workbook.h only where we need it.
      
      	* src/ranges.c (parse_range) : Move here from dialog-analysis-tools.c
      	  to avoid warnings.
      
      	* src/corba-workbook.c (Workbook_save_to) : Adjust to new calling
      	  convention.
      	* src/corba-workbook-factory.c (WorkbookFactory_read) : Ditto.
      
      	* src/parser.y : Support interbook references.
      
      	* src/item-bar.c : Ignore scroll-wheel events. Eventually the app will
      	  handle these rather than the grid.
      a038ab94
  6. 28 Jan, 2000 1 commit
    • Jon K Hellan's avatar
      Megacommit. · 333a8167
      Jon K Hellan authored
      2000-01-29  Jon K Hellan  <hellan@acm.org>
      
      	Megacommit.
      
      	The purpose of the changeset is twofold:
      
      	1. Use CommandContexts for error reporting for file read/save.
      	2. This allows us to let FileFormatOpen return 0 on success, -1 on
      	   failure, same as FileFormatSave. The convention to return NULL
      	   on success was highly ideosyncratic.
      
      	* src/file.h (FileFormatOpen, FileFormatSave, workbook_load_from,
      	workbook_import): Add CommandContext
      	(FileFormatOpen, workbook_load_from): Return int instead of char*.
      
      	* src/file.c (workbook_load_from, workbook_try_read,
      	workbook_read, workbook_import, workbook_save_as, workbook_save)
      	(file_error_message): Remove function
      	(workbook_read, workbook_load_from, workbook_save_as,
      	workbook_save): Do not display message, message, plugin does -
      	using CommandContext.
      	(workbook_load_from): Return int instead of char*.
      	(workbook_load_from, workbook_import): fo->open returns int
      	instead of char*.
      	(workbook_try_read): Remove msg paramenter
      
      	* src/workbook.c (workbook_persist_file_load,
      	workbook_persist_file_save): Use workbook_command_context_gui.
      	(file_import_cmd): ditto
      	(file_open_cmd): ditto
      
      	* src/gnumeric-sheet.c (gnumeric_sheet_filenames_dropped): Use
      	workbook_command_context_gui. Call workbook_try_read without msg
      	argument.
      
      	* src/workbook.h (workbook_try_read, workbook_read,
      	workbook_save_as, workbook_save): Add command context
      	(workbook_try_read): Remove msg paramenter
      
      	* src/dialogs/dialog-autosave.c (dialog_autosave_callback):
      	ditto
      
      	* src/command-context.[ch] (gnumeric_error_read,
      	gnumeric_error_save): New functions.
      
      	* src/command-context-corba.c (ccc_error_read, ccc_error_save):
      	Ditto.
      	(ccc_init_class): Initialize error_read, error_save.
      
      	* src/command-context-gui.c (ccg_error_read, ccg_error_save):
      	Ditto.
      	(ccg_init_class): Initialize error_read, error_save.
      
      	* src/main.c (gnumeric_main): Make a CommandContext for use before
      	we make first workbook. Unref it when no longer needed. Call
      	plugins_init and workbook_read with CommandContext.
      
      	* src/plugin-manager.c (add_cb): Use gnumeric_error_plugin_problem.
      	(remove_cb): Ditto.
      
      	* src/plugin.c (plugin_load, plugin_unload): CommandContext
      	instead of workbook.
      	(plugins_init): Add CommandContext.
      
      	* src/plugin.c (plugin_load, plugin_unload): CommandContext
      	instead of workbook.
      	(plugin_unload): Use gnumeric_error_plugin_problem.
      	(plugin_load_plugins_in_dir, load_all_plugins, plugins_init): Add
      	CommandContext.
      
      	* src/xml-io.h:  ditto
      
      	* src/xml-io.c (gnumeric_xml_read_workbook,
      	gnumeric_xml_write_workbook):  ditto
      
      In plugins/dif:
      
      	* dif.c (dif_read_workbook, dif_write_workbook): Add
      	CommandContext.
      	(dif_read_workbook): Return 0 on success, -1 on failure.
      	 Use gnumeric_error_read to report errors.
      
      In plugins/excel:
      
      	* excel.h (ms_excel_read_workbook, ms_excel_write_workbook) Add
      	CommandContext. Return int.
      
      	* ms-excel-read.c (ms_excel_read_workbook): Add
      	CommandContext. Return 0 on success, -1 on failure. Use
      	gnumeric_error_read to display messages.
      
      	* ms-excel-write.c (write_sheet): Check max no. of rows for the
      	format.
      	(new_sheet): Return the ExcelSheet. Let caller add it to
      	wb->sheets.
      	(pre_pass): Add CommandContext.
      	(free_workbook): New function, previously in write_workbook.
      	(write_workbook): Change parameter from Workbook to ExcelWorkbook.
      	Move deallocation to free_workbook.
      	(check_sheet): New function. Check if we are able to save the
      	sheet.
      	(ms_excel_check_write): New function. Check if we are able to save
      	to the file. Do initialization previously in
      	ms_excel_write_workbook.
      	(ms_excel_write_workbook): Add CommandContext. Add state. Change
      	wb from Workbook to ExcelWorkbook. Use gnumeric_error_save to
      	report problems. Return 0 on success, -1 on failure.
      
      	* ms-excel-biff.h: Define enum for max no. of rows. Fix typo.
      
      	* boot.c (excel_load, excel_save, excel_save_98, excel_save_95):
      	Add CommandContext.
      	(excel_load): Return 0 on success, -1 on failure.
      	Use gnumeric_error_read to display messages. Remove "Opening .. "
      	message on stdout.
      	(excel_probe_write): New function. Check if we are able to save to
      	the file.
      	(excel_save): Use gnumeric_error_save to display messages.
      	Return 0 on success, -1 on failure.
      
      In plugins/ff-csv:
      
      	* csv-io.c (csv_read_workbook, csv_write_workbook,
      	csv_parse_sheet, csv_parse_field): Add CommandContext. Return 0 on
      	success, -1 on failure. Use gnumeric_error_read to report errors.
      
      In plugins/ff-stf:
      
      	* dialog-stf.h: Add CommandContext. Return int.
      
      	* dialog-stf.c (dialog_stf) : Add CommandContext. Return 0 on success,
      	-1 on failure. Use gnumeric_error_read to report errors.
      
      	* stf.c (stf_read_workbook): Ditto.
      
      In plugins/html:
      
      	* epsf.h (epsf_write_wb): Add CommandContext.
      
      	* epsf.c (epsf_write_wb): ditto.
      
      	* latex.h (html_write_wb_latex, html_write_wb_latex2e): ditto
      
      	* latex.c (html_write_wb_latex, html_write_wb_latex2e): ditto
      
      	* roff.c (html_write_wb_roff_ps, html_write_wb_roff_dvi,
      	html_write_wb_roff_pdf, html_write_wb_roff): ditto
      
      	* roff.c (html_write_wb_roff_ps, html_write_wb_roff_dvi,
      	html_write_wb_roff_pdf, html_write_wb_roff): ditto
      
      	* html.h (html_read, html_write_wb_html40, html_write_wb_html32):
      	ditto.
      	(html_read): Return int.
      
      	* html.c (html_read, html_write_wb_html40, html_write_wb_html32):
      	ditto
      	(html_read): Return 0 on success, -1 on failure. Use
      	gnumeric_error_read to report errors.
      
      In plugins/lotus-123:
      
      	* lotus.c (lotus_read): Add CommandContext. Return 0 on success,
      	-1 on failure. Use gnumeric_error_read to report errors. Close
      	file unconditionally.
      	(read_workbook): Return 0 on success, -1 on failure. Remove unused
      	panic_message variable.
      
      	* lotus.h (lotus_read): Add CommandContext. Return int.
      
      	* boot.c (lotus_load): Ditto
      
      In plugins/oleo:
      
      	* oleo.c (oleo_read): Add CommandContext. Return 0 on success,
      	-1 on failure. Use gnumeric_error_read to report errors.
      
      	* oleo.h (oleo_read): Add CommandContext. Return int.
      
      	* boot.c (oleo_load): Ditto.
      
      In plugins/plan-perfect:
      
      	* pln.c (pln_parse_sheet, pln_read_workbook): Add
      	CommandContext. Return 0 on success, -1 on failure. Use
      	gnumeric_error_read to report errors.
      
      In plugins/sc:
      
      	* sc.c (sc_read_workbook, sc_parse_sheet): Add
      	CommandContext. Return 0 on success, -1 on failure.  Use
      	gnumeric_error_read to report errors.
      
      In plugins/sylk:
      
      	* sylk.c (sylk_read_workbook, sylk_parse_sheet): Add
      	CommandContext. Return 0 on success, -1 on failure. Use
      	gnumeric_error_read to report errors.
      
      In plugins/text:
      
      	* text-io.c (text_read_workbook, text_write_workbook,
      	readTextWorkbook): Add CommandContext.
      	(text_read_workbook, readTextWorkbook): Return 0 on success, -1 on
      	failure.
      	(readTextWorkbook): Use gnumeric_error_read to report errors.
      
      In plugins/xbase:
      
      	* xbase.h (xbase_open): Add CommandContext.
      
      	* xbase.c (xbase_open): Add CommandContext. Remove progress
      	message to stdout. Use gnumeric_error_read to report errors.
      
      	* boot.c (xbase_load): Add CommandContext. Return 0 on success, -1
      	on failure.
      333a8167
  7. 15 Jan, 2000 2 commits
    • Almer S. Tigelaar's avatar
      Almer. S. Tigelaar. <almer1@dds.nl> · 05506d97
      Almer S. Tigelaar authored
      	* stf-separated.c, stf-fixed.c :
      	If a file's last line has _no_ line terminator but instead ends
      	with a \0 both the fixed and separated parse functions would skip
      	over this \0 and continue parsing past the buffer, this is fixed
      	now.
      
      	* dialog-stf.c :
      	Pressing the Back button on the main page would result in a
      	Page Cycle Error from the STF and another error from the Druid.
      	Fixed.
      
      	* stf.c :
      	No more memory mapping is done, this caused portability problems
      	and is now replaced with read and a dynamically allocated buffer.
      
      	* stf.c :
      	Added a check (stf_is_valid_input_data) which will check the data
      	and see if it _really_ is a valid text file/valid input data.
      
      	* stf-util.c, stf-util.h, stf-fixed.c, stf-separated.c :
      	References to the overkill (stf_is_line_terminator) function have
      	been replaced by *buffer != '\n'.
      
      	* dialog-stf-csv-page.c :
      	Attached a new signal to the Custom Checkbutton on the Separation
      	Customization page so that the text widget next to it will do nice
      	stuff like changing sensitivity and auto focus.
      
      	* dialog-stf-csv-page.c :
      	Added some gnome style headers
      	they weren't all there yet
      
      	* stf-preview.c:
      	Made the column headers in the preview gray to make them more
      	distinguishable from the cells that contain data.
      05506d97
    • 5's avatar
      Renamed to be more obvious · 52dc699e
      5 authored
      2000-01-15    <miguel@gnu.org>
      
      	* stf.c (init_plugin): Renamed to be more obvious
      52dc699e
  8. 11 Jan, 2000 1 commit