Arrays: code cleanup.
[gnumeric.git] / OChangeLog-1999-07-09
blob06e91f41ee91b772dd31a0b277fb9ff1d2a69f81
1 1999-07-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3         * src/about.c (dialog_about): Sort in alphabetical order.
5         * src/print-info.c (print_hf_free): Killed the style_format feature.
7         * src/print.c (print_job_info_get): Create render info context
8         here for header/footer printing.
9         (print_sheet_range): Setup number of pages here;  Increment pages
10         after each one is outputed.
11         (print_headers): Implemented the header/footer printing.
13         * src/print-info.c (hf_render_info_new, hf_render_info_destroy):
14         New routines.
16         * src/fn-date.c (gnumeric_return_current_time): New function.
18 1999-07-09  Miguel de Icaza  <miguel@gnu.org>
20         * configure.in (GNOMEGNORBA_LIBS): Simplified the Bonobo detection code.
22 1999-07-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
24         * src/analysis-tools.c: Changed prototype of int_compare to
25         eliminate a warning.
27         Removed unused variables.
29         * src/cell.c: #inlcude gnumeric-util to eliminate warning.
31         * src/fn-financial.c: Fixed all the help strings to get the
32         SEELASO correctly done
34         * src/style.c: Zoom factor 1.0 is a reminder to me, not a warning.
36 1999-07-09  Miguel de Icaza  <miguel@gnu.org>
38         * src/sheet-view.c (sheet_view_construct): Reverted last plan.  We
39         do need a sheet_view_construct, as we require sheet_view->sheet to
40         be set.
42 1999-07-08  Miguel de Icaza  <miguel@gnu.org>
44         * src/cell.c (calc_text_dimensions): Use gdk_fonts for measuring
45         the strings on the screen.  Basically, back out using GnomeFont here.
47         * src/print-info.c (render_date, render_time): Finished
48         implementing.
49         (render_opcode): Enable argument mechanism to extend the number of
50         possible formats.  Excel accepts stuff like &[DATE], we extend
51         this to accept &[DATE:mmmm-yyyy].  The argument for &[DATE] and
52         &[TIME] is a regular Gnumeric formatting code (ie, compattible
53         with the cell formating in Excel).
55         * src/sheet-view.h: Change style to suit forward declaration
56         structure.
58         * src/sheet.h: Use forward declaration for SheetView.
60         * src/sheet.c (sheet_new_sheet_view, sheet_destroy_sheet_view):
61         New routines for managing the sheet views.
63         * src/sheet-view.c: Killed sheet_view_construct, there was nothing
64         really required there.  Moved all the code to sheet_view_init.
65         (sheet_view_scrollbar_display, sheet_view_set_header_visibility):
66         New routines that control the visibility of the various gadgets of
67         a SheetView.
69         * embeddable-grid.c, embeddable-grid.h: New files.  They implement
70         the Bonobo GnomeEmbeddable interfaces for embedding Gnumeric in
71         applications.
73         * src/workbook.c (workbook_new, workbook_core_new): Split this
74         routine in two:  GUI independant and GUI dependant.  The next step
75         is to provide multiple views of a workbook (although, I am not
76         sure I want this).
77         (workbook_new_with_sheets): Kill dead code.
79         * src/corba-sheet.c (Sheet_row_height, Sheet_col_width,
80         Sheet_max_cols_used, Sheet_max_rows_used): New methods.
82         * src/Gnumeric.idl (Sheet): new methods max_cols_used,
83         max_rows_used, col_width, row_height.
85         (Grid): New interface for embeddable grids.
87         * src/print-info.c (hf_format_render): Rendering routine for the
88         header and footers formats.
90 1999-07-09  Michael Meeks  <michael@edenproject.org>
92         * src/Gnumeric.idl: Add GNOME::Unknown back in.
94 1999-07-09  Jukka-Pekka Iivonen  <iivonen@iki.fi>
96         * src/dialog-analysis-tools.c, src/analysis-tools.c: Added an
97         option to all tools to print the results to a new workbook.
99         * src/dialog-analysis-tools.c, src/analysis-tools.c: Added Moving
100         Average and Rank and Percentile tools.
102 1999-07-09  Michael Meeks  <michael@edenproject.org>
104         * src/eval.c (add_value_deps): Add warning on default:
105         (add_cell_range_deps): Fixup for correct inter-sheet
106         dependencies; massive bug.
108         * TODO: Updated.
110         * doc/C/formulas.sgml: Wrote the 'name' documentation.
112 1999-07-08  Michael Meeks  <michael@edenproject.org>
114         * src/func.c (function_iterate_do_value): Fix for NULL CellRef
115         Sheet *, fallback to EvalPosition's Sheet *
117         * src/fn-math.c (gnumeric_countif): ditto.
119         * src/fn-math.c (gnumeric_seriessum): Add check for NULL nodes
120         pointer.
122 1999-07-08  Jody Goldberg  <jgoldberg@home.com>
124         * src/cell-draw.c (cell_split_text) : Honour embedded newlines.
125           Why do we call str_trim_spaces ?
127         * src/print-cell.c (cell_split_text) : Ditto.  Adjust gnome-print to
128           make the code even more similar to cell-draw version.  Should we be
129           using double rather than int for width calculations ?
130           NOTE : This requires some recent (1999/7/7) changes to gnome-print.
132         * src/cell.c (cell_comment_realize) : reference the comment object
133           to avoid verbose warnings when we exit.
135 1999-07-08  Jukka-Pekka Iivonen  <iivonen@iki.fi>
137         * doc/C/analysis-tools.sgml: New file. Added documentation for the
138         following analysis tools: Correlation, Covariance, Descriptive
139         Statistics, Random Number Generation, Sampling, and F-Test.
141         * src/dialog-analysis-tools.c: Added some default parameters for
142         the random number generation tool.
144         * src/dialog-analysis-tools.c, src/analysis-tools.c: Started the
145         implementation of regression tool.  Feel free to fill in the rest
146         of the calculations if you are familiar with the regression
147         statistics.
149 1999-07-08  Michael Meeks  <michael@edenproject.org>
151         * src/eval.c (add_tree_deps): Change exprt to expr_tree.
153         * src/Gnumeric.idl: Removed : GNOME::Unknown from Workbook so
154         people can compile for now.
156 1999-07-07  Michael Meeks  <michael@edenproject.org>
158         * src/expr.c (do_expr_decode_tree): Add vital translation stuff.
160         * src/parser.y (return_name): Created.
161         (try_symbol): Add name lookup.
163         * src/eval.c (add_tree_deps): Calculate name dependencies if at all
164         possible.
166         * src/main.c (gnumeric_main): Add expr_name_init.
168         * src/expr.c (expr_tree_new_name, do_expr_tree_unref),
169         (eval_expr, do_expr_decode_tree, do_expr_tree_invalidate_references),
170         (do_expr_tree_fixup_references, expr_dump_tree): Add OPER_NAME support
171         in every case just after OPER_FUNCALL.
173         * src/expr.h: Add ExprName struct, include and OPER_NAME.
175         * src/Makefile.am (GNUMERIC_BASE_SOURCES): Added expr_name.[ch]
177 1999-07-07  Miguel de Icaza  <miguel@gnu.org>
179         * configure.in (EXTRA_GNOME_CFLAGS): Assemble all the flags we
180         will be linking with here.X
182         * src/Gnumeric.idl: Small typo fixes.
184         * Killed liblgade from here, it is now a requirement.
186 1999-07-07  Jukka-Pekka Iivonen  <iivonen@iki.fi>
188         * src/dialog-analysis-tools.c: Cleaned up `groupped by' radio
189         button code.  Added `Labels in First Row' check buttons for all
190         tools.  Made the tool list inside of a scrolled window.
192         * src/dialog-analysis-tools.c, src/analysis-tools.c: Implemented
193         `Random Number Generation' tool with the following distributions:
194         Discrete, Normal, and Uniform.
196 1999-07-07  Michael Meeks  <michael@edenproject.org>
198         * src/about.c (dialog_about): Add Jody, updated Sean.
200         * src/dialog-cell-sort.c (dialog_cell_sort): Stop degenerate
201         cases from producing confusing 'Add / Remove clause' boxes.
203 1999-07-05  Miguel de Icaza  <miguel@gnu.org>
205         * src/Gnumeric.idl: Use new interface name.
207 1999-07-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
209         * src/dialog-analysis-tools.c, src/analysis-tools.c: Added some
210         error checks, not complete yet.
212 1999-07-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
214         * src/dialog-analysis-tools.c, src/analysis-tools.c: Added output
215         frames and an option to output into an existing sheet.
217 1999-07-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
219         * src/dialog-analysis-tools.c: Cleaned up a lot.  Added input
220         frames to input entries.
222 1999-07-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
224         * src/analysis-tools.c, src/dialog-analysis-tools.c,
225         src/dialogs.h: Implemented F-Test tool.
227 1999-07-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
229         * src/analysis-tools.c, src/dialog-analysis-tools.c,
230         src/dialogs.h: Implemented t-Test and z-Test tools.
232 1999-07-05  Miguel de Icaza  <miguel@gnu.org>
234         * src/about.c (dialog_about): Added link to IGS web site.
236 1999-07-05  Jody Goldberg  <jgoldberg@home.com>
238         * src/cell.c (cell_set_formula) : Rework array-formula logic to deal
239           with cell_set_array_formula releasing the wrapper generated by the
240           parser.
241         (cell_set_text) : Crude but effective prohibition for editing 1 cell
242           in an array.
244         * src/eval.c : Add more debug info.
245         (search_cell_deps) : Rename search_range_deps.
246         (search_cell_deps) : New function.  Special case of a single cell
247           only needs 1 call to intersect.
249         * src/expr.c (do_expr_tree_invalidate_references,
250                       do_expr_tree_fixup_references) : Implement for OPER_ARRAY.
251           (expr_tree_get_const_str) : New function.
253         * src/format.c (format_number) : Made debug warning more verbose but
254           only print it the 1st time.
256         * src/gnumeric-util.[c,h] (gnumeric_no_modify_array_notice) : New.
258         * src/sheet.c (sheet_clear_region): Use gnumeric_no_modify_array_notice.
259         (avoid_dividing_array_horizontal, avoid_dividing_array_vertical) : New.
260         (sheet_insert_row, sheet_insert_row) : Use them.
261         (sheet_fill_selection_with) : Add flag to differentiate fills and
262           array-formulas.  Check to ensure that the array/fill operation does
263           not overwrite a subset of an array.
265         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet) : Pass is_array.
266           (gnumeric_sheet_patterns) : Adjust to more exactly match Excel.
267           NOTE : They are listed in DISPLAY order not excel's internal index
268           scheme, that requires a map.
270         * src/gnumeric-sheet.h : Increase number of patterns.
272         * src/pattern-selector.c : Adjust layout to match Excel.  Still need to
273           figure out how to get the stipples on a white background.
275         * src/main.c : Add debug_excel_{read,formulas,color,chart} to
276           allow run time vs compile time verbosity.
278 1999-07-05  Morten Welinder  <terra@diku.dk>
280         * src/expr.c (value_array_resize): Shined up, fixed, not tested.
282         * src/print-info.c (print_hf_new): Constify.
283         (print_hf_free): Fix leaks.
285         * src/workbook.c (workbook_do_destroy): Fix leak.
287         * src/style.c (style_shutdown): Unref out fonts.
289         * src/sheet.c (sheet_start_editing_at_cursor): Doc fix.
291 1999-07-05  Jukka-Pekka Iivonen  <iivonen@iki.fi>
293         * src/analysis-tools.c, src/dialog-analysis-tools.c,
294         src/dialogs.h: Implemented Sampling Tool.  Still more to come.
296 1999-07-05  Morten Welinder  <terra@diku.dk>
298         * src/style.c (style_font_new_simple): Reinstate negative caching.
300         * src/xml-io.c (xml_set_gnome_canvas_points): Handle zero point
301         case.  Don't rely on return value from sprintf.
303         * src/dialog-function-select.c (function_definition_update): Kill
304         warnings.
306         * src/dialog-analysis-tools.c (dummy_fun): Make static.
307         (summary_stat_signal_fun): Ditto.
308         (confidence_signal_fun): Ditto.
309         (kth_largest_signal_fun): Ditto.
310         (kth_smallest_signal_fun): Ditto.
311         (tool_dialog_range): Ditto.
312         (selection_made): Ditto.
313         (dialog_data_analysis): Kill warning.
315         * src/analysis-tools.c (descriptive_stat_tool): Kill warnings.
317 1999-07-05  Jukka-Pekka Iivonen  <iivonen@iki.fi>
319         * src/analysis-tools.c, src/dialog-analysis-tools.c,
320         src/dialogs.h: Implemented Descriptive Statistics Tool.  Please do
321         not edit these files (unless a serious bug fix) for a couple of
322         days; there is more to come.
324 1999-07-05  Miguel de Icaza  <miguel@gnu.org>
326         * src/print.c: Only print the headers and sides
328         * plugins/text/text-io.c (text_cleanup_plugin): Kill probing here.
329         (text_init): kill probing here as well.
330         (text_parse_file): kill probing support here as well.
331         (text_parse_file): Do not use first line as sheet name.
333         * src/file.c (workbook_import): Added import dialog box.
334         (workbook_read): Now does only probe for existing probe routines.
335         (file_format_register_open): probe function being NULL now means
336         that this is not an auto-probe filter, but an import filter (ie,
337         the user has to manually select the file).
339 1999-07-04  Miguel de Icaza  <miguel@gnu.org>
341         * src/file.c (file_format_register_open): Allow the probe_fn to be NULL.
343         * src/workbook.c (import_file_cmd): Added import menu item.
345 1999-07-05  Michael Meeks  <michael@edenproject.org>
347         * src/sheet.c (sheet_update_auto_expr): Removed parsing.
349         * src/workbook.c (workbook_set_auto_expr): Moved unsafe parser
350         call in here.
352         * src/sheet.h: Changed auto_expr_text to ExprTree auto_expr.
354         * src/parser.y (gnumeric_expr_parser): Added.
355         (gnumeric_unsafe_expr_parser): Renamed and changed arguments.
357         * plugins/guile/plugin.c (init_plugin): New function stuff.
358         (func_scm_apply): ditto.
359         (func_scm_eval): ditto.
360         (func_marshal_func): ditto.
361         (scm_register_function): ditto.
363         * plugins/python/python.c (__register_function): Updated to
364         new function stuff.
365         (marshal_func): ditto.
367         * plugins/perl/ext/Makefile.PL.in: Added GNOME_PRINT bits.
369 1999-07-04  Michael Meeks  <michael@edenproject.org>
371         * src/workbook.c (workbook_sheet_get_free_name): Made more
372         similar to Excel: base sheet no. = 1 + no space.
373         (workbook_new_with_sheets): Update to more Excel friendly
374         names.
376 1999-07-02  Miguel de Icaza  <miguel@gnu.org>
378         * doc/Design, doc/translating.sgml: small touchups.
380         * src/dialog-printer-setup.c (do_setup_main_dialog): Set the
381         window parent here.
382         (do_setup_main_dialog): Force destruction of parent widget.
384         * src/print.glade: Removed visibility flag from toplevel dialog
385         box.
387         * doc/C/files.sgml: Updated indentation.
389         * src/dialog-printer-setup.c (do_setup_page): Use relative path
390         for printing here.
392 1999-06-30  Miguel de Icaza  <miguel@gnu.org>
394         * src/item-grid.c (item_grid_draw_cell): Eliminate warning.
396         * src/dialog-printer-setup.c: Adapted to the new setup for keeping
397         track of col/rows ranges.
398         (do_fetch_page_info): ditto.
400         * src/print.c (PrintJobInfo): Use doubles for all the printing
401         units.
402         (print_sheet_range): Take into account the repeat ranges for
403         repeated headers, repeated columns.
404         (print_sheet): compute space used by repeated headers and repeated
405         columns.
406         (print_page): Print repeating top rows and repeating left
407         columns on each page.  Loop over printing routines.
408         (print_page_cells): new routine: prints a cell range only.
409         (print_page_repeated_rows, print_page_repeated_cols): Prints the
410         repeating columns and repeating rows.
412         * src/dialog-cell-format.c (apply_font_format): Implement
413         GnomePrint based version.
416         * src/print-info.c (save_range): Updated to reflect the new change
417         to PrintRepeatRange.
418         (print_info_save): ditto.
419         (load_range): ditto.
420         (print_info_new): ditto.
422         * src/print-info.h: Store ranges as a structure that contains an
423         explicit tag for validness instead of overloading the definition
424         of Value/CellRange.
426 1999-07-02  Jukka-Pekka Iivonen  <iivonen@iki.fi>
428         * src/anaysis-tools.c: New file for data analysis tools.
429         Currently only correlation and covariance tools implemented.
431         * src/dialog-analysis-tools.c: New file.
433         * src/dialogs.h: Added some definitions for data analysis tools.
435         * src/workbook.c: Added data analysis menu entry.
437 1999-06-26  Morten Welinder  <terra@diku.dk>
439         * src/fn-string.c (gnumeric_dollar): Avoid warning overflows.
441         * src/print-info.c (print_unit_new):  Warning killer.
443         * src/fn-financial.c (calculate_fvif): Warning killer.
445         * src/expr.c (build_error_string): Re-remove.
447         * src/dialog-printer-setup.c (unit_into_to_points): Warning killer.
449         * src/mathfunc.c (MATHLIB_WARNING2, MATHLIB_WARNING4): Warning killer.
451 1999-07-01  Michael Meeks  <michael@edenproject.org>
453         * src/main.c (gnumeric_main): Added excel_shutdown.
455 1999-07-01  Jukka-Pekka Iivonen  <iivonen@iki.fi>
457         * samples/datefuns.xls: Added a few missing function tests.
459 1999-06-30 Heath Martin <martinh@pegasus.cc.ucf.edu>
461         * src/cell.c, src/cell.h: (cell_get_comment) New function.
463         * src/xml-io.c: (xml_write_cell) Save comments.
464         (xml_read_cell) Load comments.
466 1999-06-30  Michael Meeks  <michael@edenproject.org>
468         * TODO: Moved some bits to plugins/excel.
469         add a bit about Styles.
471 1999-06-29  Jody Goldberg  <jgoldberg@home.com>
473         * src/cell.c (cell_set_formula) : Handle special case of array by
474           setting the entire matrix from the top left corner.
475         (cell_set_array_formula) : New function.
477         * src/cell.h : Add cell_set_array_formula.
479         * src/eval.c (add_cell_range_deps) : Split setup into new function.
480         (add_cell_range_dep) : Here.
481         (add_tree_deps) : Support Array operators.
483         * src/parser.y : Parse new array formula syntax.
484         (dump_tree) : rename to expr_dump_tree and move to.
486         * src/expr.c (expr_dump_tree) : From parser.y.
487           (expr_tree_get_const_int) : New function.
488           (expr_tree_array_formula) : New function.
489           (expr_tree_array_formula_corner) : New function.
490           (do_expr_tree_unref) : Support Array operators.
491           (value_area_get_at_x_y) : Renamed to value_area_fetch_x_y, fixed
492             thinko, completed support for relative ranges.
493           (value_area_get_x_y) : New function, like value_area_fetch_x_y but
494             does not create missing values.
495           (eval_expr) : Support Array operators.
496           (do_expr_decode_tree) : Ditto.
497           (do_expr_tree_invalidate_references) : Ditto.
498           (do_expr_tree_fixup_references) : Ditto.
500         * src/expr.h : Add expr_tree_get_const_int, expr_tree_array_formula,
501           value_area_get_x_y, and Array operators. Rename value_area_get_at_x_y.
503         * src/fn-lookup.c : Handle renamed value_area_fetch_x_y.
504         * src/fn-math.c : Ditto. Add MMULT.
506         * src/format.c : (format_value) Handle arrays.
508         (assemble_clear_cell_list) : check that a subset of an array is not
509           being cleared.
510         * src/item-cursor.c : Ditto.
511         * src/item-grid.c : Ditto.
512         * src/xml-io.c : Deal with Array formula I/O.
514 1999-06-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
516         * src/print-info.c (save_range): Save the repeat ranges routine.
517         (print_info_save): Save the repeat ranges.
519         * src/expr.c (value_cellrange_get_as_string): Implemented.
520         (value_get_as_string): Expanded to render cellranges.
522         * src/print-info.c (load_range): New routine, loads a range from
523         the config file.
525         * src/print.c (print_sheet_range): off-by-one error fix.
527 1999-06-29  Jukka-Pekka Iivonen  <iivonen@iki.fi>
529         * samples/textfuns.xls: Added a new test file.
531         * samples/engfuns.xls, samples/mathfuns.xls: Updated.
533 1999-06-29  Jukka-Pekka Iivonen  <iivonen@iki.fi>
535         * src/fn-stat.c: Added FORECAST() and INTERCEPT().
537         * src/fn-math.c: SUMIF() can now take an optional argument
538         (actual_range).
540         * src/fn-information.c: Made N() return 0 if the given string is
541         non-number, not an error.
543 1999-06-28  Michael Meeks  <michael@edenproject.org>
545         * src/main.c (gnumeric_main): removed xbase_init.
547         * src/Makefile.am: Removed xbase static link.
549 1999-06-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
551         * src/dialog-printer-setup.c (load_image): Use a constant relative
552         to the Gnumeric installation directory, do not use the gnome
553         pixmap path routine.
555         * src/workbook.c: Add print icon to the toolbar.
557         * src/dialog-printer-setup.c (do_print_cb): Fetch settings when
558         the user presses print from here.
559         (do_setup_main_dialog): Hide non working widgets.
561 1999-06-28  Michael Meeks  <michael@edenproject.org>
563         * CHANGES: Updated for new release.
565 1999-06-27  Raja R Harinath  <harinath@cs.umn.edu>
567         * src/Makefile.am (Gnumeric-impl.o): This depends on Gnumeric.h,
568         Gnumeric-impl.c doesn't.
570         Reinstate Perl plugin.
571         * plugins/perl/Makefile.am: Clean up build.
572         * plugins/perl/ext/Gnumeric.xs (register_function):
573         Use FunctionCategory and `function_add_args' API instead of
574         `install_symbol'.
575         (marshal_func): Update to new callback prototype.
576         * plugins/perl/ext/Makefile.PL.in ('INC'): Use @top_srcdir@ rather
577         than @srcdir@/../../...
579         * doc/C/Makefile.am: Misc. srcdir != builddir fixes.
580         * configure.in (GNOME_PRINT_CFLAGS): Fix typo.
582 1999-06-25  Michael Meeks  <michael@edenproject.org>
584         * src/dialog-function-wizard.c: Re-vamped table layout.
586         * src/fn-string.c (string_functions_init): Change category
587         name to 'String'; silly me.
589         * src/dialog-function-select.c (function_definition_update): Fixed
590         old & broken function pointer code.
592         * src/expr.c (eval_funcall): Updated to use union.
593         (function_def_call_with_values): ditto.
595         * src/func.c (function_add_nodes): ditto.
596         (function_add_args): ditto.
598         * src/expr.h: Changed void *fn pointer to a slicker union.
600         * src/plugin.h: Added a prototype for the one external function
601         every plugin must have ( kills some plugins warnings ).
603         * src/workbook.c (workbook_new): Updated call to set_auto_expr
604         (change_auto_expr): ditto.
605         (workbook_do_destroy): Update.
606         (workbook_set_auto_expr): Updated, just to set text leaving heavy
607         lifting for sheet.c. This removes possible error checking of our
608         quick-functions, but an error will be displayed in the status bar
609         having set the function, and the functionality wasn't used.
611         * src/sheet.h: Removed previously extern'd workbook_set_auto_expr,
612         this should be internal.
613         Remove auto_expr_tree from Workbook *.
615         * src/sheet.c (sheet_update_auto_expr): Moved auto_expr parsing
616         into sheet_update_auto_expr. Rational; neater, and not performance
617         critical.
619 1999-06-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
621         * src/pixmaps.h: Removed unused pixmaps.
623         * src/corba-sheet.c (Sheet_corba_class_init): Fill in some missing
624         values fomr the GNOME::Gnumeric::Sheet epv interface.
626         * src/expr.c (eval_funcall): Removed unused variable.
628         * src/workbook.c (workbook_sheets): prepend and reverse instead of
629         appending all the time.  It is more efficient.
631         * src/style.c (x11_font_compute_hints): Renamed as well.  Might be
632         useful in the future.
634         * src/gnumeric-util.c (x11_font_get_italic_name,
635         x11_font_get_bold_name, x11_font_change_component): Renamed these
636         functions to reflect their actual usage.
638         * src/expr.c (expr_tree_new_constant): Change style to use early
639         return to keep indentation of the rest of the code at tab-1.  This
640         is a trick to keep indentation nice with 8-tab spaces.  Liberal
641         use of early returns, early continues, early breaks.
643         * src/cell.h (CELL_TEXT_GET): Kill unused macro.
645 1999-06-25  Miguel de Icaza  <miguel@gnu.org>
647         * src/xml-io.c (xml_read_cell): Merge the style we just read with
648         the existing information from the cell (which are the defaults).
649         This is only for compatibility with the old format
651 1999-06-24  Miguel de Icaza  <miguel@gnu.org>
653         * src/xml-io.c (style_font_new_from_x11): Implemented
655         * src/style.c (style_font_new): Improved matching of the font.
657         * src/xml-io.c  (xml_write_style): Save Bold and Italic
658         properties.  Save Units as double.
659         (xml_read_style): Add conversion hook from old format.
660         (xml_read_style): Load properly italic and bold properties.
662         (xml_read_cell): Add new style reading code.  It is
663         compatible with the old Style reading code.
664         (xml_read_rows_info, xml_read_cols_info, xml_read_styles): Moved
665         Cols, Rows and Styles loading code here, for code clarity.
667         * src/style.c (style_font_new_simple): Include the scale in the
668         key lookup variable.
670         * src/xml-io.c: The FontDefs and the HREFs to the fonts were never
671         being used.  The new code for styles simplifies this.  Kill all
672         the references to the FontDefs urls and the font indeces.
674         * src/xml-io.c
676 1999-06-23  Miguel de Icaza  <miguel@gnu.org>
678         * src/xml-io.c: Major updates.
679         (xml_read_colrow_info): Use floating point for loading the
680         units, margin_a and margin_b.
681         (xml_write_colrow_info): Save units, margin_a and margin_b using
682         floating point.
683         (xml_set_value_double): Activate this function.
684         (xml_write_cell): Do not save the style here.  Lookup the style
685         id, and write a record with the style id link.
686         (xml_sheet_write): Add call to xml_cell_styles_init and
687         xml_cell_styles_shutdown to init and shutdown the cell styles in a
688         per-sheet basis.
690         Renamed functions to suit the gnumeric coding
691         sytle.  Fixed indentation.
693         File format now saves a different version.  We store all cell
694         styles first, and then we reference them.
696         (parse_xml_context_t): renamed from
697         parseXmlContext.  Add style_table hash table for storing all the
698         styles used by the cells on a workbook.  Used to dump Styles first
699         and then have the cells reference it.
701         * src/style.c (style_hash, style_compare): New routines to
702         put Styles on hash tables.
704         * src/workbook.c (workbook_sheets): Use g_list_prepend instead of
705         g_list_append and reverse the result.
707 1999-06-14  Miguel de Icaza  <miguel@gnu.org>
709         * src/cell.h: Killed ColType and RowType definitions.  They do not
710         save any noticeable amount of memory; we are not using them but
711         on the most useless places and finally they are the current limit
712         to our spreadsheet size.
714         * src/gnumeric-sheet.h: Use int instead of ColType, RowType
715         * src/item-cursor.h: Use int instead of ColType, RowType
716         * src/item-grid.h: Use int instead of ColType, RowType
718         * src/print-cell.c (CELL_DIM): Use _pt variants of the margins here.
719         (print_cell_text): and here.
720         (print_cell): and here.
721         (print_cell_range): and here.
722         (print_cell_grid): and here.
724 1999-06-13  Miguel de Icaza  <miguel@gnu.org>
726         * src/sheet.c (sheet_compute_col_row_new_size): Update margin_a
727         and margin_b from the points.
728         (col_row_info_init): New function to initialize a sample
729         ColRowInfo.  Inits the _pt fields.
730         (col_row_unit_distance): Use the new fields in computation.
731         (sheet_col_get_unit_distance): Use new fields in computation.
733         * src/dialog-printer-setup.c (do_setup_margin): Set scroll region.
734         (preview_page_create): Implement routine that draws the page for
735         the margin setup.
737         * src/sheet.h (ColRowInfo): Units are now doubles; margin_a_pt and
738         margin_b_pt are doubles that represent the a and b margins in
739         points.
741         * src/sheet.c (sheet_compute_col_row_new_size): Use the
743 1999-06-11  Miguel de Icaza  <miguel@gnu.org>
745         * src/cell-draw.c (cell_draw): Move the foreground setting routine
746         here and handle single-line and multiline coloring properly.
748         * src/print-info.c (unit_name_to_unit): New routine, returns the
749         UniName from the string name.
751         * src/dialog-printer-setup.c (dialog_printer_setup): Use
752         print_info_save and kill the do_save_settings routine for the
753         cleaner print_info routine.
755         * src/print-info.c (print_info_new): Now loads the default
756         settings from the saved configuration.
757         (print_info_save): Saves the print information to the gnome_config.
759 1999-06-08  Miguel de Icaza  <miguel@gnu.org>
761         * src/utils.c (str_trim_spaces): Moved str_trim_spaces ere.
763         * src/dialog-printer-setup.c (do_setup_main_dialog): Connect print
764         buttons.
766         * src/print-cell.c (print_cell_grid): Simplify routine.
768         * src/sheet.c (sheet_row_get_unit_distance,
769         sheet_col_get_unit_distance): Include  margins in computation.
770         This is broken, as the margins are now pixels, and they should be
771         made points.
773         * src/dialog-printer-setup.c (do_fetch_page_info): Fetch other values.
774         (do_save_settings): Saves the configuration.
776         * src/print-cell.c (print_border): Implement border drawing.
777         (print_cell_grid): Make this work as it should.
779         * src/print.c (compute_groups): Handle the case where the contents
780         fit entirely in one page.
782 1999-06-07  Miguel de Icaza  <miguel@gnu.org>
784         * src/print.c: New file.  Implements high-level printing.
786         * src/dialog-printer-setup.c: New file.  Implements the "Print
787         Setup" dialog box.
789 1999-04-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
791         * src/cell-draw.c: New file.  All of the cell screen drawing code
792         has been moved here now.
794         * src/print-cell.c: Enhanced code.
796         * src/workbook.c: hardcoded page size for testing purposes.
798 1999-03-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
800         I do not like the current approach.  I do think that StyleFonts
801         should be static with regard to Zoom.
803         And we would keep a cache of X fonts that are used for a
804         particular size.
806         * src/style.c (style_font_new_from): New routine that creates a
807         new font.
809         * src/sheet.c (sheet_set_zoom_factor): Scale fonts used in the
810         Sheet.
812 1999-02-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
814         * src/dialog-printer-setup.c: New file.  Implements the workbook
815         page configuration dialog box.
817         * src/print-info.c, src/print-info.h: Manages the per-worbook
818         print options.
820 1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
822         * src/style.c (font_equal): Adapt function to the new StyleFont.
823         (style_font_new, style_font_new_simple): Adapt for the upcoming
824         gnome-print support.
825         (font_init): Adapt.
827         * src/xml-io.c: Use Gnome Print font scheme.
828         * src/workbook.c: ditto.
829         * src/cell.c: ditto.
830         * src/item-bar.c, src/item-edit.c: ditto
832         * src/dialog-cell-format.c: Disable font selector for now.
834 1999-06-26  Morten Welinder  <terra@diku.dk>
836         * src/fn-financial.c (gnumeric_rate): New function.
838         * src/sheet.c (sheet_destroy): Sssshhhh!
840         * src/fn-eng.c (val_to_base): Neat and tidy.
842 1999-06-25  Morten Welinder  <terra@diku.dk>
844         * src/fn-eng.c (eng_functions_init): Extend impower to handle two
845         complex numbers.
846         (eng_functions_init): Prepare for besseli and besselk.  Docs
847         please.
849         * src/mathfunc.c (dweibull, pweibull, ppois, dpois, dexp, pexp,
850         dbinom, pbinom, qbinom, besseli, besselk): New functions.
852         * src/fn-stat.c: Use new mathfuncs.
853         (gnumeric_kurt): Use range function.
854         (gnumeric_kurtp): New function.
855         (gnumeric_skewp): New function.
857         * src/mathfunc.c (range_skew_est): Rename from range_skew.
858         (range_skew_pop): New function.
859         (range_kurtosis_m3_est): New function.
860         (range_kurtosis_m3_pop): New function.
862         * src/fn-math.c (gnumeric_gcd): Cleanup and fix.
864 1999-06-24  Michael Meeks  <michael@edenproject.org>
866         * src/expr.c (value_area_get_at_x_y): Return value_zero instead
867         of the leaky value_new_int.
868         (value_area_get_at_x_y, value_area_get_width, value_area_get_height):
869         Updated to fall back to EvalPosition's Sheet *.
871         * src/expr.h: Added 'EvalPosition' parameter to area functions.
873 1999-06-23  Morten Welinder  <terra@diku.dk>
875         * src/fn-stat.c (gnumeric_poisson): Fix formula and error
876         handling.
877         (gnumeric_binomdist): Ditto.
878         (gnumeric_correl): Ditto.
880         * src/expr.c (eval_expr): Remove useless casts.
881         (eval_funcall): Treat 'b' as 'f' for now.  Don't use fd until it
882         gets a value.
884         * src/func.c (function_iterate_argument_values): Don't leak error
885         message.
887         * src/eval.c (cell_eval): Don't leak error message.
889         * src/*.c: Remove strange casts to (Value *).
891 1999-06-24  Michael Meeks  <michael@edenproject.org>
893         * src/expr.c (error_message_new): Fix stupid bug,
894         such that every error was set.
896         * src/fn-math.c: Add sumproduct back in.
898 1999-06-24  Michael Meeks  <michael@edenproject.org>
900         * src/fn-stat.c: Added ftest, ttest again.
902 1999-06-23  Michael Meeks  <michael@edenproject.org>
904         * src/sheet.c (sheet_update_auto_expr): Add check for cached
905         text.
907         * src/sheet.h: Added workbook_set_auto_expr.
909         * src/workbook.c (workbook_new): Initialise auto_expr stuff
910         before reading it in set_auto_expr.
911         (workbook_do_destroy): Add freeing of auto_expr_text.
912         (workbook_set_auto_expr): Hacked to cache expression until we
913         have a sheet context.
915         * src/expr.h: Add extra Parser error type for invalid args.
917         * src/fn-financial.c (finance_functions_init): Fix financial
918         functions, using 'i' as a token ( invalid ).
920 1999-06-23  Michael Meeks <michael@edenproject.org>
922         * docs/writing-functions.sgml: Updated to reflect my changes,
923         expanded and removed anachronisms.
925         * src/expr.h: Added FunctionArgs, FunctionNodes typedefs
926         Created struct EvalPosition, struct FunctionEvalInfo and
927         implemented through functions where necessary.
929         * src/expr.c (function_error, function_error_alloc): created
930         helper error return functions.
931         (eval_pos_init, eval_pos_cell): Helper EvalPosition fn's
932         (func_eval_info_init, func_eval_info_cell, func_eval_info_pos):
933         created helper FunctionEvalInfo fn's
934         (error_message_new, error_message_set_alloc),
935         (error_message_set_small, error_message_txt, error_message_free):
936         created error class.
938         * src/expr.c (expr_parse_string, gnumeric_expr_parser),
939         (expr_decode_tree, expr_tree_invalidate_referenced),
940         (expr_tree_fixup_references, eval_expr): Updated to pass / use
941         new EvalPosition / FunctionEvalInfo structures.
943         * src/parser.y (gnumeric_expr_parser): Updated arguments to use
944         EvalPosition, added more stringent checks.
946         * src/func.h: Updated lots of things to new structures.
947         Changed the iterators arguments to new structures, altered
948         FunctionIterateCallback to suit.
949         Re-implemented function storage / mapping.
951         * src/func.c (function_get_category, function_add_args),
952         (function_add_nodes): Created.
953         (function_iterate_do_value, function_argument_values),
954         (function_call_with_values, function_def_call_with_values):
955         Updated to new scheme.
957         * src/fn-*: Major major changes:
958         - All function definitions changed to use:
959         typedef Value *(FunctionArgs)  (FunctionEvalInfo *fe, Value **args); or
960         typedef Value *(FunctionNodes) (FunctionEvalInfo *fe, GList *nodes);
961         - All error returns altered to use:
962                 return function_error (ei, _("foo"));
963         instead of
964                 {
965                         *error_string = _("baa");
966                         return NULL;
967                 }
968         this will allow for changing the error handling.
969         - A few functions that used Sheet *, eval_col, eval_row updated.
971 1999-06-23  Morten Welinder  <terra@diku.dk>
973         * src/collect.c, src/collect.h: New files.
975         * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add collect.c and
976         collect.h.
978         * src/fn-stat.c: Rewrite range-taking using collect and new range
979         handling functions.  Most look really nice now.  (This fixes and
980         number of leaks and makes error cases handled better.  We might
981         return the wrong error from time to time, though.)
983         * src/fn-math.c: Ditto.
985         * src/expr.c (eval_funcall): Fix insanity check.
987 1999-06-22  Morten Welinder  <terra@diku.dk>
989         * src/expr.c (eval_funcall): Add sanity check.
991         * src/fn-stat.c (callback_function_ttest): Make static.
993         * src/expr.h: Delete unwanted member "sym".
995 1999-06-22  Jukka-Pekka Iivonen  <iivonen@iki.fi>
997         * samples/statfuns.xls: Added MMULT and MINVERSE tests.
999         * samples/lookfuns.xls: Added a new file for testing lookup and
1000         reference functions.
1002         * samples/logfuns.xls: Added a new file for testing logical
1003         functions.
1005 1999-06-22  Nat Friedman  <nat@gnome-support.com>
1007         * src/sheet-object-container.c (sheet_object_container_land): Use
1008         gnome_bonobo_object_clieint_new_view instead of
1009         gnome_bonobo_object_new_view.
1010         (sheet_object_container_realize): Likewise.
1012 1999-06-22  Morten Welinder  <terra@diku.dk>
1014         * src/number-match.c (format_create_regexp): You don't want to
1015         know.
1017         * src/fn-date.c (get_serial_date): Cleanup.
1018         (get_serial_time): Ditto.
1020         * src/sheet.c (sheet_set_text): Abandon old reverse test that lead
1021         to trouble with floating point formats.
1023         * src/number-match.c (format_match): Change from double to
1024         float_t.  All callers changed.
1025         (compute_value): Ditto.
1027 1999-06-22  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1029         * src/fn-stat.c: Added TTEST().
1031         * src/fn-stat.c: Added FTEST().
1033         * src/fn-math.c: Added SUMPRODUCT().
1035 1999-06-21  Morten Welinder  <terra@diku.dk>
1037         * src/dialog-function-wizard.c (arg_data_list_new): Fix case of
1038         missing SYNTAX section.
1039         (create_description): Handle constness of tokenized_help_find.
1040         Delete weird #define.
1042         * src/func.c (tokenized_help_find): Constify.
1044         * src/expr.c (expr_tree_new_error): Smarten.
1046         * src/fn-misc.c (gnumeric_error_type): Fix case of incorrect
1047         number of arguments.
1049         * src/fn-information.c (get_value_class): Fix leak.
1051 1999-06-21  Miguel de Icaza  <miguel@gnu.org>
1053         * src/func.c: Do not pre-initialize them.  If they need to be
1054         pre-initialized something is wrong in some other place.  Fix that
1055         instead.
1057         * src/clipboard.c (do_clipboard_paste_cell_region): Implement
1058         transpose-on-paste command.  Change the increment steps for
1059         transpose and compute a different target column as well.
1061         (sheet_paste_selection): Swap the paste dimesions here if we are
1062         pasting/transpose.
1064 1999-06-18  Miguel de Icaza  <miguel@gnu.org>
1066         * src/func.c: Remove static initialization of the error messages.
1068 1999-06-14  Miguel de Icaza  <miguel@gnu.org>
1070         * src/clipboard.h: Define PASTE_TRANSPOSE.
1072         * src/dialog-paste-special.c (dialog_paste_special): Add new
1073         checkbutton for transpose-on-paste operation.
1075 1999-06-21  Michael Meeks  <michael@edenproject.org>
1077         * src/func.c (iterate_cellrange_callback): Add case
1078         of no cell text ( yet ).
1080 1999-06-21  Morten Welinder  <terra@diku.dk>
1082         * src/fn-information.c (get_value_class): New function.
1083         (gnumeric_isnontext): Make non-strict.
1084         (gnumeric_istext): Make non-strict.
1085         (gnumeric_type): Make non-strict.
1086         (gnumeric_islogical): Make non-strict.
1087         (gnumeric_isnumber): Make non-strict.
1088         (gnumeric_n): Implement.
1089         (gnumeric_iseven): Implement.
1090         (gnumeric_isodd): Ditto.
1091         (gnumeric_cell): Fix error message.
1092         (gnumeric_info): Ditto.
1093         (gnumeric_type): Partly implement.
1095         * src/fn-math.c (gpow10): Rename from pow10 which colided with
1096         something in Linux with libc5.  (Thanks to Alexander Jolk.)
1098         * src/utils.c (parse_cell_name): Don't use isdigit since we intend
1099         to subtract '0' from the character.
1101         * src/workbook.c (workbook_parse_and_jump): Cleanup.
1103 1999-06-21  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1105         * samples/infofuns.xls: Added a new file for testing information
1106         functions.
1108 1999-06-20  Morten Welinder  <terra@diku.dk>
1110         * src/workbook.c (wb_edit_key_pressed): New function to handle
1111         Escape.
1112         (workbook_setup_edit_area): Activate wb_edit_key_pressed.
1114         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Call
1115         sheet_start_editing_at_cursor for F2.
1117         * src/sheet.c (sheet_cancel_pending_input): Fix last change.  Also
1118         update entry box.
1119         (sheet_start_editing_at_cursor): New args blankp and cursorp.  All
1120         callers changed.
1122         * src/fn-math.c (gnumeric_mod): Another try.
1123         (gnumeric_int): Fix for negative numbers.
1125         * src/sheet.c (sheet_set_text): Set value directly, not via text.  Also
1126         improve entry when a format is already set.
1127         (sheet_cancel_pending_input): Fixed behavior of canceling a cell
1128         entry.  [From Bake Timmon.]
1130 1999-06-18  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1132         * samples/dbfuns.xls: Added new file for database functions.
1134         * samples/mathfuns.xls: Added MDETERM test.
1136         * samples/statfuns.xls: Added AVERAGEA, MINA, MAXA, ... tests.
1138 1999-06-17  Morten Welinder  <terra@diku.dk>
1140         * src/fn-stat.c (gnumeric_count): Make non-strict and ignore cells
1141         with errors.
1143         * src/fn-logical.c (gnumeric_or, gnumeric_and): Make strict!.
1145         * src/func.c (IterateCallbackClosure): Add strict member.
1146         (iterate_cellrange_callback): Handle strict and non-strict case.
1147         (function_iterate_argument_values): New argument, strict.  All
1148         callers changed.  Initialise error_string always.  Handle strict
1149         and non-strict case.
1150         (function_iterate_do_value): New argument, strict.  Handle strict
1151         and non-strict case.  All callers changed.
1153 1999-06-18  Michael Meeks  <michael@edenproject.org>
1155         * src/main.c (gnumeric_main): Add xbase_init
1157         * src/Makefile.am (gnumeric_LDADD): Add xbase.
1159         * configure.in (XML_CFLAGS): Added xbase.
1161         * plugins/Makefile.am (SUBDIRS): Added xbase.
1163 1999-06-17  Morten Welinder  <terra@diku.dk>
1165         * src/expr.c (eval_expr): Fix error handling of comparisons.
1167         * src/expr.c (expr_tree_new_constant): New function.
1168         (expr_tree_new_unary): New function.
1169         (expr_tree_new_binary): New function.
1170         (expr_tree_new_funcall): New function.
1171         (expr_tree_new_var): New function.
1172         (expr_tree_new_error): Renamed from build_error_string, made
1173         public, and simplified.  All callers changed.
1174         (do_expr_tree_invalidate_references): Simplify.
1175         (do_expr_tree_fixup_references): Ditto.
1176         (eval_expr): Simplify.
1177         (expr_tree_new): Obsolete.
1179         * src/func.c (constants_init): Simplify.
1181         * src/main.c (gnumeric_main): Call style_shutdown.
1183         * src/style.c (style_shutdown): New function.
1185         * src/expr.h: Avoid using bitfields here.  They are slow and
1186         confuse tools like Purify.  And used like this they don't save any
1187         space anyway.
1189         * src/complex.c: Fix includes.
1191         * src/fn-eng.c (gnumeric_impower): Use new complex_pow.
1192         (callback_function_imoper): Benefit from new and more intuitive
1193         behavoiur of complex_mul and complex_add.
1195         * src/complex.h (complex_mod): Use hypot for better precision.
1196         (complex_*): Use complex_init when possible.  (This means that the
1197         output can be the same as one of the inputs without any trouble.)
1198         (complex_pow): New function.
1200 1999-06-17  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1202         * src/fn-stat.c (gnumeric_percentrank): Interpolation and rounding
1203         fixes.
1205 1999-06-17  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1207         * src/fn-eng.c (gnumeric_erf): ERF() changed back to the previous
1208         form.  Negative arguments are wrong.
1210 1999-06-16  Morten Welinder  <terra@diku.dk>
1212         * src/complex.h, src/complex.c: New files.
1214         * src/fn-eng.c: Use complex.c; improve precision, fix a few bugs,
1215         plug a few leaks, add a few functions, and generally be merry.
1217         * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add complex.c and
1218         complex.h.
1220 1999-06-16  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1222         * samples/finfuns.xls: A new file for financial functions.
1224         * samples/engfuns.xls: A new file for engineering functions.
1226         * samples/mathfuns.xls: COMBIN and FACT fixed.
1228         * samples/statfuns.xls: Accuracy dropped again.
1230 1999-06-16  Morten Welinder  <terra@diku.dk>
1232         * src/workbook.c (workbook_feedback_set): Block the "clicked"
1233         handlers when we are just setting the feedback.
1235 1999-06-16  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1237         * src/fn-math.c (gnumeric_gcd): Made GCD() to take variable number
1238         of arguments.
1240         * src/fn-stat.c (gnumeric_rank): RANK() fixed.
1242         * src/fn-eng.c (gnumeric_erf): ERF() fixed to return negative
1243         results if the argument is negative too like in Excel.
1245         * srg/fn-eng.c (get_real_and_imaginary): Added a branch for empty
1246         imaginary part.
1248         * src/fn-eng.c (gnumeric_improduct, gnumeric_imsum): Made IMSUM()
1249         and IMPRODUCT() to take variable number of arguments.
1251 1999-06-15  Morten Welinder  <terra@diku.dk>
1253         * src/style.c (style_font_new_simple): Plug leak.
1255         * src/cell.c (cell_set_formula_tree_simple): Ref before unref,
1256         just in case.
1258         * src/fn-math.c (callback_function_criteria): Just collect the
1259         values, not (incorrectly) allocated pointers to them.
1260         (gnumeric_countif): Release the values.  (Leak fix.)
1261         (gnumeric_sumif): Ditto.
1262         (gnumeric_countif): Plug leak.
1263         (gnumeric_sumif): Ditto.
1264         (gnumeric_seriessum): Plug three leaks.
1265         (gnumeric_subtotal): Plug leaks and fix error handling.
1267         * src/style.c (style_font_new_simple): Fix memory access problem.
1269         * src/style.c (font_init): Rework.  (Work in progress.  Things
1270         should work ok, but will become even better.)
1271         (style_font_new_simple): Revert to loading a font, not a fontset.
1273         * src/gnumeric-util.c (font_get_italic_name): Plug leak and unref
1274         the StyleFont.
1275         (font_get_bold_name, font_get_italic_name): New parameter units.
1276         All callers changed.
1278 1999-06-15  Tomas Ogren  <stric@ing.umu.se>
1280         * configure.in: Added sv
1282 1999-06-14  Morten Welinder  <terra@diku.dk>
1284         * src/style.c (style_font_new_simple): Add negative caching.
1285         (DEFAULT_FONT): Don't have a complete wildcard here -- that might
1286         be a very weird font.
1288         * src/cell.c (cell_set_font_from_style): Mark font valid.  Ref
1289         before unref.
1290         (cell_set_format_from_style): Mark format valid.  Ref before
1291         unref.
1293         * src/gnumeric-util.c (font_get_italic_name): Plug leak.
1294         (font_change_component): Constify.  Handle fontsets.
1296 1999-06-14  Morten Welinder  <terra@diku.dk>
1298         * src/fn-math.c (gnumeric_floor): Add significance argument.
1300         * src/fn-math.c (callback_function_seriessum): Simplify.
1301         (gnumeric_seriessum): Don't round x, n, and m to integers.  Fix
1302         error handling.
1304         * src/fn-math.c (pow10): New function.
1305         (gnumeric_rounddown): Simplify and correct.
1306         (gnumeric_round): Ditto.
1307         (gnumeric_roundup): Ditto.
1308         (gnumeric_trunc): Ditto.
1309         (gnumeric_fact): Improve precision.  Extend domain to all positive
1310         numbers.
1311         (gnumeric_factdouble): Use float_t instead of int.
1312         (gnumeric_atan2): Swap args to atan2.
1314 1999-06-13  Morten Welinder  <terra@diku.dk>
1316         * src/style.c (DEFAULT_FONT): Add extra font in the hope of curing
1317         1207.
1318         (font_init): Shine up error message and avoid core dump.
1320         * src/gnumeric-sheet.c (gnumeric_sheet_stop_cell_selection):
1321         Temporary patch for refcounts until Miguel can fixup things.
1322         (destroy_item_editor): Ditto.
1324         * src/fn-financial.c: s/double/float_t/;
1325         (calculate_pvif, calculate_pvifa, calculate_fvif, calculate_fvifa,
1326         calculate_principal, calculate_pmt): Make static.
1327         (callback_function_npv): Simplify and truly ignore strings.
1328         (gnumeric_duration): More error checks.
1329         (gnumeric_nper): Ditto.
1330         (gnumeric_syd): Ditto.
1331         (gnumeric_sln): Ditto.
1332         (gnumeric_pv): Ditto.
1333         (gnumeric_fv): Ditto.
1335         * src/fn-information.c: Prune includes.
1336         * src/fn-string.c: Ditto.
1337         * src/fn-sheet.c: Ditto.
1338         * src/fn-misc.c: Ditto.
1339         * src/fn-financial.c: Ditto.
1340         * src/fn-date.c: Ditto.
1341         * src/fn-database.c: Ditto.
1342         * src/fn-lookup.c: Ditto.
1343         * src/fn-stat.c: Ditto.
1344         * src/fn-math.c: Ditto.
1345         * src/fn-logical.c: Ditto.
1347         * src/cell.h: Fix includes.
1349         * src/fn-information.c (gnumeric_isblank): Return boolean.
1350         (gnumeric_iseven): Ditto.
1351         (gnumeric_islogical): Ditto.
1352         (gnumeric_isnontext): Ditto.
1353         (gnumeric_isnumber): Ditto.
1354         (gnumeric_isodd): Ditto.
1355         (gnumeric_isref): Ditto.
1356         (gnumeric_istext): Ditto.
1357         (gnumeric_n): Ditto.
1359         * src/expr.c (value_new_bool): New function.
1360         (eval_expr): Return boolean Values.
1362         * src/fn-misc.c (gnumeric_iserr, gnumeric_iserror, gnumeric_isna):
1363         Return boolean;
1365         * src/fn-logical.c (callback_function_and): Simplify.
1366         (callback_function_or): Ditto.
1367         (gnumeric_and): Simplify and return boolean Values.
1368         (gnumeric_not): Ditto.
1369         (gnumeric_if): Fix error case.  Simplify.
1371         * src/cell.c (cell_comment_destroy): Free realized_list.
1373         * fn-*.c: Use new standard error variables.
1375 1999-06-12  Jody Goldberg  <jgoldberg@home.com>
1377         * src/expr.h : Declare new standard error constants to avoid
1378         spelling problems and typos.
1379         * src/expr.c, src/func.c, src/fn-math.c : Use and define them.
1380         * src/fn-misc.c : First pass at finishing off error functions.
1381         * src/fn-information.c : Provide stubs for the rest of the
1382         information functions.
1384 1999-06-12  Miguel de Icaza  <miguel@gnu.org>
1386         * src/dialog-cell-comment.c (dialog_cell_comment): Process the
1387         return value from gnome_dialog_run correctly as well.  (ie we
1388         should catch the return value -1 as the "user closed dialog box"
1389         message and avoid destroying the dialog box ourselves).
1391         * src/item-grid.c (context_paste_special_cmd): Handle a cancel
1392         operation from the dialog_paste_special dialog box.
1394         * src/dialog-paste-special.c (dialog_paste_special): Hanlde the
1395         case in which the window manager closed the dialog box.
1397         * src/cell.c (cell_comment_destroy): Changed invocation from
1398         gtk_object_destroy to gtk_object_unref.
1399         (cell_comment_unrealize): ditto.
1400         (cell_comment_clicked): ditto.
1401         * src/dialog-cell-sort.c (dialog_cell_sort): ditto.
1402         * src/dialog-function-select.c (dialog_function_select): ditto
1403         * src/dialog-function-wizard.c (dialog_function_wizard): ditto
1404         * src/dialog-paste-special.c (dialog_paste_special): ditto
1405         * src/dialog-solver.c (constr_add_click): ditto.
1406         (constr_add_click): ditto
1407         (dialog_solver_options): ditto
1408         * src/gnumeric-sheet.c (gnumeric_sheet_stop_cell_selection): ditto
1409         (destroy_item_editor): ditto.
1410         (gnumeric_sheet_key_mode_object): ditto, and clear the pointer to
1411         the current_object.
1412         * src/sheet-object-container.c (sheet_object_container_destroy): ditto.
1413         * src/item-cursor.c (item_cursor_drag_event): ditto.
1414         (item_cursor_autofill_event): ditto
1415         * src/item-bar.c (item_bar_event): ditto
1416         * src/workbook.c (workbook_setup_auto_calc): ditto.
1417         * src/widget-editable-label.c (el_stop_editing): ditto
1418         * src/sheet-object.c (sheet_object_destroy): ditto
1419         (sheet_view_object_unrealize): ditto
1420         (sheet_object_destroy_control_points): ditto
1421         * src/sheet-view.c (sheet_view_destroy): ditto
1423 1999-06-10  Miguel de Icaza  <miguel@gnu.org>
1425         * src/pattern-selector.c (pattern_selector_init): Use the GNOME
1426         canvas fill_stipple feature instead of using the hack of creating
1427         the bitmap and setting the stipple on the realize handler.
1429 1999-06-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1431         * po/hr.po: Added croat translation from Vladimir Vuksan
1432         <vuksan@cs.unm.edu>.
1434 1999-06-13  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1436         * samples/mathfuns.xls: New test file for math functions.
1438         * samples/statfuns.xls: Accuracy dropped to 1e-5 (since Excel is
1439         not as accurate as Gnumeric).  Also the total number of functions
1440         in the test output fixed.
1442 1999-06-12  Morten Welinder  <terra@diku.dk>
1444         * src/fn-string.c: Use value_new_string where appropriate.
1445         (gnumeric_clean): Use unsigned chars.
1446         (gnumeric_t): Speed improvement.
1448         * src/file.c (workbook_read): After a workbook has been read, it
1449         is to be considered "clean", i.e., unchanged.
1451         * src/number-match.c (print_regex_error): Add a few missing breaks.
1453         * src/utils.c (gnumeric_strcase_hash): Use unsigned chars.
1454         (col_from_name): Ditto.
1456         * src/format.c (append_year): Ditto.
1457         (append_month): Ditto.
1458         (append_hour): Ditto.
1459         (append_day): Ditto.
1460         (append_minute): Ditto.
1461         (append_second): Ditto.
1462         (pre_parse_format): Ditto.
1464         * src/number-match.c (format_create_regexp): Ditto.
1466         * src/fn-string.c (gnumeric_lower): Use g_strdup to match g_free.
1467         (gnumeric_upper): Ditto.
1468         (gnumeric_lower): Use unsigned chars.  (This fixes problems with
1469         non-English letters.)
1470         (gnumeric_upper): Ditto.
1471         (gnumeric_proper): Ditto.  Operate on a _copy_ of the string, not
1472         the source string itself!
1474 1999-06-10  Morten Welinder  <terra@diku.dk>
1476         * src/parser.y (return_cellref): Surprise: isdigit and friends
1477         take unsigned chars (effectively).  The results are *undefined*
1478         (and weird) for signed chars.
1479         (yylex): Ditto.
1481         * src/fn-string.c (gnumeric_proper): Ditto.
1483         * src/utils.c (parse_cell_name): Ditto.
1485         * src/sheet-autofill.c (string_has_number): Ditto.
1486         (autofill_cell): Ditto.
1488         * src/cell.c (cell_set_text_simple): Ditto.  Also fix long/int
1489         confusion.
1491 1999-06-10  James Henstridge  <james@daa.com.au>
1493         * src/main.c (gnumeric_main): changed call to glade_init() to a call
1494         to glade_gnome_init(), so that gnome widget building routines get
1495         initialised correctly.
1497 1999-06-09  Morten Welinder  <terra@diku.dk>
1499         * src/xml-io.c: Fix major thinko in writing fonts.  (The name hash
1500         table was used to look up a font, which always failed since keys
1501         are names in that hash.)
1503 1999-06-09  Nat Friedman  <nat@gnome-support.com>
1505         * src/sheet-view.c (sheet_view_insert_object): Commented out call
1506         to gnome_bonobo_object_new_view since the API changed and this
1507         function doesn't do anything anyways.
1509         * src/sheet-object-container.c: Include gnome-component-client.h
1510         and view-frame.h.
1511         (sheet_object_container_land): Pass soc->client_site to
1512         gnome_bonobo_object_new_view.  Get the view wrapper widget from
1513         the view frame.
1514         (sheet_object_container_realize): Likewise.
1516 1999-06-09  Morten Welinder  <terra@diku.dk>
1518         * src/workbook.c (insert_at_cursor): Use cell_set_value instead of
1519         cell_set_text.  Constify.  Accept a Value *, not a double.  All
1520         callers changed.
1522 1999-06-08  Morten Welinder  <terra@diku.dk>
1524         * src/fn-date.c (gnumeric_days360): Get it right, I hope.
1526         * src/xml-io.c (xmlGetDoubleValue): Improve precision.
1527         (xmlGetCoordinate): Ditto.
1528         (xmlGetGnomeCanvasPoints): Ditto.
1530         * src/fn-math.c (gnumeric_fact): s/float/float_t/
1532         * src/fn-date.c: Fix types of most functions.  (We really need a
1533         way of saying "scalar".)
1534         (get_serial_date): New helper function.
1535         (get_serial_time): Ditto.
1536         (gnumeric_hour): Use get_serial_time.
1537         (gnumeric_minute): Ditto.
1538         (gnumeric_second): Ditto.
1539         (gnumeric_year): Use get_serial_date.
1540         (gnumeric_month): Ditto.
1541         (gnumeric_day): Ditto.
1542         (gnumeric_weekday): Ditto.
1543         (gnumeric_datevalue): Ditto.
1544         (gnumeric_timevalue): Implement using get_serial_time.
1545         (gnumeric_days360): Pretty good first cut.
1547         * src/parser.y (yylex): Allow dots inside a function name.
1549         * src/fn-misc.c (gnumeric_error_type): New function.
1551 1999-06-08  David Chan <dpc29@hermes.cam.ac.uk>
1553         * src/fn-math.c (gcd): Correct.
1555 1999-06-08  Morten Welinder  <terra@diku.dk>
1557         * src/file.c (workbook_read): Temporarily switch to "C" locale
1558         when loading and saving.  [Take 2.]
1559         (workbook_save_as): Ditto.
1560         (workbook_save): Ditto.
1562 1999-06-06  Michael Meeks  <michael@edenproject.org>
1564         * src/expr.c (value_area_get_at_x_y): Add vital check for
1565         forthcoming name stuff.
1567 1999-06-03  Morten Welinder  <terra@diku.dk>
1569         * src/item-bar.c (item_bar_event): Handle zoom.
1570         (item_bar_get_line_points): Handle zoom.
1571         (item_bar_start_resize): Handle zoom better.
1572         (get_col_name): Delete.  Use col_name instead.
1573         (bar_draw_cell): Constify.
1575         * src/item-bar.h (ItemBar): Delete member resize_guide_offset.
1577 1999-06-02  Morten Welinder  <terra@diku.dk>
1579         * src/fn-date.c (gnumeric_days360): New (unimplemented) function.
1581         * src/fn-date.c (gnumeric_year_month_day): Delete.
1582         (gnumeric_day, gnumeric_month, gnumeric_year): New functions.
1583         (gnumeric_hour_min_sec): Delete.
1584         (gnumeric_hour, gnumeric_minute, gnumeric_second): New functions.
1585         (gnumeric_weekday): New function.
1586         (gnumeric_date): Handle two-digit years.  Check this, please.
1587         (gnumeric_timevalue): New function.  (Untested -- Excel plugin
1588         does not handle it yet.)
1590         * src/utils.c (g_date_serial): Deal with 19000229.
1591         (g_date_new_serial): Ditto.
1593         * samples/datefuns.xls: New file from Nick Lamb.
1595         * src/eval.c (workbook_recalc): If a cell has already been
1596         computed, do not redo it.  This should speed up things.
1597         (cell_queue_recalc): Delete useless cast.
1598         (cell_unqueue_from_recalc): Ditto.
1599         (cell_queue_recalc_list): Ditto.
1600         (cell_queue_recalc_list): Extra parameter freelist controls
1601         whether list is freed.  All callers changed.
1602         (workbook_recalc_all): Use cell_queue_recalc_list.
1604         * src/dialog-goal-seek.c (goal_seek_eval): Properly reevaluate.
1606         * src/expr.c (eval_expr): Only evaluate references cells when they
1607         are queued for recalculation.
1609         * src/func.c (iterate_cellrange_callback): Ditto.
1611         * src/fn-math.c (gnumeric_lcm): Remove useless (Sheet *) cast.
1613         * src/fn-information.c (gnumeric_countblank): Ditto.
1615         * src/fn-database.c (find_column_of_field): Ditto.
1616         (parse_database_criteria): Ditto.
1617         (find_cells_that_match): Ditto.
1619         * src/cell.c (cell_comment_realize): Ditto.
1621 1999-06-02  Michael Meeks  <michael@edenproject.org>
1623         * src/expr.c (do_expr_decode_tree): Added ARRAY support.
1625 1999-06-01  Morten Welinder  <terra@diku.dk>
1627         * src/format.c (format_value): Mark format for translation.
1628         (format_number): Locale improvements.
1630         * src/parser.y (yylex): Translate locale's decimal point into a
1631         dot.
1632         (gnumeric_expr_parser): Extract locale's decimal point.
1634 1999-06-01 Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>
1636         * src/gnumeric-util.c (font_change_component): Extend the size of
1637         the array components[] so that it can handle very long fontset
1638         names.
1640         * src/style.c: Change the default font names.
1642         * src/workbook.c: Add gtk_widget_ensure_style() call, which is
1643         necessary to knowing if a fontset is supplied for the label
1644         widget.
1646 1999-06-01  Morten Welinder  <terra@diku.dk>
1648         * src/fn-stat.c (callback_function_trimmean): Cleanup.
1649         (gnumeric_large): Fix conditional.  Thanks to Nick Lamb.
1650         (gnumeric_small): Ditto.
1652 1999-06-01  Morten Welinder  <terra@diku.dk>
1654         * src/fn-stat.c (gnumeric_skew): Fix crashes and leaks.
1655         (gnumeric_covar): Ditto.
1656         (gnumeric_rsq): Ditto.
1657         (gnumeric_pearson): Ditto.
1658         (gnumeric_correl): Ditto.
1659         (gnumeric_avedev): Ditto.
1661         (gnumeric_stdev): Don't make assumptions of the type of VAR.
1662         (gnumeric_stdevp): Ditto.
1663         (gnumeric_stdeva): Ditto.
1664         (gnumeric_stdevpa): Ditto.
1666         (callback_function_covar): Simplify greatly.
1667         (callback_function_correl): Ditto.
1668         (callback_function_stat_avedev_sum): Ditto.
1669         (callback_function_skew_sum): Ditto.  Also improve precision.
1670         (callback_function_rank): Ditto.
1671         (callback_function_trimmean): Ditto.
1672         (callback_function_mode): Ditto.
1673         (callback_function_stat_prod): Ditto.
1674         (callback_function_count): Ditto.
1675         (callback_function_kurt_sum): Ditto.
1676         (callback_function_ztest): Ditto.
1677         (callback_function_list): Ditto.
1678         (callback_function_percentrank): Ditto.
1679         (gnumeric_skew): Handle zero stddev.
1681         * src/expr.c (eval_cell_value): Delete.  Use value_duplicate
1682         instead.
1683         (eval_funcall): Fix memory corruption on error.  Fix serious leak.
1684         (free_values): Only free non-NULLs.
1686 1999-06-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1688         * src/file.c (dialog_query_load_file):
1689         (workbook_save_as): Prettify these.  Thanks to Andrew for pointing
1690         this out.
1692 1999-06-01  Morten Welinder  <terra@diku.dk>
1694         * src/fn-stat.c (gnumeric_kurt): Fix crashes and leaks.
1696 1999-06-01  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1698         * src/fn-string.c: Added SEARCH().  Quite a complex beast but
1699         should work completely.
1701 1999-06-01  Morten Welinder  <terra@diku.dk>
1703         * src/fn-stat.c (gnumeric_confidence): Fix sign.
1704         (gnumeric_devsq): Simplify and correct.
1706         * src/file.c: undo last change.  (The operation succeeded, but the
1707         patient died.)
1709 1999-05-31  Matt Loper  <matt@gnome-support.com>
1711         * src/sheet-view.c: Because GNOME::Component was renamed to
1712         GNOME::BonoboObject, some bonobo function call names needed to be
1713         changed here (ex. gnome_component_new_view to
1714         gnome_bonobo_object_new_view).
1716         * src/sheet-object-container.c (sheet_object_container_land):
1717         likewise.
1718         (sheet_object_container_realize): likewise.
1720 1999-05-31  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1722         * src/fn-lookup.c: Added ADDRESS().  Cleaned up too long lines.
1724 1999-05-28  Morten Welinder  <terra@diku.dk>
1726         * src/file.c (workbook_read): Temporarily switch to "C" locale
1727         when loading and saving.  I am not sure this is the right thing to
1728         do, but until someone finds a better way, it will work fine.
1729         (workbook_save_as): Ditto.
1730         (workbook_save): Ditto.
1732         * src/fn-math.c (gnumeric_power): Fix domain.
1734 1999-05-27  Morten Welinder  <terra@diku.dk>
1736         * src/expr.c (value_get_as_string): Improve precision -- this
1737         impacts the results of saves.
1739 1999-05-27  Morten Welinder  <terra@diku.dk>
1741         * src/fn-stat.c (callback_function_mode): Ignore strings as
1742         advertised.
1743         (callback_function_stat_inv_sum): Ditto.
1744         (callback_function_rank): Ditto.
1745         (callback_function_trimmean): Ditto.
1746         (callback_function_covar): Ditto.
1747         (callback_function_correl): Ditto.
1748         (callback_function_stat_prod): Ditto.
1749         (callback_function_skew_sum): Ditto.
1750         (callback_function_kurt_sum): Ditto.
1751         (callback_function_stat_avedev_sum): Ditto.
1752         (callback_function_devsq_sum): Ditto.
1753         (callback_function_median): Ditto.
1754         (gnumeric_tinv): Fix meaning.
1755         (callback_function_count): Cleanup.
1756         (callback_function_stat_inv_sum): Ditto.  Also fix error case.
1757         (gnumeric_normdist): Simplify using dnorm.
1758         (gnumeric_gammadist): Use dgamma.
1760         * src/mathfunc.c (dgamma): New function from R.
1762 1999-05-27  Jukka-Pekka Iivonen  <iivonen@iki.fi>
1764         * src/fn-stat.c: Added BETAINV() and CHITEST().  Added optional
1765         parameters A and B to BETADIST().  Implemented non-cumulative case
1766         of NORMDIST().  Implemented cumulative case of POISSON().  Fixed
1767         CHIDIST(), CHIINV(), FDIST(), FINV(), and TDIST() to return the
1768         complement of the probablity.  It looks like TINV() is still
1769         broken after file restructurations.
1771 1999-05-26  Morten Welinder  <terra@diku.dk>
1773         * src/sheet-view.h: Include fix.
1775         * src/style.h: Include fix.
1777         * src/symbol.c (symbol_table_new): Use gnumeric_strcase_equal and
1778         gnumeric_strcase_hash.
1779         (g_strcase_equal): Delete.
1780         (g_strcase_hash): Delete.
1782         * src/eval.c (dependency_equal): Constify.
1784         * src/sheet.c (cell_hash): Constify.
1785         (cell_compare): Ditto.
1786         (CRsort): Ditto.
1788 1999-05-26  Michael Meeks  <michael@imaginator.com>
1790         * src/file.c (file_saver_is_default_format): Fixed bug causing
1791         incorrect format to be displayed.
1792         (fill_save_menu): Wait until we have populated the option menu
1793         before setting the current item.
1794         (make_format_chooser): Move some code into file_save_menu.
1796         * src/xml-io.c (writeXmlSheetTo): Removed,
1797         (writeXmlWorkbook): Use the order workbook_sheets list.
1799         * src/workbook.c (cb_workbook_sheets): Commented out
1800         (workbook_sheets): Get sheets in order from notebook tabs.
1802 1999-05-25  Morten Welinder  <terra@diku.dk>
1804         * src/mathfunc.c, src/mathfunc.h: New files, mostly taken from the
1805         R package.  (It's a GPL'ed gold mine.)
1807         * src/*.c: Use <math.h>, not "math.h".
1809         * src/utils.c (random_normal): Use qnorm, not inv_phi.
1811         * src/fn-stat.c: Move all R code to mathfunc.c
1812         Change all uses to phi to pnorm.
1813         (gnumeric_normsinv): Use qnorm.
1814         (gnumeric_confidence): Use qnorm.
1815         (normsinv): Superseded by qnorm.
1816         (help_lognormdist): Fix.
1817         (gnumeric_lognormdist): Fix domain.
1818         (gnumeric_lognormdist): Use plnorm.
1819         (gnumeric_loginv): Use qlnorm.
1820         (gnumeric_norminv): Use qnorm.
1821         (gnumeric_tinv): Use qt.
1822         (gnumeric_fdist): Use qf.
1823         (gnumeric_gammainv): Use qgamma.
1824         (gnumeric_chiinv): Use qchisq.
1826         * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add mathfunc.c and
1827         mathfunc.h.
1829 1999-05-25  Morten Welinder  <terra@diku.dk>
1831         * src/fn-string.c (gnumeric_code): Handle compilers for which the
1832         "char" type is signed.
1834         * src/utils.c (parse_cell_name): Don't use isalpha which is
1835         subject to locale.  (So is toupper, but the effects are ok.)
1836         Move bounds check to handle overflow also.
1837         (col_from_name): Don't use isalpha.
1839         * src/fn-stat.c: Eliminate fmin2 and fmax2.
1841         * src/fn-math.c (gnumeric_randbetween): Use random_01.
1842         (gnumeric_rand): Ditto.
1844         * src/utils.c (random_01): Function moved from goal-seek.c and
1845         improved.
1846         (random_normal): Function moved from goal-seek.c.
1848         * configure.in: Check for a few ways of getting random numbers.
1850 1999-05-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
1852         * src/file.c (workbook_save_as): Handle the window closing by the
1853         window manager here.
1854         (dialog_query_load_file): And here.
1856         * src/dialog-zoom.c (dialog_zoom): Handle window manager close
1857         here (it comes in the form of return value being NULL).
1859         * src/dialog-insert-cells.c (dialog_insert_cells): ditto.
1861         * src/dialog-delete-cells.c (dialog_delete_cells): ditto.
1863 1999-05-24  Morten Welinder  <terra@diku.dk>
1865         * src/workbook.c (workbook_fixup_references): Set formula
1866         directly, not via text strings.  (This actually fixes a bug with
1867         insertion of columns/rows where we modify the cells before we
1868         restructure the sheet.)  It's much faster and cleaner too.
1869         (workbook_invalidate_references): Ditto.
1871 1999-05-23  Morten Welinder  <terra@diku.dk>
1873         * src/gnumeric-sheet.c (gnumeric_sheet_cursor_set): Make the
1874         scroll bar reflect the top-left corner's position.  This feels
1875         more natural.
1876         (gnumeric_sheet_set_top_col): Compute visible ranges; do nothing
1877         until things change.
1878         (gnumeric_sheet_set_top_row): Ditto.
1880         * src/dialog-goal-seek.c (gnumeric_goal_seek): Use
1881         goal_seek_initialise.
1882         (gnumeric_goal_seek): Trawl heavier and earlier in the middle.
1883         (dialog_goal_seek): downcase a stray uppercase letter.
1885         * src/goal-seek.c (goal_seek_initialise): New function.
1887 1999-05-23  Morten Welinder  <terra@diku.dk>
1889         * src/dialog-goal-seek.c: redesign non-gui part.
1890         (dialog_goal_seek): Added entries for xmin and xmax.
1892         * src/goal-seek.h: New file.
1894         * src/goal-seek.c: New file.
1896         * src/Makefile.am (GNUMERIC_BASE_SOURCES): Add goal-seek.c and
1897         goal-seek.h.
1899 1999-05-22  Morten Welinder  <terra@diku.dk>
1901         * src/fn-financial.c (gnumeric_pv): Revert last chance.  (Bogosity
1902         is in me.)
1904 1999-05-22  Morten Welinder  <terra@diku.dk>
1906         * src/sheet.c (sheet_selection_to_string): Delete unused variable
1907         "assembler".
1909         * src/sheet-view.c (horizontal_scroll_event): Delete unused
1910         variable "distance".
1911         (vertical_scroll_event): Delete unused variable "distance".
1913         * src/sheet-object.c (control_point_handle_event): Delete unused
1914         variables "ll" and "object_item".
1916         * src/widget-editable-label.c (editable_label_set_text): Delete
1917         unused variable "item_text".
1919         * src/fn-string.c (gnumeric_replace): Delete unused variable "p".
1921         * src/fn-eng.c (get_real_and_imaginary): Delete unused variables
1922         "i" and "buf".
1924         * src/sheet-object-graphic.c (sheet_object_filled_update): Delete
1925         unused variables "x1", "x2", "y1", and "y2".
1927         * src/fn-stat.c (gnumeric_harmean): Delete unused variable "ans".
1928         (gnumeric_geomean): Delete unused variable "ans".
1929         (gnumeric_avedev): Delete unused variable "ans".
1930         (gnumeric_large): Delete unused variable "count".
1931         (gnumeric_small): Delete unused variable "count".
1933         * src/parser.y (make_string_return): Delete unused variable "type".
1935         * src/workbook.c (cb_sheet_check_dirty): Delete unused variable
1936         "f".
1937         (workbook_focus_sheet): Delete unused variable "sheet_view".
1938         (workbook_selection_to_string): Delete unused variable "str".
1940         * src/fn-date.c (gnumeric_datevalue): Delete unused variables
1941         "year", "month", and "day".
1942         (gnumeric_edate): Delete unused variables "year", "month", and
1943         "day".
1945         * src/dialog-cell-format.c (apply_coloring_format): Delete unused
1946         variable "cl".
1948         * src/dialog-solver.c: Delete unused variable "paste_types".
1950         * src/xml-io.c (xmlGetFloatValue): Delete unused variable "child".
1951         (xmlGetDoubleValue): Delete unused variable "child".
1952         (xmlGetCoordinate): Delete unused variable "child".
1953         (xmlGetGnomeCanvasPoints): Delete unused variable "child".
1954         (xmlGetColorValue): Delete unused variable "child".
1955         (xmlGetCoordinates): Delete unused variable "child".
1956         (xmlGetCoordinates): Delete unused variables "X1", "Y1", "X2", and
1957         "Y2".
1959         * src/sheet-object-graphic.c (sheet_object_graphic_update): Delete
1960         unused variable "sog".
1962         * src/cell.c (cell_set_value_simple): Delete unused variable "lconv".
1963         (cell_set_text_simple): Delete unused variable "lconv".
1964         (cell_draw): Delete unused variable "white_gc".
1965         (cell_get_text): Delete unused variable "sheet".
1967         * src/ranges.c (range_list_parse): Delete unused variable "range".
1968         (range_set_style): Delete unused variables "col" and "row".
1970         * src/dialog-solver.c (dialog_solver_options): Delete unused
1971         variable "button".
1973         * src/eval.c (search_cell_deps): Delete unused variables "inters"
1974         and "nointers".
1976         * src/dialog-cell-sort.c (dialog_cell_sort): Delete unused
1977         variable "txt".
1979         * src/fn-database.c (find_cells_that_match): Delete unused
1980         variable "new_item".
1982         * src/func.c (function_iterate_do_value): Delete unused variable
1983         "list".
1985         * src/fn-lookup.c (gnumeric_lookup): Delete unused variables "v1"
1986         and "ans".
1987         (lookup_functions): Use correct help variable
1988         for "columns".
1990         * src/dialog-function-select.c (function_select_create): Delete
1991         unused variable "hadj".
1993         * src/main.c (gnumeric_main): Delete unused variable.
1995         * src/dialog-function-wizard.c (function_type_input): Remove
1996         unused variable.
1997         (get_text_value): Ditto.
1998         (arg_data_list_destroy): Comment out -- not used.
2000         * src/fn-financial.c (gnumeric_pv): Fix sign error.  Something is
2001         entirely bogus in this file.
2003         * src/ranges.h: Fix includes.
2005         * src/pattern-selector.h (PATTERN_SELECTOR_CLASS): Bogosity fixed;
2006         macro not used, though.
2008         * src/workbook.c (sheet_action_delete_sheet): Grammar fix.
2010         * src/sheet.c (sheet_verify_selection_simple): Grammar fix.
2012         * src/file.c (file_priority_sort): Constify.
2013         (file_format_register_open): Make description parameter const.
2014         (file_format_register_save): Ditto.
2015         (file_format_unregister_open): Plug leak.
2016         (file_format_unregister_save): Ditto.
2017         (workbook_save_as): Grammar fix.
2019         * src/about.c (dialog_about): Fix URL.
2021 1999-05-22  Morten Welinder  <terra@diku.dk>
2023         * src/sheet.c (sheet_set_text): Use General format for all numbers
2024         in standard format.  (In particular, don't create a sticky "0" format
2025         whenever an integer is entered.)
2027         * src/format.c (format_number): Constify.
2028         (append_minute): Ditto.
2029         (append_day): Ditto.
2030         (append_hour): Ditto.
2031         (append_month): Ditto.
2032         (append_year): Ditto.
2033         (append_second): Ditto.
2034         (check_valid): Ditto.
2035         (append_half): Ditto.
2036         (lookup_color): Ditto.
2037         (render_number): Ditto.
2038         (format_value): Ditto.
2040         * src/expr.c (do_expr_decode_tree): Handle negative numbers, just
2041         in case.
2043 1999-05-21  Morten Welinder  <terra@diku.dk>
2045         * src/sheet-autofill.c (autofill_cell): Add FIXME.
2047         * src/sheet.h (IS_SHEET): Remove cast.
2049         * src/expr.h: Delete expr_tree_relocate.
2051         * src/expr.c (fixup_calc_new_cellref): New function.
2052         (do_expr_tree_fixup_references): Simplify using
2053         fixup_calc_new_cellref.
2054         (do_expr_tree_relocate): Delete.
2055         (expr_tree_relocate): Delete.
2057         * src/sheet.c (sheet_cell_formula_link): Add debug code.
2058         (sheet_insert_col, sheet_delete_col, sheet_insert_row,
2059         sheet_delete_row): Do fixups early.
2061         * src/cell.c (cell_relocate): Don't relocate cell -- fixup handles
2062         all that is needed.
2064         * src/color.c (gs_white, gs_black, gs_light_gray, gs_dark_gray,
2065         gs_red): Moved from src/gnumeric-sheet.c.
2066         (gnumeric_color_context): make static.
2068 1999-05-21  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2070         * src/fn-stat.c: PERCENTRANK() added.
2072         * src/func.[ch]: function_iterate_do_value made public.
2074 1999-05-21  Morten Welinder  <terra@diku.dk>
2076         * configure.in: use AC_CHECK_HEADERS, not AC_CHECK_HEADER for the
2077         benefit of autoheader.
2079 1999-05-19  Michael Meeks  <michael@imaginator.com>
2081         * src/fn-stat.c: Added 'static' to new non-global functions.
2083         * src/cell.c (cell_set_formula_tree_simple): Added
2084         missing sheet_cell_formula_unlink.
2086 1999-05-19  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2088         * src/fn-math.c: SERIESSUM(), SUBTOTAL() and SUMA() added.
2090         * src/fn-stat.c: SLOPE(), AVERAGEA(), MAXA(), MINA(), STDEVA(),
2091         STDEVPA(), VARA(), and VARPA() added.
2093         * src/fn-stat.c (gnumeric_counta, gnumeric_min, gnumeric_max,
2094         gnumeric_stdev, gnumeric_stdevp, gnumeric_var, gnumeric_varp):
2095         made public (used also in src/fn-math.c for now on).
2097 1999-05-19  Michael Meeks  <michael@imaginator.com>
2099         * CHANGES: copied to web and blanked.
2101 1999-05-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2103         * src/corba-args.c (gnumeric_arg_parse): Initialize as a server.
2104         Thanks to Elliot for fixing this one.
2106 1999-05-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2108         * src/utils.c (parse_cell_name): Return false if the cell name is
2109         outside the boundaries of the spreadsheet.
2111         * src/corba-sheet.c (Sheet_range_set_text): Implement.
2112         (Sheet_range_set_formula): Implement.
2113         (Sheet_range_set_format): Implement.
2115         * src/ranges.c (range_parse, range_list_parse, range_list_destroy,
2116         range_list_foreach_full, range_list_foreach_all,
2117         range_list_foreach, range_set_style): New functions.  Used by the
2118         corba-sheet code.
2120         * src/corba-sheet.c (Sheet_range_get_values): Implement
2121         vector-based result return.
2123         * src/xml-io.c (xmlSetGnomeCanvasPoints): use g_malloc instead of alloc.
2125         * src/dialog-solver.c (constr_add_click): Use g_malloc instead of
2126         alloc.  Use g_new instead of malloc.
2128         * src/utils.c (parse_cell_name_list): Add parameter checking.  Use Migueestyle.
2130 1999-05-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2132         * src/corba-workbook.c (Workbook_corba_class_init): Make it work
2133         with the new bonobo.
2135 1999-05-16  Raja R Harinath  <harinath@cs.umn.edu>
2137         * src/Gnumeric.idl: Revert the following checkin:
2138         1999-05-13  Kjartan Maraas  <kmaraas@online.no>.
2139         `gnome-object.idl' is part of `bonobo'.
2141 1999-05-16  Morten Welinder  <terra@diku.dk>
2143         * src/expr.c (do_expr_tree_relocate): Change to use lazy copying
2144         scheme -- this should improve sharing.  (Until someone saves and
2145         reloads, of course.  More about that at a later time.)
2146         (expr_tree_invalidate_references): Quiet.
2147         (expr_tree_fixup_references): Quiet.
2149         * src/cell.c (cell_relocate): Only update if changed.
2151         * src/expr.c (evaluate_level): Deleted.
2152         (bigger_prec): Deleted.
2153         (do_expr_decode_tree): Handle left/right associativity.
2155         * src/cell.c (cell_set_text_simple): Simplify value parsing.
2157         * src/dialog-goal-seek.c (test_cell_with_value): Cast to double,
2158         not float.
2160 1999-05-16  Michael Meeks  <michael@imaginator.com>
2162         * src/workbook.c (cb_assemble_selection): Add 'char *sel'
2163         and change "," -> ','
2164         (workbook_selection_to_string): Add 'char *result'
2165         Fix incorrect pointer dereference.
2167         * src/sheet.c (reference_append): Fix appended strings to
2168         characters.
2169         (sheet_selection_to_string): Add missing GList pointer
2170         'selections'. Changes ":" -> ':', rename res to 'info->result'
2172 1999-05-15  Heath Martin <martinh@pegasus.cc.ucf.edu>
2174         * src/gnumeric-sheet.c (gnumeric_sheet_compute_visible_ranges):
2175         Small cut and paste fix.  Use row here instead of col.
2177 1999-05-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2179         * configure.in (ALL_LINGUAS): Added slovak language.
2181 1999-05-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2183         * src/sheet.c (sheet_selection_to_string): New routine.  Returns a
2184         string representation of the current selection.
2186         * src/workbook.c (workbook_selection_to_string): New routine.
2187         Retunrs a string representation of the current selection.
2189 1999-05-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2191         * src/corba-workbook.c (corba_sheet): Fix.
2193 1999-05-16  Michael Meeks  <michael@imaginator.com>
2195         * CHANGES: Added to ease burdern of creating accurate descriptions
2196         between versions.
2198 1999-05-15  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2200         * samples/statfuns.xls: Added a new file.  It can be used for
2201         regression testing.  It is in Excel format so it tests the Excel
2202         plugin's functionality in the same time too.
2204 1999-05-15  Michael Meeks  <michael@imaginator.com>
2206         * src/file.c (file_format_register_save): Changed to append
2207         new types; works round bug in selection.
2209         * src/expr.c (eval_cell_value): Fix sillyness of top left
2210         corner stuff.
2212         * src/expr.h: Added const to value_dump
2214         * src/parser.y (value_dump): Fixed array problem.
2215         Added const to parameter.
2217 1999-05-15  Michael Meeks  <michael@imaginator.com>
2219         * src/parser.c (value_dump): Updated Arrays, to use Value *
2221         * src/func.c (function_iterate_do_value): same.
2223         * src/fn-sheet.c (gnumeric_selection): same.
2225         * src/eval.c (add_value_deps): same.
2227         * src/expr.c (value_get_as_string): Major re-work of ARRAY
2228         conversion.
2229         (value_array_set): Fix rather embarassing bug in assertions.
2230         (eval_cell_value): Return top left corner of array, seems to be
2231         what excel does.
2232         (value_release, value_array_set, value_array_new),
2233         (value_array_copy_to, value_array_resize):
2234         Updated value->v.array to Value *'s saves much hassle !
2236 1999-05-14  Michael Meeks  <michael@imaginator.com>
2238         * src/expr.c (value_area_get_width, value_area_get_height):
2239         Clip to sheet bounds if CELLRANGE: Massive speedup on some
2240         lookups.
2242         * src/expr.h: Added value_zero
2244         * src/func.c (constants_init): Added a 'value_zero' constant
2245         to kill leak in out-of-range / NULL cell cases in value_get_at_x_y
2247 1999-05-14  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2249         * src/fn-math.c: Added LCM().
2251 1999-05-13  Kjartan Maraas  <kmaraas@online.no>
2253         * src/Gnumeric.idl: s/#include <gnome-object.idl>/
2254           #include <GnomeObject.idl>, to make it compile.
2256 1999-05-13  Michael Meeks  <michael@imaginator.com>
2258         * src/Gnumeric-impl.c: Fixes killing this file by
2259         mistake.
2261 1999-05-13  Michael Meeks  <michael@imaginator.com>
2263         * src/expr.h: Updated all prototypes.
2265         * *.c:
2266         s/\<value_float *(/value_new_float (/g
2267         s/\<value_int *(/value_new_int (/g
2268         s/\<value_str *(/value_new_string (/g
2269         s/\<value_string *(/value_get_as_string (/g
2270         s/\<value_cellrange *(/value_new_cellrange (/g
2271         s/\<value_get_as_double *(/value_get_as_float (/g
2272         s/\<value_get_bool *(/value_get_as_bool (/g
2274         * src/expr.c: Moved all pertainant Value functions to the
2275         same place to aid possible splitting.
2277 1999-05-13  Michael Meeks  <michael@imaginator.com>
2279         * src/expr.c (value_area_get_at_x_y): Added warning
2280         in safety case.
2282         * src/fn-lookup.c (gnumeric_lookup): Implemented.
2284         * src/func.h: Updated critera_test_fun_t: returns int,
2285         should really be gboolean ?
2287         * src/expr.h: Added prototype & indentation beautified.
2289         * src/expr.c (value_array_set): Helper function added.
2291 1999-05-13  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2293         * src/fn-math.c: Added GCD().
2295 1999-05-12  Michael Meeks  <michael@imaginator.com>
2297         * src/workbook.c (workbook_setup_edit_area): Added dependancy
2298         debugging button for --debug=10 and fixed memory leak.
2299         (deps_output): Dumps dependency data to stdout.
2301         * src/gnumeric-util.c (range_contains): Re-order compares
2302         to catch single cell ranges more quickly.
2304         * src/eval.c (intersects): Change order of sheet / range check
2305         for speed.
2306         (search_cell_deps): Added comment.
2308         * src/eval.h: Cosmetic typo. fix shet -> sheet
2310 1999-05-12  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2312         * src/fn-database.c: Database functions accept now string
2313         criterias too.  In addition, the parsing of criterias and the test
2314         functions are now public (src/fn-math.c uses these for now on).
2316         * src/func.h: Added type definitions and function prototypes for
2317         internal functions that parse and test criterias.
2319         * src/fn-math.c: Added LN().  Changed LOG() to take an optional
2320         second parameter.  LOG() returns the logarithm in base 10 if the
2321         optional argument is not given, otherwise it returns the logarithm
2322         in the given base.
2324         * src/fn-math.c: Added COUNTIF() and SUMIF().
2326         * src/fn-eng.c: Added IMLOG10() and IMLOG2().
2328         * src/fn-eng.c (complex_ln): Fixed a bug.  Imaginary coefficient
2329         was calculated incorrectly.
2331 1999-05-11  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2333         * src/fn-eng.c: Added CONVERT().  All translations should work.
2334         Also get_real_and_imaginary() fixed (complex numbers should now
2335         work completely).
2337 1999-05-10  Michael Meeks  <michael@imaginator.com>
2339         * src/sheet.h: Added workbook_focus_sheet.
2341         * src/workbook.c (workbook_focus_sheet): Added.
2343 1999-05-10  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2345         * src/fn-eng.c: Added IMARGUMENT(), IMCONJUGATE(), IMCOS(),
2346         IMDIV(), IMEXP(), IMLN(), IMPOWER(), IMPRODUCT(), IMSIN(),
2347         IMSQRT(), IMSUB(), and IMSUM().
2349 1999-05-08  Michael Meeks  <michael@imaginator.com>
2351         * web/index.html: Fix sillyness in references.
2353         * web/gnumeric-0.25: Remove HTML tags...
2355 1999-05-08  Michael Meeks  <michael@imaginator.com>
2357         * src/Makefile.am (gnumeric_LDADD): Added libole2 library.
2359         * configure.in (XML_CFLAGS): Updated to add excel/libole2
2361         * src/sheet.h: Commented sheet_cell_get vs. _fetch.
2363         * src/expr.c (do_expr_tree_unref, value_string, value_release),
2364         (eval_cell_value, do_expr_tree_invalidate_references):
2365         Clean: Added 'default' cases with warnings.
2366         (value_get_as_double, value_get_as_int, value_get_bool): Changed
2367         to safer / faster switch statement from if.
2369 1999-05-07  Michael Meeks  <michael@imaginator.com>
2371         * src/corba-workbook.c (corba_sheet): Add CORBA_Environment
2372         parameter, needed for Object_dupicate...
2373         (Workbook_sheet_new, Workbook_sheet_lookup),
2374         (Workbook_sheet_current): Updated corba_sheet's args.
2376         * src/fn-lookup.c: Fixed choose help.
2378 1999-05-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2380         * src/corba-workbook.c (corba_sheet): Duplicate the object before
2381         returning to ORBit.
2383 1999-05-07  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2385         * src/fn-eng.c: Added COMPLEX(), IMABS(), IMAGINARY(), IMREAL().
2386         Also added an internal function get_real_and_imaginary() which
2387         still needs to be improved.
2389         * src/fn-math.c: Added MROUND() and ROMAN().  ROMAN() currently
2390         supports only type 0 (classic).
2392 1999-05-07  Heath Martin  <martinh@pegasus.cc.ucf.edu>
2394         * src/expr.c (expr_tree_invalidate_references): Add extra argument
2395         for the sheet we are changing.  All callers changed.
2396         (expr_tree_fixup_references): Ditto.
2398 1999-05-06  Morten Welinder  <terra@diku.dk>
2400         * src/eval.c (cell_queue_recalc): Don't re-queue cell.
2401         (cell_queue_recalc_list): Don't re-queue cells.  (Because it is
2402         wasteful and because unqueue then won't work right.)
2404         * src/fn-lookup.c (gnumeric_column): Fix leak.
2405         (gnumeric_row): Fix leak.
2406         (gnumeric_choose): Fix leak.
2407         (lookup_similar): Fix leaks.
2409         * src/xml-io.c (xml_probe): Fix leak.
2410         (xmlGetValue): Fix *HUGE* leak.
2411         (readXmlStyle): Fix leaks.
2412         (readXmlSheet): Fix leaks.
2413         (createXmlSheet): Fix leak.
2414         (readXmlCell): Move the freeze, just in case.
2416         * src/fn-lookup.c (gnumeric_choose): Remove (incorrect) arg check.
2418         * src/cell.c (cell_copy): Properly handle render_color member.
2419         Clear the CELL_QUEUED_FOR_RECALC flag.
2420         (cell_destroy): Add code to make it painfully clear when members
2421         of freed cells are accessed.
2423 1999-05-06  Michael Meeks  <michael@imaginator.com>
2425         * src/cell.h: Added deep freeze prototypes.
2427         * src/cell.c (cell_deep_freeze_redraws): Added
2428         (cell_deep_thaw_redraws): Added,
2429         (cell_queue_redraw): Updated to use deep_freeze
2430         effectively ignore redraw requests.
2432         * src/xml-io.c (readXmlCell): Added deep freeze/thaw
2433         redraws for clean and easy speedup.
2435 1999-05-06  Michael Meeks  <michael@imaginator.com>
2437         * src/workbook.c: Moved 'Sort' to the tools menu.
2439         * HACKING: Pedantic clean.
2441 1999-05-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2443         * src/fn-date.c: Added EDATE().
2445 1999-05-06  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2447         * src/fn-date.c: Added DATEVALUE().
2449 1999-05-05  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2451         * src/fn-database.c (parse_criteria): If a condition contains
2452         just a number, it is an equality condition.
2454 1999-05-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2456         * configure.in: Laptop does not have resources.  Make guile
2457         optional until at least.
2459         * src: Now we only support two modes: Gnumeric and
2460         Gnumeric-Bonobo.  The later includes all of the CORBA support,
2461         there is no longer a non-Bonobo CORBA version.
2463         * src/corba-workbook.c, src/corba-sheet.c, src/workbook-factory.c:
2464         New files that support the Gnumeric CORBA interfaces.
2466 1999-05-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2468         * src/corba-workbook.c (WorkbookFactory_init): Add workbook
2469         factory servant initialization.
2471 1999-05-04  Morten Welinder  <terra@diku.dk>
2473         * src/eval.c (dependency_remove_cell): Remove unused assignment.
2474         (cell_queue_recalc_list): Mark queued cells as being so.
2476         * src/fn-math.c (gnumeric_combin): Clean up.
2477         (combin): Handle large numbers carefully.
2479         * src/utils.c (january_1900): Fix argument list.
2481         * src/fn-stat.c (gnumeric_var): Remove unused variable.
2482         (gnumeric_varp): Ditto.
2484 1999-05-04  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2486         * src/fn-math: Added ROUND().
2488         * src/fn-information: Added new file for information functions.
2489         New function COUNTBLANK() implemented.
2491         * src/Makefile.am, src/func.[ch]: Added `fn-information.c'.
2493 1999-05-04  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2495         * src/fn-database.c: Added DCOUNTA().
2497         * src/fn-stat.c: Added argument count checks for VAR() and VARP().
2498         Added STEYX().
2500 1999-05-03  Morten Welinder  <terra@diku.dk>
2502         * src/format.c (split_time): Fix leak.
2504         * src/parser.y (forget): Fix leak.
2506         * src/expr.c (do_expr_tree_ref): Delete.
2507         (expr_tree_ref): Just increase the ref-count.
2508         (do_expr_tree_unref): Properly decrease all the way.
2509         (expr_tree_new): Fix prototype.
2510         (value_release): Add "break".
2511         (value_cellrange): Make args const.  Don't use memcpy call.
2513         * src/parser.y (v_new): Fix type.
2514         (alloc_register): Ditto.
2515         (dump_tree): Fix reference to variable cell.
2517         * src/file.c (file_format_unregister_save): Fix leak.
2518         (file_format_unregister_open): Fix leak.
2520         * src/parser.y (forget): Fix leak.
2522         * src/eval.c (add_tree_deps): Use OPER_ANY_BINARY.
2523         (add_value_deps): Delete unused variable.
2524         (dependency_remove_cell): Fix leak.
2526         * src/sheet.c (sheet_destroy_styles): Leak fix.  Late night
2527         coding?  :-)
2528         (sheet_shift_row): Ditto.
2530         * src/parser.y (alloc_clean): Ditto.
2531         (alloc_list_free): Ditto.
2533         * src/main.c (gnumeric_main): Get rid of memory leak debug code
2534         (handled by other means now).
2536         * src/cell.c (cell_set_value): Remove "const".
2537         (cell_set_value_simple): Ditto.
2539 1999-05-03  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2541         * src/fn-database.c: New file added for database
2542         functions. Implemented DAVERAGE(), DCOUNT(), DGET(), DMAX(),
2543         DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR(), and
2544         DVARP().
2546         * src/func.c: Added registeration of database functions.
2548         * src/fn-stat.c, src/func.h: callback_function_stat made public.
2550 1999-05-02  Michael Meeks  <michael@imaginator.com>
2552         * src/expr.h: Spelling fix 'substract' :-)
2554         * src/expr.c (expr_tree_new): Added for convenience.
2556 1999-05-02  Michael Meeks  <michael@imaginator.com>
2558         * src/cell.c (cell_set_value): Created.
2559         (cell_set_value_simple): Created.
2561         * src/cell.h: Added headers
2563 1999-05-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2565         * src/corba-workbook.c, src/corba-sheet.c: New files implementing
2566         most of the new Gnumeric.idl interface.
2568         * src/Gnumeric.idl: Make it useful.
2570 1999-04-30  Morten Welinder  <terra@diku.dk>
2572         * src/*.h: Properly forward-declare structures.  Include
2573         dependencies.  Change the occasional "void *" to its right
2574         type.
2576         * src/*.[cy]: Include more dependencies.
2578         * src/sheet.c (sheet_delete_row): Remove from workbook hash also.
2580 1999-04-29  Morten Welinder  <terra@diku.dk>
2582         * src/expr.c (expr_tree_fixup_references): Implement.
2584         * src/sheet.c (sheet_delete_row, sheet_delete_col): Fixup
2585         references.
2587         * src/expr.c (do_expr_tree_relocate): Remove strange and incorrect
2588         refcount fiddling.
2590         * src/workbook.c (workbook_fixup_references,
2591         workbook_invalidate_references): Fix cell walking.
2593         * src/expr.c (do_expr_decode_tree): rename binary_operation_names
2594         to operation_names and fill in the rest.
2596         * src/fn-misc.c (gnumeric_error): New function.
2598         * src/expr.c (value_str): Constify.
2599         (expr_tree_invalidate_references): Mostly implement.
2601         * src/fn-math.c (gnumeric_multinomial, gnumeric_product,
2602         gnumeric_sumsq): Fix type.
2604         * src/expr.h (OPER_ANY_BINARY, OPER_ANY_UNARY): new convenience
2605         macros.
2606         (struct _Sheet): declare forward reference so we can use the right
2607         types.
2608         (CellRef, FunctionDefinition, expr_parse_string, expr_decode_tree,
2609         eval_expr): use "struct _Sheet *".
2611         * src/workbook.c (workbook_do_destroy): Carefully clean workbook
2612         before deleting sheets.  Do things in the standard way.  Get rid
2613         of clipboard leak.
2614         (insert_cols_cmd): Fix name string.
2615         (workbook_detach_sheet): New parameter "force".  All callers
2616         changed.
2617         (workbook_fixup_references, workbook_invalidate_references,
2618         workbook_sheets): New functions.
2620         * src/sheet.c (sheet_verify_selection_simple): Mark strings for
2621         translation.
2622         (sheet_insert_col): Fixup references to moved cells.
2623         (sheet_delete_col, sheet_delete_row): Invalidate references to
2624         deleted cells.
2626         * src/sheet-autofill.c (fill_item_new): Fix copying of cell with
2627         error.
2629         * src/parser.y (yylex): "const" fixes.
2630         (gnumeric_expr_parser): New function (to fix memory corruption and
2631         leaks).
2633         * src/fn-stat.c (i1mach): Make static.
2634         (gnumeric_var, gnumeric_varp, gnumeric_stdev, gnumeric_stdevp,
2635         gnumeric_rank, gnumeric_trimmean, gnumeric_covar, gnumeric_correl,
2636         gnumeric_mode, gnumeric_harmean, gnumeric_geomean, gnumeric_count,
2637         gnumeric_counta, gnumeric_average, gnumeric_min, gnumeric_max,
2638         gnumeric_skew, gnumeric_kurt, gnumeric_avedev, gnumeric_devsq,
2639         gnumeric_pearson, gnumeric_rsq, gnumeric_median, gnumeric_large,
2640         gnumeric_small, gnumeric_ztest): Fix type.
2642         * src/fn-math.c (gnumeric_fact, gnumeric_combin): Mark strings for
2643         translation.
2644         (gnumeric_sum, gnumeric_trunc): Fix type.
2646         * src/fn-lookup.c (gnumeric_choose, gnumeric_column,
2647         gnumeric_row): Fix type.
2649         * src/fn-misc.c (gnumeric_iserror): Fix type.
2651         * src/fn-sheet.c (gnumeric_selection): Fix type.
2653         * src/fn-string.c (gnumeric_concatenate): Fix type.
2655         * src/fn-logical.c (gnumeric_and, gnumeric_not, gnumeric_or,
2656         gnumeric_if): Fix type.
2658         * src/fn-financial.c (gnumeric_npv): Fix type.
2660         * src/expr.c (expr_parse_string): Move in part to parser.y.
2661         Delete global variables to communicate.
2662         (do_expr_tree_ref, do_expr_tree_unref, do_expr_decode_tree,
2663         do_expr_tree_relocate): use OPER_ANY_BINARY and OPER_ANY_UNARY.
2664         (function_call_with_values): Mark strings for translation.
2665         (eval_expr, do_expr_decode_tree, expr_decode_tree): Fix type to
2666         use "Sheet *" instead of "void *".
2667         (do_expr_decode_tree): Free sum.
2668         (expr_tree_invalidate_references, expr_tree_fixup_references): New
2669         functions.  Not implemented yet.
2671         * src/cell.c (cell_set_formula): "const" fix.
2672         (cell_copy): Ref entered_string also if it exists.
2673         (cell_relocate): Unlink cell from workbook list of cells.
2675         * src/about.c (dialog_about): Add myself.  Update copyright.
2677 1999-04-29  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2679         * src/fn-{math,sheet,logical}.c, src/func.[ch]: Moved logical
2680         functions into a new file.
2682         * src/fn-math.c: Added ROUNDDOWN(), ROUNDUP(), SUMX2MY2(),
2683         SUMX2PY2(), and SUMXMY2().
2685         * src/fn-stat.c: Added PROB(). CONFIDENCE() should now work fully.
2687 1999-04-28  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2689         * src/fn-stat.c: Added COUNTA(), FINV(), and TINV().
2691         * src/fn-stat.c, src/fn-math.c: AVERAGE(), COUNT(), MAX(), and
2692         MIN() moved from fn-math.c to fn-stat.c.  They are in the
2693         statistical function group in Excel.
2695 1999-04-27  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2697         * src/fn-stat.c: Added BETADIST(), FDIST(), and TDIST().
2699 1999-04-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2701         * src/eval.c (intersects): Typo fix.  Sheet was being assigned
2702         instead of being tested for equality.  This got Michael to crash
2703         Gnumeric (as there was no test for can_remove)
2705 1999-04-26  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2707         * src/fn-stat.c: Added CHIDIST(), CHIINV(), and GAMMAINV().
2709 Sat Apr 24 14:39:32 1999  Morten Welinder  <terra@diku.dk>
2711         * src/sheet.c (sheet_selection_reset_only): Remove useless
2712         initialisation.  Don't free individual selections here.
2714         (sheet_selections_free): Walk the list of selections and free each
2715         one.
2717         (sheet_get_selection_name): Calculate buffer size based on the
2718         size of an int.
2720         * src/fn-eng.c: Remove sqrtpi function -- it's already in fn-math.c
2722         * src/fn-math.c (gnumeric_sqrtpi): Add range check.
2724         * src/symbol.c (symbol_install): Add sanity check.
2726 Fri Apr 23 17:52:44 1999  Morten Welinder  <terra@diku.dk>
2728         * src/sheet.c (sheet_destroy): Don't check that workbook is
2729         NULL because it cb_sheet_do_destroy will call it non-NULL.
2731         * src/workbook.c (cb_sheet_do_destroy): Don't NULL workbook
2732         member as it will be used.
2734         * src/format.c (render_number): Fix rounding up.
2736         * src/*.[chy]: add tons on "const"s.
2738 1999-04-23  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2740         * src/fn-stat.c: Added GAMMADIST() function.  It uses pgamma()
2741         function written by Ross Ihaka.  Thanks to Morten for pointing
2742         this piece of code.
2744 1999-04-21  Morten Welinder  <terra@diku.dk>
2746         * src/workbook.c (workbook_do_destroy): Release the sheets and the
2747         hash table that held the references to the sheets.
2749         * src/func.c: warning fix.
2751 1999-04-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2753         * src/widget-editable-label.c (el_button_press_event): Add type
2754         cast to kill warning.
2756         * src/format.c: Include ieeefp.h if required.
2758 1999-04-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2760         * src/fn-string.c: Close parentheses in help_stubstitute function
2761         descritpion.   Thanks to Aldy Hernandez for pointing this out.
2763 1999-04-19  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2765         * src/dialog-goal-seek.c: Goal seek tool implemented.  Goal seek
2766         should now find a solution for all linear problems (if there is
2767         one).  A simple non-linear search algorithm also implemented.
2769         * src/workbook.c: Made 'Goal seek' menu entry visible.
2771         * src/fn-math.c: Added MULTINOMIAL(), PRODUCT(), SIGN(), SUMSQ(),
2772         and SQRTPI().
2774 1999-04-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2776         * src/func.c (iterate_cellrange_callback): Eval the cell here if
2777         it has not yet been evaluated.
2779 Sun Apr 18 17:59:09 EDT 1999 Gregory McLean <gregm@comstar.net>
2781         * gnumeric.spec.in: Updated and enhanced spec file. Tastes even
2782         better and is less filling to boot!
2784 1999-04-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2786         * src/sheet-object-container.c (make_container_item): New
2787         routine.
2788         (sheet_object_container_land): Used to convert from the temporary
2789         widgets to the view provided by Bonobo.
2791 1999-04-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2793         * src/expr.c (value_array_resize): Fix typo bug I introduced.
2795         * src/eval.c (cell_queue_recalc): When queuing for recalc, tag the
2796         cell, so that if we remove the cell from the recalc list we can
2797         quickly find out if we have to look for it on the list of pending
2798         recomputations.
2799         (pick_next_cell_from_queue): Clear the cell's
2800         CELL_QUEUED_FOR_RECALC bit.
2801         (cell_unqueue_from_recalc): New routine to remove a cell queued
2802         for recomputation.
2804         * src/clipboard.c (new_node): Trim leading spaces.
2806 1999-04-16  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2808         * src/fn-math.c: Added EVEN, FACTDOUBLE, ODD, QUOTIENT, and
2809         RANDBETWEEN.
2811         * src/fn-stat.c: Added LOGINV, NORMINV, NORMSINV, RSQ, and ZTEST
2812         functions.
2814 1999-04-15  Michael Meeks  <michael@edenproject.org>
2816         * src/parser.y (value_dump): Added CellRange support
2818         * src/fn-lookup.c (gnumeric_offset): Implemented OFFSET.
2820         * src/expr.c (value_cellrange): Created.
2821         (eval_funcall): Major hack to allow auto-conversion
2822         of cell references to cell ranges on the fly.
2824         * src/expr.h: Added value_cellrange.
2826 1999-04-15  Michael Meeks  <michael@edenproject.org>
2828         (gnumeric_choose): CHOOSE function implemented.
2830 1999-04-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2832         * src/sheet.c (sheet_destroy): No longer destroys the Bonobo
2833         objects here.
2835         * src/sheet.h (Sheet): No longer keeps track of the ClientSites
2836         here.
2838         * src/sheet-object.c (sheet_finish_object_creation): Invoke new
2839         class method to signal finalization of object creation.
2841         * src/sheet-object-container.c, src/sheet-object-container.h: New
2842         files that implement the Bonobo ClientSites
2843         (SheetObjectContainers).
2845         * src/Makefile.am (gnumeric_bonobo_SOURCES): Sources for Bonobo
2846         compilation.
2848         * src/sheet-object.c (sheet_object_construct): Create the bounding
2849         box points here.
2850         (sheet_set_mode_type): Fix from my previous reorganization:  Only
2851         stop editing mode if the mode is SHEET_MODE_SHEET.
2852         (sheet_button_press): Strategy change: now we accept
2853         sheet->current_object and we stop editing here the object.
2855         * src/sheet-object.h: points has been renamed to bbox_points.
2857         * src/sheet-object-graphic.c (sheet_object_filled_realize):
2858         Simplified this routine.  Also, we now update the bounding box
2859         here.
2861 1999-04-15  Michael Meeks  <michael@mejm2.dow.cam.ac.uk>
2863         * src/fn-lookup.c: Silly bug in types fixed.
2865         * src/expr.c (eval_funcall): Made cellrefs absolute.
2867         * src/cell.c (cell_set_text_simple): Fix for 1.234E-07
2869 1999-04-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2871         * src/sheet-object.c: Converted SheetObject to a Gtk+ object.
2872         Splitted the functionality of the SheetObject into classes:
2873         SheetObject abstract class;  SheetObjectGraphic for simple drawings;
2874         SheetObjectFilled for objects that have a fill attribute.
2876         * src/sheet-object-graphic.c: Implement the SheetObjectGraphic and
2877         SheetObjectFilled objects.
2879 1999-04-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2881         * src/xml-io.c (xml_probe): Do not crash if the file is a broken
2882         XML file.
2884 1999-04-13  Zbigniew Chyla <cyba@t19.ds.pwr.wroc.pl>
2886         * src/workbook.c: using 'gnome_dialog_run_and_close' instead of
2887         'gnome_dialog_run' (which _may_ destroy dialog widget - we don't have to
2888         check for this case).
2890 1999-04-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2892         * src/corba-args.c (gnumeric_arg_parse): Intiialize Bonobo.
2894         * configure.in: add test for Bonobo.
2896         * src/clipboard.c (x_selection_to_cell_region): Fixed the
2897         computation of columns in the paste code.
2899 1999-04-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
2901         * src/workbook.c (insert_object_cmd): Add sample bonobo support.
2902         Still lacking an object server selector.
2904         * src/sheet.c (sheet_insert_object): Add Bonobo support.
2906         * src/sheet-view.c (sheet_view_insert_object): Add basic Bonobo
2907         support.  I need to reuse the SheetObject stuff to add control
2908         points to the objects and to handle repositioning.
2910 1999-04-12 Michael Meeks  <michael@imaginator.com>
2912         * TODO: Removed basic functions section, most are done.
2914 1999-04-11 Michael Meeks  <michael@imaginator.com>
2916         * src/dialog-function-select.c (function_select_row):
2917         Check event is valid before using it, remove redundant
2918         total redraw.
2919         (category_select_row): Fix.
2920         (function_select_create): Removed redundant call to
2921         duplicated (create_description): Removed.
2923         * src/fn-lookup.c: Actualy change the lookup function
2924         tokens to the correct values.
2926 1998-04-09 Zbigniew Chyla <cyba@t19.ds.pwr.wroc.pl>
2928         * src/workbook.c: Creating auto_expr menu every time it is popped
2929         up instead of using one object all the time (and referencing to
2930         invalid workbook from "activate" signal handler).
2932         * src/item-grid.c: (item_grid_popup_menu): Fixed memory leak
2933         (gnumeric_popup_menu used instead of gtk_menu_popup).
2935 1999-04-11 Michael Meeks  <michael@imaginator.com>
2937         * src/expr.c (eval_funccall): New array / 'area' tokens added,
2938         error strings simplified ( int type_mismatch added )
2939         (value_area_get_width, value_area_get_height): Implemented,
2940         (value_area_get_at_x_y): Implemented.
2941         (value_array_new, value_array_resize): Implemented.
2942         (value_release): Updated.
2943         (value_copy_to, value_array_copy_to): Updated, created.
2944         Added const to a scad of helper 'value_get' style functions.
2946         * src/expr.h: Value: Changed 'array' from GList to a
2947         structure.
2948         Added struct _Value for self reference.
2949         Added const to a scad of helper 'value_get' style functions.
2951         * src/func.c (function_iterate_do_value): Updated Array code.
2953         * src/eval.c (add_value_deps): Updated Array stuff.
2954         (add_value_deps): const added to Value *
2956         * src/dialog-function-wizard.c (function_type_input):
2957         Updated text for new tokens.
2959         * src/fn-sheet.c (gnumeric_selection): Update to new array code.
2961         * src/fn-lookup.c (columns, rows): Updated to clean new API.
2962         (vlookup, hlookup): Large clean.
2964         * src/parser.y (value_dump): Updated Array section.
2966         * docs/C/writing-functions.smgl: Added section explaining tokens,
2967         and new API.
2969 1999-04-09 Michael Meeks  <michael@imaginator.com>
2971         * src/sheet.c (sheet_destroy): Move destruction of cell_hash to
2972         after destroy_styles.columns_and_rows that use it.
2973         NULL various pointers.
2974         (sheet_col_destroy): Added g_return_if_fail (ci)
2975         (sheet_duplicate_colrow): Merged into (sheet_row_new, sheet_col_new)
2976         and removed: nasty function.
2977         (sheet_destroy_columns_and_rows): Fix nasty bug using freed 'l'
2978         pointer ( freed by sheet_col_destroy / sheet_row_destroy ).
2979         NULL the pointers for safety.
2980         (sheet_col_destroy): NULL various pointers.
2982         * src/sheet.h (sheet_duplicate_colrow): Removed.
2984 1999-04-08  Jukka-Pekka Iivonen  <iivonen@iki.fi>
2986         * src/dialog-solver.c, src/dialog-goal-seek.c, src/solver.h:
2987         Wrote dialogs for these tools. The tools are not implemented yet.
2989         * src/solver-lp.c:
2990         New file for linear programming methods created.
2992         * src/sheet.h:
2993         Added parameters for the Solver tool.
2995         * src/fn-stat.c (gnumeric_correl):
2996         Bug fixed.  If the covariance is zero the correlation coefficient
2997         should also be zero. Thanks for Vladimir for pointing this one out.
2999 1999-04-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3001         * src/xml-io.c (xmlGetCoordinates): Include fix from Richard Hult:
3002         Seemed to be a cut and paste error.
3004         * src/cell.c (cell_destroy): From Morten Welinder: destroy the
3005         cell->value only if it does exist.
3007         * src/file.c (dialog_query_load_file): Set the accepted value to
3008         false initially.  Thanks for Morten for pointing this one out.
3010 1999-04-06  Zbigniew Chyla <cyba@piast.t19.ds.pwr.wroc.pl>
3012         * src/workbook.c (workbook_new): Use the translated version of the
3013         function to display
3015 1999-04-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3017         * src/workbook.c: Enable the function wizard only if the --debug
3018         flag was passed.
3020         * src/dialog-function-wizard.c, src/dialog-function-select.c:
3021         Adapt to the rest of Gnumeric coding style.
3023         Use a different way of creating the GUI and controlling the
3024         interactions.
3026         * src/func.c, src/func.h (function_iterate_do_value): Use my
3027         indentation and coding style here.
3029         * src/dialog-cell-format.c (render_formated_version): Handle the
3030         case where the value might be NULL.
3032         * src/xml-io.c (createXmlSheet): New function.  Used in an initial
3033         pass over the XML file to load all of the Sheets defined there.
3034         (readXmlWorkbook): Now this does two passes at loading the sheet:
3035         the first pass creates the sheets, the second pass actually loads
3036         the contents.
3038 1999-04-06 Michael Meeks  <michael@imaginator.com>
3040         * src/workbook.c (workbook_new): More sensible default
3041         size.
3043         * src/sheet.c (sheet_row_set_height): use sheet_row_new()
3044         instead of sheet_duplicate_colrow(), as we get duff span
3045         data otherwise ( not calling row_init_span )
3046         (sheet_col_set_width): Re-order, presumably fixing bug,
3047         and as for set_height.
3049 1999-04-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3051         * src/xml-io.c (createXmlSheet): New function.  Used in an initial
3052         pass over the XML file to load all of the Sheets defined there.
3053         (readXmlWorkbook): Now this does two passes at loading the sheet:
3054         the first pass creates the sheets, the second pass actually loads
3055         the contents.
3057 1999-04-06 Michael Meeks  <michael@imaginator.com>
3059         * src/func.c (tokenised_help_new): Improved algorithem.
3060         (functions_init): Made descriptions more verbose.
3062         * src/workbook.c (wizard_input): Cleaned to use local
3063         entry instead of specific wb->ea_input.
3065         * src/dialog-function-wizard.c (function_type_input):
3066         Update types, add recursive function button.
3067         (function_input): Created.
3068         (arg_data_list_new): Added wb to ARG_DATA, needed for
3069         function_input.
3070         Added default code for multi-arg functions.
3071         Deals with no-argument functions properly,
3072         Fix silly args=NULL g_free(args) bug.
3073         (dialog_function_wizard): Special 'no-arguments' quick
3074         case.
3076         * src/fn-math.c (gnumeric_rand): Added RAND function.
3078 1999-04-05  Morten Welinder <terra@diku.dk>
3080         * src/cell.c (cell_set_rendered_text): Fix for circular
3081         references.
3083 1999-04-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3085         * src/about.c (dialog_about): Do not make the about box modal.
3087 1999-04-05 Michael Meeks  <michael@imaginator.com>
3089         * src/func.c (tokenised_help_new, tokenised_help_destroy),
3090         (tokenised_help_find_token): Implemented to assist searching
3091         for tokens.
3093         * src/func.h: Inserted TOKENISED_HELP struct, and prototypes.
3095 1999-04-04 Michael Meeks  <michael@imaginator.com>
3097         * src/dialog_function_wizard.c: Created
3099         * src/workbook.c (workbook_setup_edit_area): Add Wizard
3100         button.
3102         * src/dialogs.h: Add dialog_function_wizard
3104         * src/func.c (functions_init): Added descriptions.
3105         Init categories array.
3106         (get_function_categories): Returns array of categories.
3107         (install_symbols): Add description argument.
3109         * src/func.h: Updated prototypes altered,
3110         add get_function_categories and struct FUNCTION_CATEGORY.
3112         * plugins/guile/plugin.c (init_plugin): Update install_symbols.
3114         * plugins/sample/plugin-sample.c (init_plugin): Ditto.
3116 1999-04-03 Michael Meeks  <michael@imaginator.com>
3118         * src/sheet.c (sheet_cell_remove_from_hash): Now checks
3119         return value of g_hash_table_lookup_extended, before
3120         freeing a random pointer if its not there.
3122         * src/cellspan.c (cell_unregister_span): Check another
3123         pointer.
3125         * src/cell.c (cell_set_formula): Default error_msg !
3127 1999-04-03 Michael Meeks  <michael@imaginator.com>
3129         * src/sheet.c (sheet_cell_remove_from_hash): Now checks
3130         return value of g_hash_table_lookup_extended, before
3131         freeing a random pointer if its not there.
3133         * src/cellspan.c (cell_unregister_span): Check another
3134         pointer.
3136         * src/cell.c (cell_set_formula): Default error_msg !
3138 1999-04-02 Michael Meeks  <michael@imaginator.com>
3140         * src/fn-sheet.c (gnumeric_if): Fix to allow variable
3141         arguments, updated help & struct to comply, removed
3142         possible memory leak. ( Luke 17:3,4 )
3144 1999-04-01 Michael Meeks  <michael@imaginator.com>
3146         * src/workbook.c (sheet_action_delete_sheet): Fix docs.
3148 1999-03-31  Morten Welinder <terra@diku.dk>
3150         * src/fn-stat.c (phi): new internal function.
3151         (gnumeric_normdist): Implemented using phi instead of the built-in
3152         table.
3154 1999-03-31  Michael Meeks  <michael@imaginator.com>
3156         * src/dialog-cell-sort.c (dialog_cell_sort): Added multiple
3157         clause support, and cleaned UI.
3158         (add_clause, del_clause): Added.
3160 1999-03-30  Michael Meeks  <michael@imaginator.com>
3162         * src/dialog-cell-sort.c (dialog_cell_sort): Fix possible
3163         problem with entire column selection. Need some function
3164         to determine largest used cell range.
3166 1999-03-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3168         * src/about.c (dialog_about): Fixed.  Patch from Takashi Matsuda
3170 1999-03-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3172         * src/fn-financial.c (gnumeric_dollarfr): Use floor, not floorf,
3173         as I cannot find documentation on this on my system.
3175         * src/fn-math.c (gnumeric_ceiling): Use ceil, not ceilf.  I
3176         cannot find documentation on this on my system
3178 1998-11-12  Morten Welinder <terra@diku.dk>
3180         * src/fn-stat.c (gnumeric_variance): More precise method of
3181         computing the variance.
3183 1999-03-30  Michael Meeks  <michael@imaginator.com>
3185         * src/sheet.c (sheet_selection_first_range): This returns
3186         the co-ordinates of the first range, and a flag as to whether
3187         the selection is simply one range. This keeps things simple
3188         for sort.
3190         * src/utils.c (col_from_name): Created.
3192         * src/utils.h: Added prototype.
3194         * src/dialog-cell-sort.c: Created
3196         * src/workbook.c (workbook_menu_format): Added 'Sort'.
3197         (sort_cells_cmd): Created.
3199         * src/dialogs.h: Added dialog_cell_sort.
3201 1999-03-30  Michael Meeks  <michael@imaginator.com>
3203         * src/fn-lookup.c (gnumeric_vlookup, gnumeric_hlookup):
3204         Removed check for same sheets in each cell reference, in
3205         intersheet references only a->sheet points to the other sheet.
3207         * src/func.c (function_iterate_do_value): Change CELLRANGE's
3208         sheet reference to cell_range.cell_a.sheet, since could be an
3209         inter-sheet reference. This fixes: Sum(Sheet1!A1:B3)
3211         * src/fn-eng.c: Cleaned function documentation.
3213         * docs/C/writing-functions.smgl: Updated for option function
3214         arguments.
3216         * src/fn-math.c (gnumeric_mod): Implemented.
3218 1999-03-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3220         * src/expr.c (eval_expr): Fix from Ian Campbell for fixing the
3221         subtraction problem.
3223 1999-03-28  Jukka-Pekka Iivonen  <iivonen@iki.fi>
3225         * src/fn-stat.c: Added large, median, pearson, and small.
3227 1999-03-28  Michael Meeks  <michael@imaginator.com>
3229         * src/parser.y (yylex): Added digits count to stop
3230         overflow of integers above 9 digits.
3232 1999-03-27  Michael Meeks  <michael@imaginator.com>
3234         * src/sheet.c (fail_if_found): Renamed to
3235         (fail_if_not_selected): Added check for selection
3236         (sheet_is_region_empty): Renamed to
3237         (sheet_is_region_empty_or_selected): Better
3238         described new function.
3240         * src/item-cursor.c (item_cursor_target_region_ok):
3241         Uses sheet_is_region_empty_or_selected.
3243 1999-03-27  Michael Meeks  <michael@imaginator.com>
3245         * src/expr.c (eval_funcall): Add vital 'break'
3246         statement :-)
3248 1999-03-27  Michael Meeks  <michael@imaginator.com>
3250         * src/eval.c (cell_eval): Set default value of
3251         error_msg so cell doesn't get null text on
3252         g_return_val_if_fail (condition, NULL) ;
3254         * src/sheet.c (sheet_update_auto_expr):
3255         Internationalized ERROR string.
3257         * src/fn-lookup.c (gnumeric_column, gnumeric_columns)
3258         (gnumeric_row, gnumeric_rows): Hacked; best can do for
3259         now.
3261 1999-03-26  Michael Meeks  <michael@imaginator.com>
3263         * src/fn-eng.c (gnumeric_delta): Fix memory leak
3264         (gnumeric_gestep): Cleaned to better arg. model
3265         (bin/oct/dec/hex2...): Cleaned similarly
3267         * src/fn-stat.c (gnumeric_poisson): Cleaned
3269         * src/fn-string.c (string_and_optional_int): Removed.
3270         (gnumeric_left, gnumeric_right, gnumeric_find),
3271         (gnumeric_fixed, gnumeric_dollar, gnumeric_substitute):
3272         Updated to optional argument types.
3273         (gnumeric_clean): Moved from fn-misc.c
3275         * src/fn-misc.c (gnumeric_clean): Moved to fn-string.c
3277         * src/expr.c (cell_ref_make_absolute): Makes a CellRef
3278         absolute.
3279         (eval_funcall): Added range token 'r' for lookup
3280         functions, makes reference absolute so can be used
3281         downstream without trouble.
3283         * src/expr.h: Added range comments
3285         * src/fn-lookup.c: Created
3286         (lookup_simliar, gnumeric_vlookup):
3287         Implements VLOOKUP.
3288         (gnumeric_hlookup): Implements HLOOKUP.
3290 1999-03-25  Jukka-Pekka Iivonen  <iivonen@iki.fi>
3292         * src/fn-financial.c: dollarde, dollarfr, and npv added.
3294         * src/fn-stat.c: correl, covar, mode, negbinomdist, rank, and
3295         trimmean added.
3297 1999-03-25  Michael Meeks  <michael@imaginator.com>
3299         * src/expr.c (eval_funcall): Updated to add new optional argument
3300         token.
3302         * src/expr.h: Comments to explain above.
3304         * src/fn-eng.c (gnumeric_erf, gnumeric_delta): Drastic clean to use
3305         new optional token.
3307 1999-03-23  Jukka-Pekka Iivonen  <iivonen@iki.fi>
3309         * src/fn-math.c: ceiling added.
3311         * src/fn-stat.c: fisherinv, normsdist, and lognormdist added.
3313         * AUTHORS, src/about.c: added me.
3315 Tue Mar 23 14:00:37 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
3317         * src/xml-io.c : solved the problem of saving cells with < or &
3319 1999-03-21  Jukka-Pekka Iivonen  <iivonen@iki.fi>
3321         * src/fn-stat.c: avedev, confidence, critbinom, devsq, fisher,
3322         kurt, normdist, permut, skew, standardize, and weibull added.
3324         * src/fn-math.c, src/func.h: gnumeric_average and fact made public
3325         (used in src/fn-stat.c).
3327 1999-03-17  Vladimir Vuksan <vuksan@veus.hr>
3329         * src/fn-financial.c: Added new functions gnumeric_ipmt,
3330         gnumeric_ppmt, gnumeric_duration.
3332 1999-03-18  Jukka-Pekka Iivonen  <iivonen@iki.fi>
3334         * src/fn-math.c: combin added.
3336         * src/fn-stat.c: binomdist, harmean, and hypgeomdist added.
3338 1999-03-18  Michael Meeks  <michael@imaginator.com>
3340         * src/fn-eng.c (val_to_base): Minor fixes
3342 1999-03-18  Sean Atkinson  <sca20@cam.ac.uk>
3344         * notes: typos
3346         * src/expr.c (value_string): cleaned to use g_strdup_printf
3348         * src/expr.h: typo
3350         * src/fn-string.c (gnumeric_mid): fixed
3351         internationalized various strings, typos
3352         (subs_string_new, subs_string_append_n, subs_string_free): added to
3353         speed gnumeric_substitute
3354         (gnumeric_concatenate, gnumeric_rept, gnumeric_find, gnumeric_fixed)
3355         (gnumeric_proper, gnumeric_replace, gnumeric_t, gnumeric_value)
3356         (gnumeric_substitute, gnumeric_dollar): implemented.
3358 1999-03-16  Vladimir Vuksan <vuksan@veus.hr>
3360         * src/fn-financial.c: More financial functions: gnumeric_nominal,
3361         gnumeric_pv, gnumeric_fv, gnumeric_pmt.
3363 1999-03-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3365         * src/workbook.c: Change from active voice to passive voice in the
3366         help messages for "New".  Thanks to Morten for pointing this out. 2
3368 1999-03-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3370         * src/fn-math.c (callback_function_sum): Detects integer
3371         over/under flow.
3373         * src/expr.c (eval_expr): Add integer overflow code for addition
3374         and substraction.
3376         * src/cell.c (cell_set_format): Call cell_render_value and
3377         cell_queue_redraw calls here.
3379         * src/expr.c (bigger_prec): When decoding left-to-right apply
3380         parentheses if the two priorities are equal.
3382 1999-03-13  Richard Hult <rhult@hem2.passagen.se>
3384         * src/xml-io.c (xmlGetGnomeCanvasPoints): test against the value
3385         returned by xmlGetValue, not the GnomeCanvasPoints value.
3387 1999-03-13  Michael Meeks <michael@imaginator.com>
3389         * src/fn-eng.c (val_to_base, val_to_base_place),
3390         (bin/oct/dec/hex 2 bin/oct/dec/hex):
3391         Implemented - pending fixes to number storage.
3393 1999-03-13  Michael Meeks <michael@imaginator.com>
3395         * src/fn-eng.c (gnumeric_delta, gnumeric_sqrtpi),
3396         (gnumeric_gestep): Implemented
3398         * src/fn-math.c (sqrt): Implemented.
3400 1999-03-13  Michael Meeks <michael@imaginator.com>
3402         * src/fn-eng.c: Created
3403         (gnumeric_erf, gnumeric_erfc, gnumeric_bessely)
3404         (gnumeric_besselj): Implemented
3405         (gnumeric_bin2dec): Moved from fn-math.c
3407         * src/fn-math.c (gnumeric_bin2dec): Moved to fn-eng
3409         * src/func.c (functions_init): Added eng_functions.
3411         * src/fn-stat.c: Cleaned functions help.
3413         * src/Makefile.am: Added fn-eng.c
3415 1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3417         * src/clipboard.c (sheet_paste_selection): New routine.  Abstracts
3418         the paste operation.
3419         (clipboard_paste_region): Now it uses a clipboard with the active
3420         X selection instead of defaulting to "request clipboard from X"
3421         (this is only for inter-workbook copy-paste).
3423         * src/sheet.c (find_workbook_with_clipboard): Tries to find a
3424         workbook with clipboard information.  Probably the clipboard
3425         should be global to all Gnumeric.
3427         * src/render-ascii.c (cell_region_render_ascii): Free the
3428         information after we have used it, not before.
3430         * src/expr.c (eval_expr): Handle new-born recursive references.
3432 1999-03-11  Michael Meeks <michael@imaginator.com>
3434         * src/fn-math.c (gnumeric_power): Implemented.
3436         * src/fn-stat.c (gnumeric_poisson, gnumeric_gammaln):
3437         Implemented.
3439 1999-03-11  Michael Meeks <michael@imaginator.com>
3441         * src/fn-stat.c (gnumeric_expondist, gnumeric_geomean):
3442         Implemented.
3444 1999-03-10  Vladimir Vuksan <vuksan@veus.hr>
3446         * src/fn-financial.c: New file.
3448         (gnumeric_effect, gnumeric_sln, gnumeric_syd): New functions.
3450         * src/func.c (functions_init): Added financial functions.
3452         * src/func.h: Added extern.
3454 1999-03-10  Michael Meeks <michael@imaginator.com>
3456         * src/fn-stat.c: Created.
3457         (gnumeric_stdev, gnumeric_stdevp, gnumeric_var, gnumeric_varp): Created
3459         * src/func.c (functions_init): added stat_functions
3461         * src/func.h: Added extern stat_functions.
3463 1999-03-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3465         * src/fn-misc.c (gnumeric_clean): Add check here: only loop until
3466         the end of the string.
3468         * src/sheet.c (sheet_cell_foreach_range): Revert the arguments if
3469         they are in a different order.
3471 1999-03-08  Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
3473         * plugins: new text plugin.
3475         Add new plugin TXT for simple text inport/export
3476         tab separated text. multiple sheet in a workbook is separated by
3477         '\f' character.
3478         If first line of each sheet is not include tab, then that line is
3479         interpreted as sheet name.
3481         * src/gnumeric-sheet.c: Add new mean for hard-coded keyboard short
3482         cut CTRL-Return.  Because ItemEdit does not support XIM, I must
3483         click the entry whenever I want to input janapese character.  If
3484         user does not edit the cell, this key combination switchs a
3485         keyboard focus to entry .
3487         * Replace gdk_font_load() with gdk_fontset_load()
3488         src/style.c gdk_font_load() makes impossible to show international
3489         string.
3491         * src/clipboard.h 'copy by value' was not possible because of
3492         miss-definition of PASTE_* enume.
3494         * src/file.c: gnumeric_notice was called with wrong arguments.
3496 1999-03-07  Michael Meeks  <michael@imaginator.com>
3498         * src/cell.c (cell_set_format_from_style): Removed sluggish
3499         re-drawing code: unnecessary.
3501 1999-03-05  Michael Meeks  <michael@imaginator.com>
3503         * src/cell.c (cell_set_color_from_style): Implemented.
3505 1999-03-03  Michael Meeks  <michael@imaginator.com>
3507         * plugins/excel/ms-formula.c (parse_data_new): Trap null pointers
3508         on entry, ( coming from biff_get_text ).
3509         (ms_excel_parse_formula): Removed nasty static buffers.
3511 1999-02-23  Bruno Unna  <bruno@iac.com.mx>
3513         * src/dialog-cell-format.c (create_background_radio): Activated
3514         the patterned background control (although in my machine the
3515         boxes are all black) and added a radio button to let the
3516         user do nothing with backgrounds (analogous to the one in
3517         foreground section).
3519         * src/dialog-cell-format.c (apply_coloring_format): Now this
3520         functions takes into account the changes in create_background_radio,
3521         that is, if the user decides not to change the background,
3522         the background will not be changed. Also, assigned default
3523         values to some variables, just to avoid an annoying warning.
3525         * src/dialog-cell-format.c (create_coloring_page): If there
3526         are different backgrounds in the range, select by default
3527         the "no change" radio button for the background.
3529 1999-02-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3531         * src/cell.c (cell_draw): If the cell has a render_color (provided
3532         by the format specification), use that for the foreground.
3534 1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3536         * src/file.c (workbook_save_as): Append the extension of the
3537         default format if no colon is specified
3539 1999-02-22  Tim Mooney  <mooney@dogbert.cc.ndsu.nodak.edu>
3541         * plugins/guile/plugin.c (func_scm_apply): Initialization of
3542         structure is done in the function body, rather thatn when it is
3543         declared.  This is necessary because struct initializer must be
3544         determinable at compile time, and those aren't.
3546         * src/expr.c (eval_expr): Add at least one statement to the
3547         default: handler in the case.
3549         * src/fn-math.c: provide a break for default handlers.
3550         * src/item-edit.c (entry_event): ditto
3551         * src/sheet-autofill.c (fill_item_destroy): ditto.
3553         * src/dialog-cell-format.c (create_number_format_page): Initialize
3554         in the body, like above.
3556 1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3558         * plugins/guile/plugin.c (func_scm_apply): Initialize the
3559         cell_ref.sheet to NULL.
3561 1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3563         * src/sheet.c (sheet_cell_remove_internal): Queue recalcs for
3564         cells that depend on cells that are being destroyed.
3565         (clear_cell_content): Added a call to workbook_recalc
3566         (sheet_clear_region_content): same.
3568 1999-02-21  Michael Meeks <michael@imaginator.com>
3570         * plugins/excel/ms-formula.c FORMULA_PTG_EXP: Fixed several bugs.
3572         * plugins/excel/ms-excel.c (ms_excel_set_cell_font, biff_font_data_get_style_font):
3573         Body of the former moved to the latter, loop invariant code removed for
3574         big speedup.
3575         (ms_excel_set_cell_xf): Burdern of border color stuff moved to
3576         (ms_excel_palette_get): New routine to cache and create
3577         StyleColor records as needed.
3578         (ms_excel_sheet_insert): Fixed so no NULL pointers can escape
3579         into cell_set_text.
3580         (ms_excelReadWorkbook): Removed BIFF Usage chart, its slow.
3581         (biff_nasty_font_check_function): Sorts out font sillyness.
3582         (biff_xf_data_new): Added cached style_format pointer
3583         (biff_xf_data_destroy): unref style_format if allocated.
3585         * src/cell.c (cell_set_format_from_style): Implemented.
3587 1999-02-19  Raja R Harinath  <harinath@cs.umn.edu>
3589         * doc/C/Makefile.am (install-data-local): Use $(mkinstalldirs) not
3590         $(topsrcdir)/mkinstalldirs.
3592         * src/Makefile.am: Use $(GNOME_CONFIG) instead of `gnome-config'
3593         to run the gnome-config script.
3594         (BUILT_SOURCES): Swap with GNUMERIC_CORBA_GENERATED to be
3595         conceptually clean.
3597 1999-02-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3599         * src/fn-misc.c (gnumeric_min): Implement ISERROR.
3601         * src/clipboard.c (paste_cell): Do not render the value if the
3602         result is an error.
3604         * src/cell.c (cell_copy): Do not copy the value of a cell when the
3605         value is NULL (due to the cell having an error).
3607         * src/expr.c (eval_expr): Evaluate binary operations in parts to
3608         keep the correct error message on an operation if possible.
3609         (eval_expr): Propagate errors.
3611         * src/item-edit.c (item_edit_draw): Sync the before-cursor and
3612         after-cursor Y-display text cordinate.
3614         * src/expr.c (eval_funcall): Add type checking for the simple
3615         functions.
3617         * doc/C/Makefile.am (install-data-local): use topsrcdir here (fix
3618         from Ian Campbell <ijc25@cam.ac.uk>
3620         * src/fn-math.c (gnumeric_not): Implement NOT.
3622         * src/number-match.c (format_create_regexp): Allow upper case
3623         format codes.
3625         * src/format.c: ditto.
3627 1999-02-18  Michael Meeks <michael@imaginator.com>
3629         * plugins/excel/ms-formula.c (ms_excel_parse_formula):
3630         case FORMULA_PTG_ATTR: Added 'Optimised SUM' functionality,
3631         Generaly made output less verbose.
3633         * plugins/excel/ms-excel.c: BIFF_DBCELL, ignore it, its
3634         not interesting.
3635         (ms_excel_set_cell_xf, biff_format_data_lookup,
3636         biff_format_data_destroy, ms_excel_workbook_new,
3637         ms_excel_workbook_destroy): Implemented formatting.
3639 1999-02-17  Michael Meeks <michael@imaginator.com>
3641         * plugins/excel/ms-excel.c (biff_get_rk): moved RK number
3642         extraction into function.
3643         Added MULRK support: the lost numbers arrive !
3645 1999-02-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3647         * src/fn-math.c (gnumeric_trunc): Implement TRUNC.
3649         * src/func.c (function_iterate_argument_values): Do not evaluate a
3650         subexpression if the previous expression failed due to an error.
3651         Basically: add a check to the eval return value.
3653         I took this oportunity to check all the source and this was the
3654         only buggy spot.
3656 1999-02-16  Michael Meeks  <sca20@cam.ac.uk>
3658         * plugins/excel/ms-excel.c: Fixed many bugs in my
3659         understanding of hash table functions.
3660         Added rudimentary NAME stuff.
3661         made error lookup global.
3662         Fixed up Header / Footer functionality.
3663         (ms_excel_sheet_new, ms_excel_sheet_insert,
3664         ms_excel_read_sheet): Added 'blank' field to excel_sheets,
3666         * plugins/excel/ms-formula.c: Added puzzling
3667         PTG_NAME stuff, this is really wierd.
3668         PTG_ERR added.
3670 1999-02-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3672         * src/workbook.c (change_auto_expr_menu): OOps I got too excited
3673         here using my helper routine: Now we do not destroy this helpful
3674         menu.
3676         * src/widget-editable-label.c (editable_label_set_text): Bug fix:
3677         sometimes this code is invoked with its argument being el->text.
3679 1999-02-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3681         * src/workbook.c (workbook_new): Make a local copy of the toolbar,
3682         as we use this to update the radio buttons.
3683         (workbook_do_destroy): Free the toolbar.
3684         (workbook_feedback_set): Use the per-workbook toolbar here.
3686 1999-02-14  Michael Meeks  <sca20@cam.ac.uk>
3688         * plugins/excel/ms-formula.c: Inserted a whole scad
3689         of math functions into translation table.
3690         (parse_list_to_equation): g_strdupped return values.
3691         FORMULA_PTG_STR: Updated old and broken code.
3692         * src/about.c (dialog_about): Added Sean.
3694 1999-02-13  Bruno Unna  <bruno@iac.com.mx>
3696         * src/dialog-cell-format.c (create_foreground_radio): Added a
3697         radio button to let the users 'no change' the text colour, useful
3698         when there is a range selected with differently colored cells
3699         and it is desired to change the background of them without
3700         touching the foreground.
3702         * src/dialog-cell-format.c (create_coloring_page): When there
3703         are different foreground colours in the selected cells, the
3704         default selection is 'no change'.
3706         * src/dialog-cell-format.c (apply_coloring_format): If there
3707         is no need to make changes to the foreground color of the
3708         cells, avoid doing them.
3710 1999-02-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3712         * src/item-cursor.c (item_cursor_target_region_ok): Warn the user
3713         if he overwrites something accidentally by dropping cells in the
3714         target location.
3716         * src/sheet.c (sheet_is_region_empty): New function.
3718 1999-02-12  Michael Meeks  <sca20@cam.ac.uk>
3720         * plugins/excel/ms-excel.c (biff_get_global_string):
3721         Drasticly simplified, accelerated and in-lined out.
3722         (biff_get_text): Fixed using unicode spec, various
3723         updates to calls to it, fixing offsets.
3724         Removed lots of debug output to speedup
3726 1999-02-10  Sean Atkinson  <sca20@cam.ac.uk>
3728         * src/fn-math.c (callback_function_sum): enhanced warning for
3729         unknown value->type.
3731 1999-02-12  Frederic Devernay  <devernay@istar.fr>
3733         * plugins/perl/perl.c: Handle the #define dirty in perl-thread.
3735 1999-02-12  Bruno Unna  <bruno@iac.com.mx>
3737         * src/cell.c (cell_draw): Now the function draws the cell
3738         using the cell background color setting. Although it does
3739         the job, I guess there must be a better way to do it. Thanks
3740         to Michael for the hint.
3742         * src/item-grid.c (item_grid_draw_cell): Commented out the lines
3743         involved with patterns display in the cell, for that code is
3744         not ready yet.
3746         * src/dialog-cell-format.c (create_coloring_page): Reactivated
3747         the background selection panel of the coloring page.
3749         * src/dialog-cell-format.c (create_background_radio): Commented out
3750         the addition of the pattern selection for a cell.
3752 1999-02-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3754         * src/workbook.c (workbook_detach_sheet): Be less forgiving as to
3755         removing sheets with pending references.
3757         (sheet_action_delete_sheet): Add a test for
3758         dependencies when removing a sheet
3759         (workbook_can_detach_sheet): New function.
3761         * src/cell.c (cell_relocate): When relocating a cell with a
3762         formula, always mark it as changed.  We were doing that before
3763         only for the case where the location had changed, but we use
3764         cell_relocate in other cases as well.
3766         * src/fn-string.c (gnumeric_lower, gnumeric_upper): These
3767         functions were wrong.  They were never incrementing the pointer
3768         and they were releasing the wrong pointer.
3770         * src/clipboard.c (paste_cell): When pasting a cell, mark the
3771         contents as modified.
3773         * src/file.c (file_saver_is_default_format): Make sure the saver
3774         is always set.
3776 1999-02-10  Michael Meeks  <michael@imaginator.com>
3778         * plugins/excel/ms-excel.c (ms_excel_read_cell): BOOLERR booleans
3779         hard-translated to 1, 0: not a good solution to problems with TRUE.
3780         * src/fn-string.c (gnumeric_upper, gnumeric_lower): Add increment
3782 1999-02-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3784         * src/parser.y: Apparently string concatenation operator in Excel
3785         has the lower priority.
3787         * src/workbook.c (workbook_detach_sheet): New function used to
3788         detach a sheet from a workbook.
3789         (sheet_menu_label_run): New routine.  Invoked on button-3 on the
3790         sheet label.
3792         * src/gnumeric-util.c (gnumeric_auto_kill_popup_menu_on_hide): New
3793         routine to deallocate menus when they go to unshown state
3795 1999-02-09  Michael Meeks  <michael@imaginator.com>
3797         * plugins/excel/ms-excel.c (ms_excel_sheet_new,
3798         ms_excel_workbook_attach, biff_boundsheet_data_new):
3799         Major sheet allocation re-organisation, hash boundsheet data.
3800         (ms_excel_sheet_set_version, ms_excel_sheet_set_index,
3801         ms_excel_workbook_get_sheet): re-hashed API
3802         * plugins/excel/ms-formula.c: PTG_MISSARG implemented
3804 1999-02-08  Sean Atkinson  <sca20@cam.ac.uk>
3806         * plugins/excel/ms-excel-biff.h, ms-excel.c:
3807         added BIFF_EXTERNCOUNT
3808         * plugins/excel/ms-excel.c (ms_excel_read_sheet):
3809         stubbed BIFF_EXTERNSHEET, stubbed SUPBOOK
3810         (biff_get_externsheet_name): implemented inter-sheet references
3811         * plugins/excel/ms-formula.ch: added FORMULA_PTG_CONCAT
3812         (ms_excel_parse_formula): implemented FORMULA_PTG_REF_3D
3814 1999-02-07  Michael Meeks  <michael@imaginator.com>
3816         * plugins/excel/ms-formula.c (ms_excel_parse_formula):
3817         FORMULA_PTG_ATTR stubs: can ignore most of AttrSpace.
3819 1999-02-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3821         * src/cell.c (cell_draw): Make the clip region one pixel bigger to
3822         account for the offset.
3823         (cell_draw): Do not add one to text_base.
3825         * src/item-edit.c (item_edit_draw): Take into account the margin_b.
3827 1999-02-07  Michael Meeks  <michael@imaginator.com>
3829         * plugins/excel/ms-formula.c: Fixed memory leaks
3830         * plugins/excel/ms-excel.c: Fixed several memory leaks
3832 1999-02-07  Sean Atkinson  <sca20@cam.ac.uk>
3834         * plugins/excel/ms-formula.ch: added FORMULA_PTG_NUM
3836 1999-02-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3838         * src/cell.c (cell_set_text_simple): Allow a single "=" to
3839         represent a string.
3841 1999-02-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3843         * src/gnumeric-util.c (gnumeric_notice): Now we take a Workbook
3844         argument to bind the dialog boxes properly to the main window.  We
3845         use gnome_messagebox now to report errors.  We now take a type
3846         parameter for the message box type.
3848         * plugins/ff-csv/csv-io.c: Use gnumeric_error
3850         * src/workbook.c (wb_input_finished): Call sheet_set_current_value
3851         instead of the cancel pending input routine.
3853         * Moved src/csv-io.[ch] to the plugins/ff-csv directory and
3854         converted them to
3856 1999-02-06  Vincent Renardias <vincent@ldsol.com>
3858         * src/csv-io.h src/csv-io.c: Added code to load
3859         csv files.
3861 1999-02-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3863         * src/file.c (fill_save_menu): Creates an option menu with the
3864         file format to save on.
3865         (workbook_save_as): Use the saver selected by the user.
3866         (saver_activate): Keep track of the current file save format, set
3867         as default.
3868         gnumeric_file_savers, gnumeric_file_openers: made static.
3870         * src/sheet.c (sheet_destroy_styles): Release the proper style, I
3871         was releasing a different structure.
3873 1999-02-06  Michael Meeks  <michael@imaginator.com>
3875         * plugins/excel/ms-formula.c: Cut out lots of debug in working
3876         cases
3878         * plugins/excel/ms-excel.c: Implemented a hash table for fast
3879         font lookups, removed and simplified dead font code.
3881         * plugins/excel/ms-excel.c (ms_excel_set_font): Bold if boldness
3882         greater or equal to threshold, not just equal.
3884         * plugins/excel/ms-excel.c (ms_excel_read_cell): Added support
3885         for BIFF_STRING records, and re-organised switch statement. Added
3886         BIFF_BOOLERR support.
3888 1999-02-06  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>
3890         * gnumeric.desktop: Added Korean translations.
3892 1999-02-04  Michael Meeks  <michael@imaginator.com>
3894         * plugins/excel/ms-excel.ch: Major overhaul of how XF styles
3895         are looked up, sparation of Cell / style XF records. Hash
3896         table implemented for lage speedup and code simplification.
3898 1999-02-04  Michael Meeks  <michael@imaginator.com>
3900         * plugins/excel/ms-biff.h: Added a biff_getdouble function for
3901         G_BIG_ENDIAN machines, since I don't have one... [begs forgiveness]
3903 1999-02-03  Sean Atkinson  <sca20@cam.ac.uk>
3905         * plugins/excel/ms-formula.c (ms_excel_parse_formula):
3906         FORMULA_PTG_INT and FORMULA_PTG_BOOL added
3908         * plugins/excel/ms-formula.c:
3909         Implemented remaining binary operators and unary operators +,-,%
3910         interpolated operator precedences.
3911         formula_func_data[] : added AND, OR, V/H LOOKUP functions
3913 1999-02-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3915         * src/workbook.c (workbook_configure_minimized_pixmap): Provide an
3916         icon.  Note that I could not get this to work on fvwm2 though.  I
3917         will wait for other people to try it.
3919 1999-02-01  Jaka Mocnik  <jaka.mocnik@kiss.uni-lj.si>
3921         * src/widget-editable-label.c (el_realize): new function.
3922         set the font for text_item here to match the widget's style.
3923         (editable_label_set_text): don't bother to set the font when
3924         creating the text_item, as the style is not set properly yet.
3926 1999-01-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3928         * src/fn-misc.c: Added documentation for the functions in this file.
3930 1999-01-26  Bruno Unna  <bruno@iac.com.mx>
3932         * src/dialog-cell-format.c (create_coloring_page): Now, the
3933         method to find out whether a cell has been colored or not
3934         is to compare the RGB values to zero.
3935         Commented out the attachment of background_radio_list
3936         because the functionality is not ready yet.
3938         * src/dialog-cell-format.c (apply_coloring_format): Added support
3939         for background solid coloring. Howver, changes to the style of
3940         the cells in this regard have no effect in the display. The reason
3941         for this is unknown to me as of now.
3943 1999-01-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3945         * src/sheet-autofill.c (sheet_autofill_dir): Add a call to
3946         sheet_cell_remove before calling cell_destroy.
3948 1999-01-23  Bruno Unna  <bruno@iac.com.mx>
3950         * src/dialog-cell-format.c: Reactivated the 'Coloring' page
3951         in struct array cell_format_pages.
3953         * src/dialog-cell-format.c (create_coloring_page): Lots of
3954         changes, practically a full rewrite. One problem is that cells
3955         are thrown into this world with the flag STYLE_FORE_COLOR of
3956         their style set, which causes a lack of synchronization with
3957         what is expressed in the global variable foreground_radio_list.
3959         * src/dialog-cell-format.c (apply_coloring_format): By the moment
3960         being, deactivated the call of function cell_set_pattern, along
3961         with the STYLE_PATTERN bit flag of style->valid_flags. I will
3962         concentrate in fg/bg coloring of the cell.
3964 1999-01-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3966         * src/widget-editable-label.c   (el_init): Set the scroll region
3967         to something very big.  This fixes the label-sliding problem.
3968         Thanks to Federico for his quick debugging eye.
3970         (el_button_press_event): WOW.  I am amazed.  I now gtk grab add
3971         and if I receive a widget->window different than the canvas, I
3972         drop the grab and stop editing.
3974 1999-01-19  Francisco Bustamante  <pancho@nuclecu.unam.mx>
3976         * src/workbook.c (workbook_delete_event)  Return TRUE when the
3977         workbook should not be destroyed. (i.e. the user presses cancel)
3979 1999-01-19  Jeff Garzik  <jgarzik@pobox.com>
3981         * src/dialog-cell-format.c, src/gnumeric-util.c,
3982           src/sheet-view.c, src/workbook.c:
3983         Renamed deprecated Gtk+ functions.
3985 1999-01-18  Bruno Unna  <bruno@iac.com.mx>
3987         * src/dialog-cell-format.c: Now the terminator element of the
3988         cell_format_pages has three null elements (as stated in the struct
3989         definition), instead of two. Fixed up some comments. Started
3990         to pursue the bug that causes that when adding the "Coloring"
3991         tab the program generates a Gdk-ERROR. Modifications not commited.
3993 1999-01-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
3995         * src/gnumeric-sheet.c (gnumeric_sheet_can_move_cursor): Do not
3996         enable item editing if sheet is not in edit mode.
3998 1999-01-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4000         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Mark sheet
4001         as being edited.
4003 1999-01-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4005         * src/file.c (dialog_query_load_file): Set the window modal.
4006         (workbook_save_as): ditto.
4008 1999-01-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4010         * src/format.c (format_value): Use 0.0########## instead.  Looks saner.
4012 1999-01-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4014         * src/workbook.c (change_auto_expr_menu): Use the event->button
4015         field to get the popup menu to behave correctly.
4016         (workbook_setup_auto_calc): Put the information display inside a
4017         GtkFrame.
4019         * src/item-bar.c (set_cursor): This routine can be invoked before
4020         we are realized.
4022         * src/workbook.c (sheet_label_button_press): We need to do the
4023         page flipping ourselves, as the GtkNotebook wont take events if
4024         they are not for a window it knows about.
4026         * src/widget-editable-label.c (el_button_press_event): Forward
4027         events to parent.
4029         * src/parser.y: New non-terminal "cellref".  Make this
4030         non-terminal include CELLREF and SHEETREF!CELLREF constructions.
4032         * src/expr.c: Changed the whole module according to the dropping
4033         of VALUE_CELLREF.
4035         * src/expr.h: VALUE_CELLREF did not make much sense.  Better add
4036         to the ExprTree union a CellRef field specifically for OPER_VAR
4037         nodes.
4039 1999-01-10  Michael Meeks <michael@imaginator.com>
4041         * plugins/excel/ms-excel.c (ms_excelReadWorkbook): Only believe the
4042         first BOF with regard to BIFF version number, other BOFs seem to lie.
4044 1999-01-10  Nick Lamb <njl98r@ecs.soton.ac.uk>
4046         * plugins/excel/ms-excel.h: Added global string table to EXCEL_WORKBOOK
4048         * plugins/excel/ms-excel.c (ms_excel_workbook_new): Setup new fields,
4049         (ms_excel_read_cell): case BIFF_STRING_REF,
4050         (biff_get_global_string): Retrieves a global string from the EXCEL_WORKBOOK table.
4051         (ms_excel_read_cell): case BIFF_STRING_REF,
4052         (ms_excelReadWorkbook): case BIFF_STRINGS reads the global table.
4054 1999-01-10  Michael Meeks <michael@imaginator.com>
4056         * plugins/excel/ms-excel.c: Rehash of border code to use neater centralised
4057         enumerations / types.
4058         (get_style_color_from_idx): Implemented.
4060         * src/style.h: Major expansion of 'StyleBorderType', massive simplification
4061         of StyleBorder to use directional [ StyleSide ] arrays instead of lots of
4062         unique member names.
4064         * src/style.c (border_equal, border_hash, style_border_new,
4065         style_border_new_plain): Major overhaul and shrink to fit new structure.
4067         * src/xml-io.c: Updated BorderTypes array to give textual names to
4068         the new border types, also created an array of text names for StyleSides.
4070         * src/xml-io.c (readXmlStyleBorder,writeXmlStyleBorder): Use new
4071         arrays and struct.
4073         * src/cell.c, src/cell.h: Added cell_set_border.
4075 1999-01-10  Thomas Meeks  <meekte95@christs-hospital.org.uk>
4077         * plugins/excel/ms-excel.c (ms_excel_read_cell):
4078         added header and footer Biff code.
4079         * plugins/excel/ms-excel-biff.h: the defines.
4081 1999-01-10  Changwoo Ryu  <cwryu@adam.kaist.ac.kr>
4083         * src/workbook.c (cb_sheet_check_dirty): Use g_strdup_printf
4084         instead of g_strconcat.  More easy to translate the string.
4086 1999-01-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4088         * src/workbook.c (wb_input_finished): Use
4089         sheet_accept_pending_input instead of sheet_set_current_value.
4090         (workbook_setup_auto_calc): Stick the information display inside
4091         the status bar.
4093         * src/eval.c (add_value_deps): Reorganization.  Hanlde
4094         VALUE_CELLREF here and make OPER_VAR and OPER_CONSTANT call
4095         add_value_deps.
4097         * src/expr.c (do_expr_tree_relocate, expr_tree_relocate): New
4098         routine that returns an ExprTree relocated.
4099         (value_copy_to): Handle the VALUE_CELLREF type.
4101         * src/expr.h: define VALUE_CELLREF
4103         * src/parser.y (yylex): Type fix.
4104         When creating values of type VALUE_CELLREF, set this value.
4106 1999-01-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4108         * src/sheet.c (sheet_move_column): Update to new cell_relocate
4109         semantics.
4110         (sheet_shift_row): ditto.
4111         (sheet_insert_row): ditto.
4112         (sheet_delete_row): ditto.
4113         (sheet_shift_col): ditto.
4115         * src/clipboard.c: Update to new cell_relocate semantics.
4116         Remove the old GTK compatibility code.
4118         * src/cell.c (cell_relocate): We do not need to reference this
4119         formula.
4120         This routine now takes delta-x and delta-y values for the
4121         relocation, instead of absolute cordinates.  To implement the
4122         proper semantics of cell movement that other spreadsheets implement
4124 1999-01-09  Federico Mena Quintero  <federico@nuclecu.unam.mx>
4126         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Return the
4127         result of gtk_widget_event() if we get to the switch's default
4128         case.
4129         (gnumeric_sheet_key): Return FALSE in the default case, since we
4130         did nothing there.
4132         * src/workbook.c (open_cmd): If the file-open dialog was
4133         cancelled, it will return NULL.  Take this into account.
4135 1999-01-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4137         * src/workbook.c (workbook_setup_status_area): We do not use the
4138         progress bar feature currently.
4140 1999-01-07  Nat Friedman  <nat@nat.org>
4142         * src/workbook.c: Added hints to the rest of the custom menu items.
4144 1999-01-07  Nat Friedman  <nat@nat.org>
4146         * src/workbook.c (workbook_new): Install the menu hints.
4147         (workbook_setup_status_area): Create the GnomeAppBar.
4149         Added hints to most of the custom menu items.
4151         * src/sheet.h: Added the appbar field to the Workbook structure.
4153 1999-01-07  Nat Friedman  <nat@nat.org>
4155         * src/workbook.c: Use GNOMEUIINFO_MENU_ABOUT_ITEM and the new
4156         GNOMEUIINFO_MENU trees.
4158 1999-01-07  Nat Friedman  <nat@nat.org>
4160         * src/workbook.c: Pass the menu item description to
4161         GNOMEUIINFO_MENU_NEW_ITEM.
4163 1999-01-06  Nat Friedman  <nat@nat.org>
4165         * src/workbook.c: Use the standard GNOMEUIINFO macros from
4166         gnome-app-helper.h.
4168 1999-01-06  Nat Friedman  <nat@nat.org>
4170         * src/workbook.c: Use the gnome-uidefs.h macros for the
4171         accelerators.
4173 1999-01-04  Havoc Pennington  <hp@pobox.com>
4175         * src/fn-date.c (gnumeric_date): Allocate the GDate on the stack,
4176         saves some small amount of time. Check user-provided
4177         month/day/year for validity before using it.
4178         (gnumeric_today): Allocate GDate on the stack.
4179         (gnumeric_now): Ditto.
4181 1999-01-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4183         * src/sheet.c (sheet_rename): New routine.
4185         * src/workbook.c (workbook_attach_sheet): Use a EditableLabel for
4186         the notebook tab.
4187         (workbook_rename_sheet): New routine.
4189         * src/widget-editable-label.c:  New widget.  This is a label that
4190         can be edited if you double click on it.  This uses the same trick
4191         of the gnome-icon-item to provide the editing facilities.
4193 1999-01-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4195         * src/workbook.c (workbook_setup_status_area): Use the style font,
4196         not "fixed".
4197         (workbook_setup_status_area): One hack down.  Use GTK_ANCHOR_NW to
4198         achieve the same effect I had with my previous hack.
4200         * src/dialog-cell-comment.c (dialog_cell_comment): New file.
4201         Implements the cell comment dialog box.
4203         * src/cell.c (cell_relocate): Only call cell_comment_reposition is
4204         there is a cell comment bound to this cell.
4206         * src/format.c (format_value): No format means "General" format as
4207         well.
4208         If the value has decimal numbers use "0.00##########" for the
4209         formatting instead of 0.00.
4211 1998-01-03  Jeff Garzik  <jgarzik@pobox.com>
4213         * src/number-match.c, src/plugin-manager.c, src/sheet.c:
4214         Warning fixes.
4216 1999-01-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4218         * src/expr.c (do_expr_decode_tree): Add termination NULL to the OPER_NEG
4219         operation.
4221         * (eval_expr): Add support for non-local cells here.  I am
4222         impressed how simple this was.
4224         * src/parser.y: Add rules for cell references outside of the
4225         current sheet.
4227         * src/main.c: New option --debug.  Turns on the zoom in/zoom out
4228         buttons on the main sheet.
4230         * src/workbook.c: Include the zoom in/zoom out buttons conditionally.
4232         * src/xml-io.c (xmlGetCoordinates): Load using double numbers the
4233         information.
4235         * src/parser.y (yylex): Allow strings to be specified with "'"
4236         characters.
4238 1999-01-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4240         * src/item-grid.c (item_grid_button_1): When starting a selection
4241         of cells during a formula edit, insert the currently clicked cell
4242         name.
4244 1998-12-30  Jeff Garzik  <jgarzik@pobox.com>
4246         * plugins/perl/perl.c, src/cell.c, src/expr.c, src/plugin.c,
4247           src/sheet-autofill.c, src/sheet.c, src/workbook.c:
4248         s/g_copy_strings/g_strconcat/
4250 1998-12-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4252         * plugins/excel/boot.c: New file, this holds the probing and load
4253         wrapper code for Gnumeric to use as well as the initial format
4254         registering code.
4256         * src/xml-io.c (xml_probe): New routine, used to probe if a file
4257         is a Gnumeric-xml file.
4259         * src/file.c (file_format_register_open,
4260         file_format_unregister_open, file_format_register_save,
4261         file_format_unregister_save): New routines used to register and
4262         unregister file formats in Gnumeric.
4264         * src/main.c (main): Boot xml and excel formats, since they now
4265         need to register themselves with the file.c code
4267         * src/cell.h: cell->entered_text is back, now only used for typo
4268         correction.  Maybe I will use it for saving.
4270         * src/fn-string.c (gnumeric_right): Use value_str.
4271         (gnumeric_char): same
4272         (gnumeric_left): same
4274         * src/expr.c (value_str): New function.
4276         * src/xml-io.c (writeXmlCell): Use cell_get_content instead of
4277         cell_get_text.
4279         * src/cell.c (cell_get_content): New function.
4281 1998-12-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4283         * src/workbook.c: fix bug introduced yesterday.
4285 1998-12-17  Tuomas Kuosmanen  <tigert@fun112.koivukyla.hoas.fi>
4287         * gnumeric.desktop: Added gnumeric program icon
4288         * Makefile.am: added the stuff to install the icon -
4289         could someone check that I did it correctly?
4290         * gnome-gnumeric.png: the icon itself
4292 1998-12-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4294         * src/workbook.c: Use GNOME stock icons for the stuff that hsa
4295         icons on Gnome Stock.
4297         * gnumeric.keys.in: New file that defines the mime-type for Gnumeric
4299 1998-12-16  Federico Mena Quintero  <federico@nuclecu.unam.mx>
4301         * src/workbook.c (workbook_setup_status_area): Do not set_usize()
4302         on the info item.
4304         * src/sheet-view.c (new_canvas_bar): Set the width or height to -1
4305         in set_usize().
4307         * src/gnumeric-sheet.c (gnumeric_sheet_new): Do not set_usize() on
4308         the sheet.
4310         * src/item-bar.c: Updated for the new canvas item API.
4311         * src/item-cursor.c: Likewise.
4312         * src/item-edit.c: Likewise.
4313         * src/item-grid.c: Likewise.
4315 1998-12-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4317         * src/workbook.c (workbook_new): Use the new gnomeapp api.
4319         * src/gnumeric-sheet.c: Use the new canvas.
4321 1998-12-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
4323         * src/gnumeric-sheet.c (gnumeric_sheet_new): Use
4324         gtk_widget_set_usize() instead of gnome_canvas_set_size().
4325         * src/pattern-selector.c (pattern_selector_new): Likewise.
4326         * src/sheet-view.c (new_canvas_bar): Likewise.
4328 1998-12-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4330         * src/fn-date.c (gnumeric_year_month_day, gnumeric_now,
4331         gnumeric_today,gnumeric_date):
4332         * src/workbook.c (insert_current_date_cmd):
4333         * src/number-match.c (compute_value): Changed to use the glib
4334         GDate type instead of the lib_date functions. Fixed off by-one
4335         error for some date functions (e.g. =today ()) was one day to
4336         early).
4338         * src/utils.c, src/utils.h (g_date_serilal, g_date_serial_new):
4339         New functions for handling the gnumeric serial of a date.
4341 1998-12-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4343         * src/item-cursor.c (item_cursor_set_bounds_visibly): Update the
4344         cursor position as well.
4346 1998-12-10  Michael Meeks    <michael@imaginator.com>
4348         * plugins/excel/ms-excel.c (ms_excel_read_cell): Fixed serious bug
4349         in IEE floating point number reading from RK records.
4351         * plugins/excel/ms-formula.c (ms_excel_parse_formula): Implemented
4352         string expressions in formulae, MS stores numbers like this !
4354 1998-12-10  Owen Taylor  <otaylor@redhat.com>
4356         * src/workbook.c (filenames_dropped): Make toplevel
4357         windows drop targets for files.
4359 1998-12-09  Michael Meeks    <michael@imaginator.com>
4361         * plugins/excel/ms-ole.c: Indented correctly, implemented writes
4362         of all file lengths.
4364 1998-12-08  Jaka Mocnik  <jaka.mocnik@kiss.uni-lj.si>
4366         * src/dialog-paste-special.c (dialog_paste_special): changed
4367         gnome_dialog_run_modal() to gtk_window_set_modal() and
4368         gnome_dialog_run().
4370 1998-12-06  Michael Meeks    <michael@imaginator.com>
4372         * plugins/excel/ms-ole.c: Much trivial bug fixing, API fixups,
4373         testing and stabilizing.
4375 1998-12-05  Michael Meeks    <michael@imaginator.com>
4377         * plugins/excel/ms-ole.c: Major work on creation of readable
4378         macros for accessing obscure fields, removing magic numbers from
4379         main code.
4380         (ms_ole_create): Created to create new OLE files.
4382         * plugins/excel/ms-excel-biff.h: Update comments, and re-arrange.
4384         * plugins/excel/ms-biff.h: Commenting fixes
4386 1998-12-04  Federico Mena Quintero  <federico@nuclecu.unam.mx>
4388         * configure.in (ALL_LINGUAS): Added Japanese translation courtesy
4389         of Mitsuru Oka <moka@globe.to>.  Also updated the .desktop file.
4391 1998-12-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4393         * src/gnumeric-sheet.c (gnumeric_sheet_set_top_row,
4394         gnumeric_sheet_set_top_col): New functions to set the sheet top
4395         column and row respectively.
4397         (gnumeric_sheet_bar_set_top_row, gnumeric_sheet_bar_set_top_col):
4398         Renamed from their old names to reflect their actual action.
4400         * src/item-cursor.c (item_cursor_autofill_event): Do not pass
4401         negative numbers to item_grid_find_col and item_grid_find_row.
4403         * src/item-grid.c (item_grid_find_row, item_grid_find_col): Check
4404         for possitive numbers. I think the right fix is to accept negative
4405         numbers and find the column even if the number is negative instead
4406         of this ugly restriction.
4408 1998-11-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4410         * src/sheet.c (cellref_name): Add more space.
4412 1998-12-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
4414         * src/Makefile.am: make Gnumeric-impl.c dependend on Gnumeric.h to
4415         make it compile the idl-file before compiling Gnumeric-impl.c
4417 1998-11-28  Michael Meeks    <mejm2@cam.ac.uk>
4419         * plugins/excel/ms-formula.c(ms_excel_parse_formula): Fixed serious
4420         memory leaks on return values from cellref_name
4422         * plugins/excel/ms-formula.c(getRefV7): Now sets CellRef->sheet properly
4423         (getRefV8): same.
4425         * plugins/excel/ms-ole.c: Several minor changes, moving separate
4426         structures back into the raw datastream with macros.
4428 1998-11-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4430         * src/gnumeric-util.c (gnumeric_notice): Do not use
4431         gnome_dialog_run_modal.
4433         * src/dialog-goto-cell.c (dialog_goto_cell): Do not use
4434         gnome_dialog_run_modal
4436         * src/sheet.c (sheet_mark_clean): New routine to mark a sheet as
4437         not modified.
4439         * src/workbook.c (workbook_mark_clean): New routine to mark a
4440         workbook as not modified.
4442 1998-11-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4444         * src/sheet-autofill.c (autofill_cell): Simplify by using
4445         cell_set_formula_tree
4447         * src/expr.c (expr_parse_string): Take a sheet argument
4448         (expr_decode_tree): Same
4450         * sheet.c (cellref_name): Now takes a sheet argument and decodes the
4451         cellref depending on the sheet.
4453         * cell.c (CellRef): Now they include the sheet location.
4455 1998-11-28  Michael Meeks    <mejm2@cam.ac.uk>
4457         * plugins/excel/ms-ole.c, plugins/excel/ms-ole.h: Total re-write
4458         of internal interfaces, code streamlined, '?' operators expunged.
4460 1998-11-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4462         * src/item-grid.c (item_grid_realize): Oops.  This was not a bug.
4463         gc was actually initialized as being item_grid->grid_gc, it was
4464         just not obvious.
4466         * src/main.c (gnumeric_main): Fix the prototype.
4468         * src/dialog-goto-cell.c (dialog_goto_cell): Revert const from gtk-clist.
4470         * src/dialog-cell-format.c (create_number_format_page): Revert
4471         const from gtk-clist.
4473         * src/dialog-goto-cell.c (dialog_goto_cell): Revert const from gtk-clist.
4475         * src/Gnumeric-impl.c: Empty stubs for now.
4477         * src/Makefile.am (GNUMERIC_CORBA_SOURCES): Add rules for
4478         compiling the CORBA support.
4480         * plugins/python/Makefile.am (LIBTOOL): This one needs xlibtool
4481         instead of our modified libtool.
4483         * plugins/sample/Makefile.am (GNUMERIC_SRC_DIR): Simplified Makefile.am
4485 1998-11-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4487         * src/item-grid.c (item_grid_realize): Removed bogus calls to
4488         invalid gc.
4490 1998-11-24  Federico Mena Quintero  <federico@nuclecu.unam.mx>
4492         * src/item-grid.c (item_grid_unrealize): Unref all the item_grid's GCs.
4494 1998-11-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4496         * src/dialog-goto-cell.c (dialog_goto_cell): Set the policy on the
4497         scrolled window.
4499         * src/sheet.h: formula_cell_list *ONLY* exists in the Workbook,
4500         not on the Sheet.
4502         * src/sheet.c (sheet_cell_formula_link, sheet_cell_formula_unlink):
4503         Keep the formula on the Workbook, not on the Sheet.  Thanks to
4504         Havoc for reporting these bugs.
4506         * src/cell.c (cell_set_formula): Use cell_set_rendered_text to
4507         propery set the error messages.
4508         (cell_get_text): If value is NULL, use the rendered version of the
4509         text instead of re-rendering it.
4511         * src/dialog-cell-format.c (create_number_format_page): Put the
4512         clist inside a scrolled window for the new CList api.
4514         * src/dialog-define-names.c (dialog_define_names): ditto.
4516         * src/dialog-goto-cell.c (dialog_goto_cell): ditto
4518 1998-11-23 Marin Purgar <pmc@iskon.hr>
4520         * src/dialog-cell-format.c: Style general was applied to more
4521         than one cell in various cases.
4523 1998-11-18  Bruno Unna       <bruno@iac.com.mx>
4524         * src/style.c: added the default italic font as helvetica-oblique.
4526         * src/style.h: added declaration for new global variable
4527           gnumeric_default_bold_font
4529         * src/gnumeric-util.c: enhanced the robusteness of the function
4530           font_get_italic_name. But it's not at a 100%, though.
4532         * plugins/excel/ms-excel.c: slight modification to the error
4533           tracking mechanism (font stuff in ms_excel_set_cell_font).
4535 1998-11-15  Michael Meeks    <mejm2@cam.ac.uk>
4537         * plugins/excel/ms-ole.c(ms_ole_directory*): Created new directory
4538         API for ole files, such that the excel dependant stuff is now moved
4539         out of ms-ole.c into ms-excel.c
4541         * plugins/excel/ms-excel.c(find_workbook): Nicer routine using the
4542         directory API to find its file
4544         * plugins/excel/ms-ole.c(ms_ole_stream_open): Renamed from ~_new
4546         * plugins/excel/ms-ole.c: Re-organisation, code clean, many cases
4547         added throughout to make NULL pointers less harmful, and allow
4548         for turning into a library soon.
4550 1998-11-14  Michael Meeks    <michael@imaginator.com>
4552         * plugins/excel/ms-excel.c(ms_excel_set_cell_font): Fixed buffer
4553         overflow bug, and secured sprintf.
4555 1998-11-12  Bruno Unna       <bruno@iac.com.mx>
4557         * plugins/excel/ms-excel.c: added support for fount size.
4559         * plugins/excel/ms-excel.c: included ctype.h.
4561         * plugins/excel/ms-excel.c: initial hacks on font name importing,
4562           from windoze to X.
4564 1998-11-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4566         * src/parser.y:
4568         * src/workbook.c (workbook_new): Use case-insenstive routines when
4569         creating the hash table.
4570         (workbook_sheet_get_free_name): Find an unused name for a sheet.
4571         (workbook_sheet_lookup): Looks up a sheet by name in a Workbook.
4572         (insert_sheet_cmd): New command to insert a sheet into a workbook.
4574         * src/utils.c (gnumeric_strcase_hash, gnumeric_strcase_equal):
4575         Routines used for strings hash tables that are not case
4576         sensitive.
4578 1998-11-12  Morten Welinder <terra@diku.dk>
4580         * test-parser.c: Fix to compile with the new API
4582         * parser.y: Make the code more maintainable.
4584 1998-11-12  Michael Meeks    <michael@imaginator.com>
4586         * plugins/excel/ms-ole.c, plugins/excel/ms-ole.h: Massive changes
4587         renamed many functions to conform to a sensible naming convention.
4588         Cleaned the interface, and structure names.
4590         * plugins/excel/ms-excel-biff.h: Split from ms-biff.h removing all
4591         the excel specifics so that the biff & ole stuff can be turned into
4592         a library sometime.
4594         * src/workbook.c(workbook_read): Updated to new structure names.
4596         * plugins/excel/ms-excel.c: Added list of array formulae, as yet
4597         unused, possibly unnecessary.
4599         * plugins/excel/ms-formula.c: Added support for slightly different
4600         array formula BIFF layout.
4602 1998-11-11  Bruno Unna       <bruno@iac.com.mx>
4604         * src/gnumeric-util.c: Added function font_get_italic_name,
4605         analogous to font_get_bold_name.
4607         * plugins/excel/ms-excel.c: added enhanced support for styles
4608         (bold & italic). Included gnumeric-util.h.
4610 1998-11-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4612         * src/gnumeric-util.c (font_get_italic_name): Missing function.
4614         * src/parser.y: Use '^'.
4616 1998-11-11  Mark Probst  <schani@obiwan.unix.cslab.tuwien.ac.at>
4618         * plugins/guile: Added guile plug-in.
4620 1998-11-11  Michael Meeks    <michael@imaginator.com>
4622         * plugins/excel/ms-biff.h, plugins/excel/ms-excel.c: Removed fatal
4623         bug, and accelerated code by testing for DV in MULBLANK case.
4625         * plugins/excel/ms-excel.c(ms_excel_set_cell_xf): Out by one indexes
4626         causing serious attribute offset grief in fonts.
4628         * Rememberance_Day:
4629         They went with songs to the battle, they were young,
4630         Straight of limb, true of eye, steady and aglow.
4631         They were staunch to the end against odds uncounted,
4632         They fell with their faces to the foe.
4634         They shall grow not old, as we that are left grow old,
4635         Age shall not weary them, nor the years condemn.
4636         At the going down of the sun, and in the morning,
4637         We will remember them.
4639         Lest we forget.
4641 1998-11-10  Bruno Unna       <bruno@iac.com.mx>
4643         * plugins/excel/ms-excel.c(ms_excel_set_font): Started implementing
4644         font styles properly.
4646         * src/gnumeric-util.c(font_get_bold_name, font_get_italic_name): Hacked
4647         both so they allow testing of new font code.
4649 1998-11-10  Michael Meeks    <michael@imaginator.com>
4651         * plugins/excel/ms-ole.c(create_link_array): Truly
4652         brainless one suprised it took so long to surface.
4654 1998-11-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4656         * src/sheet-view.c (sheet_view_comment_get_points): Scale properly
4657         the points to be in window cordinates.
4659         * src/sheet.c (sheet_col_set_width): Move comments on column
4660         change.
4662         * src/cell.c (cell_copy): Duplicated cells get col, row and sheet
4663         values set to NULL.
4665 1998-11-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4667         * src/fn-misc.c: Add ctype.h
4669         * src/sheet-view.c (sheet_view_comment_get_points): New utility
4670         routine used.
4671         (sheet_view_comment_relocate): New function used to relocate a
4672         comment canvas item in a cell to its new location.
4674         * src/cell.c (cell_relocate): Move the comments with the cell.
4675         (cell_realize, cell_unrealize, cell_comment_realize,
4676         cell_comment_unrealize): New functions used to create and destroy
4677         view-specific cell components (the comments are canvas objects
4678         that need to be created on a per-view basis).
4680 1998-11-10  Michael Meeks    <michael@imaginator.com>
4682         * plugins/excel/ms-ole.h: Added unsigned to WORD, LONG
4683         types.
4685         * plugins/excel/ms-formula.c(getRefV7, getRefV8): Fixed
4686         bug in relative column retrieval.
4688         * plugins/excel/ms-formula.c(ms_excel_parse_formula):
4689         Squashed silly op-code bug, and got simple op-codes working.
4691 1998-11-09  Michael Meeks    <michael@imaginator.com>
4693         * plugins/excel/ms-formula.c: Re-designed the translation
4694         code, abstracted, and implemented AVERAGE, MIN & MAX using
4695         StarOffice 4.0 to deduce the standard function numbers.
4697 1998-11-08  Michael Meeks    <michael@imaginator.com>
4699         * plugins/excel/ms-formula.c: Major top to bottom changes
4700         basic hacked RPN to Infix parsing started in a rather nasty
4701         fashion. Much more work needed only 1 ( the SUM ) function
4702         supported.
4704         * src/cell.c (cell_split_text): Fixed string length malloc
4705         bug, out by 1 trashing stack.
4707 1998-11-08  Michael Meeks    <michael@imaginator.com>
4709         * src/workbook.c, src/sheet.h, src/main.c (workbook_read):
4710         Added generic routine to read a file
4712         * plugins/excel/ms-excel.c: Major code overhaul, multiple bug
4713         fixes, BLANK, MULBLANK implemented & tested
4715 1998-11-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4717         * src/cell.c, src/workbook.c, src/sheet-view.c: Finish cell
4718         comment display routines.  Now we only need the dialog box to
4719         insert/edit a cell comment.
4721 1998-10-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4723         * src/cell.c (cell_set_comment): new implementation.
4725 1998-10-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4727         * src/fn-date.c (gnumeric_date): Fix longstanding off by one
4728         error.
4729         (gnumeric_today): ditto
4730         (gnumeric_now): ditto.
4732         * Prepare for 0.4 release.
4734         * configure.in: Add test for new GTK+ selection code.
4736         * src/clipboard.c: Make it work with both APIs: the old and the
4737         new one.
4739 1998-10-28  Daniel Veillard <Daniel.Veillard@w3.org>
4741         * src/xml-io.c: now the basic I/O functions should be clean
4742           removed all direct references to node->content.
4744 1998-10-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4746         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Added
4747         keypad support.
4749         * src/parser.y (dump_tree): Updated to use the new symbol table.
4751 1998-10-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4753         * src/parser.c (dump_tree): Use extra argument.
4755         * src/expr.c (function_call_with_values): Use the extra argument
4756         to symbol_lookup
4758         * src/func.c (constants_init): Use the extra argument to symbol_install.
4760         * src/main.c (main): Invoke global_symbol_init.
4762         * src/symbol.h: Symbol routines now take an extra argument; the
4763         symboltable they work on.  Now the code can have multiple symbol
4764         tables (this is required for the cell range name bindings in a
4765         per-sheet fashion.
4767 1998-10-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4769         * src/sheet.c (sheet_set_zoom_factor): Zoom factor should be
4770         applied to the default styles.
4772 1998-10-27  Daniel Veillard <Daniel.Veillard@w3.org>
4774         * src/xml-io.c: adapted code to the new XML tree format, however
4775           to compile you need to update your libxml from the CVS tree too.
4776           Not a definite solution I'm thinking about a more general API
4777           for XML tree values encoding/decoding. I modified the endoding
4778           format but backward compatibility should be maintained.
4780 1998-10-23  Federico Mena Quintero  <federico@nuclecu.unam.mx>
4782         * src/workbook.c: Made the menus consistent with the (unwritten!)
4783         UI Guidelines document.
4785 1998-10-18  Tom Dyas  <tdyas@vger.rutgers.edu>
4787         * src/clipboard.c: Update to new GTK selection API.
4789 1998-10-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4791         * src/fn-string.c (gnumeric_right): New file.  Implements
4792         left/right string functions.
4794 1998-10-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4796         * src/item-grid.h: Add some missing variables.
4798 1998-10-13  Jakub Jelinek  <jj@ultra.penguin.cz>
4800         * src/item-grid.c (item_grid_stop_sliding,
4801         item_grid_sliding_callback, item_grid_start_sliding):
4802         New functions.
4803         (item_grid_event): If x or y is out of canvas bounds,
4804         do sliding for both cell and formula selection.
4805         For button release from formula selection, make cell
4806         being edited visible afterwards.
4807         (item_grid_button_1): If not extending selection with
4808         shift, make cursor cell visible.
4810         * src/gnumeric-sheet.c (move_cursor,
4811         gnumeric_sheet_key_mode_sheet): Make cursor cell visible.
4813         * src/sheet.c (sheet_select_all): Make home visible.
4814         (sheet_make_cell_visible): New function.
4815         (sheet_cursor_move, sheet_cursor_set): Don't make cursor
4816         visible, caller has to do it himself if desired.
4818         * src/sheet.h (sheet_make_cell_visible): New prototype.
4820         * src/workbook.c (workbook_parse_and_jump): Make cursor
4821         cell visible.
4823 1998-10-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4825         * src/utils.c (col_name): It is amazing the number of times I
4826         duplicated this code.  I wonder if I took prozac by accident.
4827         This should fix the bug reported by Morten Welinder
4829 1998-10-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4831         * src/sheet-view.c (vertical_scroll_event,
4832         horizontal_scroll_event): Set the top column/row from the
4833         adjustment as well.
4835         * src/gnumeric-sheet.c (gnumeric_sheet_set_top_col,
4836         gnumeric_sheet_set_top_row): Export these functions to improve the
4837         scrolling behaviour.
4839 1998-10-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4841         * src/utils.c (cellref_name): Fixed another of column name
4842         decoding.  I wonder when I will learn.
4844 1998-10-07  Jakub Jelinek  <jj@ultra.penguin.cz>
4846         * src/sheet.c (sheet_cursor_set): Add base_col and
4847         base_row arguments. Move cursor to that location, so
4848         that it really reflects base of the selection.
4850         * src/sheet.h (sheet_cursor_set): Ditto.
4852         * src/clipboard.c (x_selection_received): Callers changed.
4854         * src/gnumeric-sheet.c (gnumeric_sheet_set_selection): Ditto.
4855         (move_cursor): Ditto.
4857         * src/item-cursor.c (item_cursor_autofill_event): Ditto.
4858         (item_cursor_init): Fix a typo.
4860 1998-10-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4862         * src/sheet-object.c (create_object): Rectangles have the same
4863         problems Ovals do in terms of Canvas cordinate constraints.
4864         (sheet_view_object_realize): same.
4866 1998-10-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4868         * src/sheet-view.c (sheet_view_col_selection_changed): Make sure
4869         the column is allocated (so that the column size change picks up
4870         the column during the iteration).
4871         (sheet_view_row_selection_changed): Same
4873         * src/style.c (font_init): New routine: loads a couple of default
4874         fonts to be used in Gnumeric.
4876         * src/item-bar.c (bar_draw_cell): Make the SELECTION cells display
4877         with a bold font.
4878         (item_bar_realize, item_bar_unrealize): reference and unreference
4879         the gnumeric_default_bold_font.
4881 1998-10-07  Jakub Jelinek  <jj@ultra.linux.cz>
4883         * src/item-grid.c (item_grid_button_1): Handle shift+click
4884         on cells (removes last selection and selects from last base
4885         to current mouse location).
4886         (item_grid_event): Don't lock up if mouse is moved during
4887         selection behind left or top margin of sheet canvas (later
4888         on we should move the current view).
4890         * src/cell.c (cell_formula_changed): Cast void * to something
4891         reasonable.
4893         * src/item-bar.c (draw_bar_cell): Switch from 2 state bars
4894         to 3 state: whole column/row is selected in one of the current
4895         selections, some cells are selected in one of the selections
4896         or nothing is selected. Get rid of ci->selected, compute it
4897         from the selections.
4898         (item_bar_draw): Ditto.
4900         * src/cell.h (selected): Ditto.
4902         * src/sheet.c (sheet_init_default_styles, sheet_init_dummy_stuff):
4903         Ditto.
4904         (sheet_selection_row_extend_to, sheet_selection_col_extend_to):
4905         Remove.
4906         (sheet_all_is_selected): True if any of the selections covers whole
4907         sheet.
4908         (sheet_col_selection_type, sheet_row_selection_type): New functions.
4909         (sheet_selection_set): New function.
4911         * src/sheet-view.c (sheet_view_row_set_selection,
4912         sheet_view_col_set_selection): Remove.
4913         (sheet_view_col_selection_changed, sheet_view_row_selection_changed):
4914         Handle shift+click and ctrl+click on whole columns/bars as well.
4915         (sheet_view_col_size_changed, sheet_view_row_size_changed): Use
4916         sheet_*_selection_type instead of ci->selected.
4918         * src/item-bar.h (ItemBarSelectionType): Enum for the new 3 state
4919         column/row titles.
4920         (ItemBarClass): selection_changed takes modifier mask as argument.
4922         * src/sheet-view.h (sheet_view_*_set_selection): Remove prototypes.
4924         * src/sheet.h (sheet_selection_*_extend_to): Ditto.
4925         (sheet_selection_set, sheet_*_selection_type): New prototypes.
4927 1998-10-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4929         * src/cell.c (cell_modified): Cells from the clipboard do not have
4930         a Sheet parameter attached.
4932         * src/sheet.c (sheet_cell_add): Check the computed style:  if the
4933         computed style includes a format, then turn on the cell flag for
4934         format is set to avoid the auto guess of cell content.
4935         (sheet_style_compute): Now can return the flags of the style that
4936         were not part of the default style.
4938         * src/file.c (dialog_query_load_file, workbook_save_as): Put the
4939         window close to the mouse.
4941         * src/workbook.c (sheet_check_dirty, workbook_close): Do not
4942         cancel without warning the user if the workbook has changed.
4943         (workbook_new, workbook_can_close, workbook_window_destroy,
4944         quit_cmd, close_cmd): Reorganized the code to suit the new code to
4945         prevent inadvertent quits.
4947 1998-10-06 Adrian Likins <adrian@gimp.or>
4949         * doc/images/*.gif: gifs for documenting the button bar
4950         * doc/editing.sgml, files.sgml, formulas.sgml, gnumeric.sgml,
4951         number-format.sgml, worksheet.sgml: doc updates, some prelim
4952         info on file loading/saving
4954 1998-10-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4956         * src/cell.c (cell_modified): New function, used to tag a modified
4957         cell in a sheet.
4959         * src/fn-math.c (gnumeric_average): Display error on division by
4960         zero.  Make the code not depend on the types returned by
4961         gnumeric_sum and gnumeric_count.
4962         (callback_function_sum): Keep sum as integers as long as
4963         possible instead of using floating point all the time.
4965 1998-10-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
4967         * src/fn-math.c (callback_function_sum): Do not try to be smart
4968         about string content.  Let the smartiness to other layers.
4969         (gnumeric_average): Handle division by zero on average routine.
4971         * src/number-match.c (create_option_list): Small bug fix:  First
4972         translate, then move the pointer ahead.
4974         * src/cell.c (str_trim_spaces): Trim space routine was removing
4975         everything after the first space instead of removing only the
4976         trailing space.
4977         (cell_draw): Free the original string, not the modified copy.
4979         * src/sheet.c (sheet_set_text): Test if the format has been
4980         manually set by the user before trying to do format matching.
4982         * src/cell.h: New flag: CELL_FORMAT_SET, used if the user has
4983         manually specified a format. FIXME: This information should be
4984         saved and loaded.
4986         * src/cell.c (cell_set_format): Set the CELL_FORMAT_SET flag
4988 1998-10-03  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>
4990         * src/workbook.c: Added some more keys to navigate the menus.
4992         * gnumeric.desktop: Added Portuguese translations.
4994         * autogen.sh: Modified hack that patches libtool to work with
4995         srcdir != builddir
4997 1998-10-02  Richard Hestilow <hestgray@ionet.net>
4999         * plugins/stat/stat.c: added new function NVARIANCE
5000         for division by N instead of N - 1, fixed div by 0 error if
5001         variance of a single value was taken, free'd up some mem leaks.
5002         (Thanks to Morten Welinder for noticing these)
5004 1998-10-02  Richard Hestilow <hestgray@ionet.net>
5006         * Added new statistics plugin
5008 1998-10-02  Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
5010         * src/dialog-cell-format.c (apply_coloring_format): fix,
5011         fore_color was assigned twice, and back_color never.
5013 1998-10-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5015         * src/item-grid.h: ItemGridSelectionType: new enumeration type
5016         used for item_grid->selecting to avoid shutting down entirely the
5017         formula selection range on mouse release.
5019 1998-10-02 Vincent Renardias <vincent@waw.com>
5021         * Changed 'es@mx' into 'es_MX' for locale stuff in
5022           configure.in, po/*, doc/translating.sgml.
5024 1998-10-01 Adrian Likins <adrian@gimp.org>
5026         * src/*.sgml: guess what? doc updates.. mainly
5027         info on formatting cells.
5029         * src/images/number-format-*.jpg: more images
5031 1998-10-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5033         * src/item-grid.c (item_grid_event): Removed unused variables
5035         * src/gnumeric-sheet.c (gnumeric_sheet_start_cell_selection,
5036         gnumeric_sheet_selection_extend,
5037         gnumeric_sheet_selection_cursor_place): New routines for letting
5038         the user use the mouse to select a cell range.  Invoked from
5039         item-grid.c
5041         * src/item-grid.c (item_grid_event): Clean and reorgranize the
5042         event handler, remove unused variables.
5044         * src/gnumeric-sheet.c (selection_expand_horizontal): -1 now means
5045         "shrink the selection", which means Left/Up keys shrink.
5046         Right/Down expand.
5047         (selection_expand_vertical): likewise.
5049         * src/format.c (format_number): Fixed memory leak: this is a
5050         pretty bad construction: g_string_append (s, alloc_string()).  I
5051         just did not see it coming.  Taking metal note of this.
5053         * src/number-match.c (format_create_regexp): Fixed memory leaks.
5054         The strings returned by create_option_list need to be released.
5056         * src/style.c (style_color_new): Important bug fix:  The key I was
5057         passing was a GdkColor, but our hash table stored StyleColors
5058         inside.
5060         * src/format.c (append_year): Better fix, suggested by Morten
5061         Welinder <terra@diku.dk>
5063 1998-09-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5065         * src/clipboard.c (clipboard_export_cell_region): Correct fix to
5066         the paste problem: dont pass current_workbook, but rather the wb
5067         we get.
5069         * src/format.c (split_time): Compute the day of week.  This was
5070         done before by localtime, but the new code was not doing it (thus,
5071         format "ddd" always reported "Sun").
5073         * src/item-edit.c (item_edit_reconfigure): Call reconfigure in parent.
5075         * src/item-cursor.c (item_cursor_reconfigure): Call reconfigure in parent.
5077         * src/format.c (append_year): Year 2000 fix :-).
5079         * src/cell.c (cell_set_text_simple): Fix, use localeconv
5080         information to figure out if the text is a number or not.
5082 1998-09-30  Havoc Pennington  <hp@pobox.com>
5084         * src/dialog-cell-format.c (color_pick_change_notify): Change args
5085         to match new gnome-color-picker color_set args.
5087 1998-09-39 Adrian Likins <adrian@gimp.org>
5089         * doc/autofill.sgml, sell_refer.sgml, editing.sgml,
5090           gnumeric.sgml, number-format.sgml, worksheet.sgml:
5091             Minor updates, new info on formatting, spelling
5092             and formatting fixes.
5094         * doc/selection.sgml, selections.sgml: removed selection.sgml
5095         and added selections.sgml.
5097         * doc/images/worksheet-data-[1234].jpg,
5098         worksheet-running-calc-1.jpg, number-format-dialog-1.jpg:
5099         more pics to go along with the docs.
5101 1998-09-30  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5103         * src/workbook.c (quick_compute_routines): Made static
5105         * src/item-grid.c (item_grid_context_menus): Made static.
5107 1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5109         * src/cell.c (cell_draw_comment): New routine to paint a little
5110         red triangle if the cell hsa notes.
5112         * src/cell.c (cell_destroy): Destroy the comment.
5113         (str_trim_spaces): New routine.  Trims the spaces on a string.
5114         (cell_draw): Trim the leading and trailing spaces on every string
5115         of a multi-line text.
5117         * src/color.c (color_init): Allocate a red for tagging the
5118         spreadhseet notes.
5120         * src/dialog-cell-format.c (format_list_fill): Apply the
5121         traslation when adding the format.
5123         * doc/tranlating.sgml: New document that describes how to
5124         internationalize and localize Gnumeric properly.
5126         * src/workbook.c (recalc_cmd): Provide a way to force a recomputation.
5127         (insert_current_time_cmd): New function.  insert the current time.
5128         (insert_current_date_cmd): New function.  insert the current date.
5129         (insert_at_cursor): New utility function.
5131         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Handle control-home
5133 1998-09-29  Raja R Harinath  <harinath@cs.umn.edu>
5135         * src/parser.y (dump_tree): Update to change in `expr.h'.
5136         s/OP_/OPER_/g.
5138 1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5140         * src/xml-io.c: Changed the formatting of it to be like the rest
5141         of Gnumeric.
5143         * src/fn-math.c, src/fn-date.c: Simplify routines to use
5144         value_float and value_int.
5146         * src/expr.c (value_float, value_int): New utility functions to
5147         create values of type integer and float.
5149         * src/sheet.c (sheet_set_text): Use the matching engine on entered text
5151         * src/cell.c (cell_set_text_simple): New function.  Does not queue
5152         cell computations nor queue any redraws
5153         (cell_content_changed): New function: Queues recomputations for
5154         cells that depend on the contents of the argument.
5155         (cell_set_format_simple): New routine, like cell_set_format but
5156         does not render the value nor queues a redraw.
5158         * src/xml-io.c: Use workbook_recalc_all instead of workbook_recalc
5160         * src/fn-math.c (gnumeric_log10, gnumeric_log, gnumeric_log2):
5161         Range check fix was wrong.  The valid range does not include
5162         zero.  Thanks to Morten Welinder for noticing this.
5163         (gnumeric_cosh): Call cosh, not cos.
5164         Reordered this file to have the help always before the function
5165         that defines it.
5166         (callback_function_or): Bug fix: any non-zero value is considered
5167         to be TRUE.
5168         (gnumeric_fact): Use exp (lgamma (n+1)) to compute large
5169         factorials (this only applies to factorials over 40).
5171         * src/about.c (dialog_about): Stop using gnome_dialog_set_modal.
5173 1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5175         * src/number-match.c (format_create_regexp): Small bug fix.  I was
5176         making 'mm' be parsed as 'mmm'.  Support 'mmmm'.
5178         * src/fn-date.c (gnumeric_now, gnumeric_date, gnumeric_today):
5179         Note that jannuary 1st is day 1, not day zero.
5181         * src/format.c (append_month): Fixed handling: tm_mon is zero based.
5182         (split_time): Fixed silly mistake I did last time I looked at this code
5184         * src/cell.c (cell_set_formula): Try to set the cell style if the
5185         style is General.
5187         * src/parser.y (return_symbol): Try to match the input with the
5188         format matching engine.
5190         * autogen.sh (PKG_NAME): Another hack to get rid of the annoying
5191         extracing symbols list, which, slows down my link time :-)
5193 1998-09-28  Adrian Likins <adrian@gimp.org>
5195         * doc/gnumeric.sgml, autofil.sgml, worksheet.sgml: More docs.
5196         * docs/images/worksheet*.jpg: jpg's for the new worksheet docs.
5198 1998-09-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5200         * src/number-match.c (compute_value): New file:  Implements a
5201         smart way of parsing numbers:  From all of the registered formats,
5202         it creates regexps for matching at the time the user inputs data.
5203         If that data matches any of the regexps, then the input is
5204         converted into a float, and a display format is assigned to it.
5206         * src/format.c (append_day, append_month): Skip the -now included-
5207         start at the begining for internationalization purposes.
5208         (split_time): Fixed the hour and second renddering.
5209         (format_number): Fix:  hour_seen was not being set.
5211         * src/sheet-autofill.c (matches_list): Allow the lists to include
5212         an asterisk to be able to distinguish between abbreviations and
5213         full descriptions.
5215         * src/clipboard.c (x_selection_to_cell_region): New routine.
5216         Creates a CellRegion of type text based on the selection provided
5217         by X.
5218         (paste_cell_flags): New function, decoupled from
5219         do_clipboard_paste_cell_region.   Handles new type in CellCopy.
5221         * src/sheet.c (sheet_selection_paste): Simplified as most of the
5222         work is now
5224         * src/clipboard.c (x_selection_received): Perform the paste
5225         operation, moved most of the logic from sheet.c.  This does both
5226         internal paste and paste from the X selection (and everything
5227         works the way the user expects it to behave).
5229 1998-09-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5231         * src/cell.h: Cell Copys now can contain both Cells or plain
5232         text.
5234         * src/expr.c (function_call_with_values): Check the return value
5235         from symbol_lookup.
5237 1998-09-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5239         * plugins/python/python.c (marshal_func): Our scheduled
5240         indentation changes.
5242         * plugins/python/gnumeric_startup.py: Sample file that gets loaded
5243         when the Module is loaded.
5245 1998-09-27  Raja R Harinath  <harinath@cs.umn.edu>
5247         * configure.in (GNOME_COMPILE_WARNINGS): New check.
5248         (PYTHON_EXEC_PREFIX): Figure out `exec_prefix'
5249         where python was installed.
5250         (PYTHON_LIB_LOC): Use $PYTHON_EXEC_PREFIX instead of
5251         $PYTHON_PREFIX.
5253         * src/Makefile.am (CFLAGS): Comment out.
5254         (gnumeric_LDFLAGS): Pass `-export-dynamic', so that plugins can
5255         access symbols from the `gnumeric' binary.
5257         * plugins/sample/Makefile.am (CFLAGS): Comment out.
5259         * plugins/python/Makefile.am (CFLAGS): Comment out.
5260         (libpython_la_LDFLAGS): Move $(PYTHON_LIB_LOC) here.
5262 1998-09-27 Adrian Likins <adrian@gimp.org>
5264         * doc/{gnumeric, editing, formulas, autofill.sgml}: More
5265         approriate tags for the images and examples. Restructed to be a
5266         bit more logical.
5268 1998-09-26  Adrian Likins <adrian@gimp.org>
5270         * doc/*.jpg:
5271         * doc/images/*.jpg: moved images to an images subdir
5273         * doc/gnumeric.sgml, editing.sgml, autofill.sgml: cleaned
5274         up the markup some
5276 1998-09-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5278         * src/sheet-object.c (sheet_view_object_realize): Swap coordinates
5279         before passing to the canvas item.
5281         * plugins/python/python.c (init_plugin): Use the system
5282         installation directory to load the python scripts.
5284         * autogen.sh: Hack to make libtool add library dependcy
5285         information (it modifies the libtool file after it has been
5286         created).
5288         * src/workbook.c (workbook_set_filename): New routine to set the
5289         filename being edited of the workbook.
5291         * src/sheet-object.c (create_object): Swap arguments to the
5292         ellipse object to guarrantee we pass valid information.
5294         * src/render-ascii.c (cell_region_render_ascii): Ok, remove the
5295         leaks now.
5297 1998-09-25 Adrian Likins <adrian@gimp.org>
5299         * doc/cell_refer.sgml, doc/gnumeric.sgml, doc/editing.sgml:
5300         Change the structure of the outline of the docs to make a bit
5301         more sense. Added some more docs too.
5303         * doc/cell-*.jpg, doc/selection[8,9,10].jpg: more jpgs
5305 1998-09-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5307         * src/render-ascii.c (cell_region_render_ascii): new routine that
5308         renders a cell selection into a an ascii string.  IT HAS PILES OF
5309         LEAKS.  I have to go to the movies, will fix later tonight.
5311         * src/clipboard.c (x_clipboard_bind_workbook): New function used
5312         to connect the selection signals for a workbook.
5313         (x_selection_handler): New function: X selection handler.
5314         (clipboard_export_cell_region): New function: Export our clipboard
5315         to the X selection.
5316         (clipboard_copy_cell_range): call clipboard_export_cell_region
5318         * src/plugin-manager.c (plugin_manager_new), plugin.c: Add
5319         internationalization support.
5321         * src/sheet.c (sheet_selection_row_extend_to,
5322         sheet_selection_col_extend_to): New version that makes sure the
5323         column information has been allocated.
5325         * src/workbook.c (workbook_parse_and_jump): Maximum ranges were a
5326         little bit off.
5328         * src/parser.y (return_cellref): Fixed the same bug we had in
5329         parse_cell_name:  The parsing of the column name to a column index
5330         was wrong here too.
5332         * src/sheet.c (sheet_row_info_set_height,
5333         sheet_col_info_set_width): New functions based on the older
5334         non-ColRowInfo versions.
5336         * src/sheet-view.c (sheet_view_row_size_changed,
5337         sheet_view_col_size_changed): Apply changes globaly if the whole
5338         sheet is selected.
5340 1998-09-25 Adrian Likins <adrian@gimp.org>
5342         * doc/dndselection.sgml, selection.sml: more docs, some
5343         on creating selections, and some on moving/copying cells
5344         * doc/dndselection-*.jpg, selection-*.jpg: jpegs to
5345         accompany the docs.
5347 1998-09-24 Adrian Likins <adrian@gimp.org>
5349         * doc/gnumeric.sgml, autofill.sgml: Some docs on the autofill
5350         stuff.
5351         * doc/autofill-[1..10].jpg: jpegs accompaning the autofill docs
5353 1998-09-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5355         * src/gnumeric-sheet.c (gnumeric_sheet_key_mode_sheet): Do not
5356         handle Control-a here.
5358         * src/workbook.c: Handle C-a with the GnomeApp accelerators
5360 Thu Sep 24 15:12:13 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
5362         * src/xml-io.c: moved to a per-XML file compression interface.
5364 1998-09-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5366         * src/item-cursor.c (item_cursor_draw): Make the anted selection
5367         one pixel wider.
5369 1998-09-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5371         * src/workbook.c (workbook_feedback_set): Add italic font setting support.
5373         * src/cell.c (cell_set_style): Render the value after copying a style.
5375         * src/clipboard.c (clipboard_paste_region): Add support for
5376         pasting the formats only.
5378         * src/xml-io.c: Destroy the extra style.
5380         * src/main.c (main): No need to init colors as they are auto-inited.
5382         * src/style.c (font_compute_hints): At font creation time store a
5383         couple of the font attributes for quick retrieval.
5385         * src/sheet-view.c (sheet_view_construct): Do not allow this
5386         button to have the focus either.
5388         * src/item-bar.c (item_bar_draw): If the whole sheet is selected,
5389         draw all of the columns in pressed presenstation
5391         * src/sheet.c (sheet_is_all_selected): Return wheter all the sheet
5392         is selected.
5394         * src/utils.c (cell_name): Fixed cell name computation.
5395         (parse_cell_name): Fixed parsing of the cell name.
5397         * src/item-grid.c (item_grid_event): More range checks.
5399         * src/item-bar.c (item_bar_event): range checks here too.
5401         * src/sheet-autofill.c (FillItem): Keep track of the originating
5402         cell so that we can copy the format.
5404         * src/cell.c (cell_set_style): New function.
5406         * src/sheet.c (sheet_selection_reset_only): Simple fix: For the
5407         row case, redraw the rows, not the columns.  Cut/paste typo.
5409         * src/dialog-goto-cell.c (dialog_goto_cell): Do not complain if
5410         there was no target cell entered.
5412         * src/expr.c (eval_expr): Division of integers results in a
5413         float.
5415         * src/workbook.c: Added shortcuts to the File menu.
5417         * src/item-cursor.c (item_cursor_autofill_event): Do not allow
5418         under-the-base coordinates.
5420         * src/sheet-autofill.c: Its "january" not "jannuary".
5422         * src/cell.c (cell_set_text): Enhanced number detection.
5424         * src/item-cursor.c (item_cursor_drag_event): Handle sheet
5425         boundaries.
5427         * src/gnumeric-sheet.c (move_cursor_vertical,
5428         move_cursor_horizontal): Handle sheet boundaries.
5430         * src/item-grid.c (item_grid_event): Handle sheet boundaries.
5432         * src/item-bar.c (item_bar_draw): Handle sheet boundaries.
5434         * src/pixmaps/bold.xpm:  Oops.  Use the bold icon I created
5435         yesterday.
5437 1998-09-23  Richard Hestilow  <hestgray@ionet.net>
5439         * src/style.c: fixed hyphen vs hypen typo.
5441 Wed, 23 Sep 1998 12:52:20 +0200 Paolo Molaro <lupus@debian.org>
5443         * src/format.c: added #include <locale.h>
5445         * src/pixmaps: added bold.xpm: this is from gwp, maybe
5446         we need a better one:-)
5448 1998-09-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5450         * src/sheet-autofill.c (string_has_number): I got too agressive
5451         with the test so no Strings + Numbers were being autofilled.
5453         * src/workbook.c (workbook_setup_edit_area): Remove the CAN_FOCUS
5454         flags form the accept and cancel buttons.  Bind the buttons.
5455         (buttons): Neither Zoom-in and Zoom-out can take the focus.
5456         (change_selection_font): New function to change the fonts of a
5457         cell range.
5459         * src/sheet.c (sheet_accept_pending_input): Renamed from
5460         sheet_accept_pending_output.
5462         * samples/: Added a new sample file: hypothetical-sales.
5464         * src/parser.y (yylex): Accept underscores in identifiers.
5466         * src/xml-io.c (readXmlCell): Set the content of the cell even if
5467         the file contains NULLS.
5469         * src/style.c (style_font_new): Better tolerance to missing fonts.
5471         * src/xml-io.c: Remove geometry setting: it has some bad side
5472         effects.
5474         * src/func.c (constants_init): Add a GNUMERIC_VERSION constant.
5476 Tue Sep 22 20:50:11 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
5478         * src/xml-io.c: set-up for compression of output. Should be tunable
5479           from the interface.
5481 1998-09-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5483         * src/xml-io.c (writeXmlStyle): Save colors.  Save pattern.
5484         (readXmlStyle): return the value.  Start with an empty style. Load
5485         font.
5486         (xmlGetColorValue): Use the style color allocation routines.
5487         (readXmlCell): Load style. Merge styles if an element is missing.
5488         Trim the cell tail content (spaces and newlines at the end).
5489         Changed the use of all hash tables to use strings instead of
5490         pointers.
5491         (readXmlObject); Call sheet_object_realize on the object loaded.
5493         * src/item-cursor.c (item_cursor_autofill_event): Commted out
5494         debugging code.
5496         * src/sheet-autofill.c (string_has_number): Bug fix: it was
5497         assuming every string had a number at the end.
5499         * src/workbook.c (workbook_new): Handle to destroy signal.  Add
5500         Close option to file menu.
5502         * src/style.c, src/style.h (border_equal): Colors in the
5503         BorderStyler are now stored as StyleColors.
5505         * src/sheet.c (sheet_shift_col): Small buglette fixes: we need to
5506         advance our row walker here ;-)
5507         (sheet_shift_row): Same error was here.
5509         * src/format.c (format_value): Handle NaN/infinite numbers
5511         * src/gnumeric-sheet.c (gnumeric_sheet_key): Last fix was a little
5512         too good:  Forward the keystroke events if the user is already
5513         editing a cell.
5515         * src/gnumeric-sheet.c (gnumeric_sheet_key): Do not process events
5516         that might be catched by the menubar.
5518         * src/about.c: Add about box.
5520 1998-09-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5522         * src/fn-math.c: Changed the way we tag the function definitions
5523         before its too late.
5525         * src/item-cursor.c (item_cursor_point): Made the thresholds for
5526         the cursor a little better.
5528         * src/dialog-cell-format.c: Small changes to the color
5529         configuration code.
5531         * src/expr.c (do_expr_decode_tree): When decoding a tree, include
5532         the argument separator.  Also, loop properly trough the arguments
5533         being decoded.
5535         (function_call_with_values, function_def_call_with_values): New
5536         functions: these ones are for the plugins so that a plugin can
5537         invoke other functions in Gnumeric.
5539         * src/fn-date.c (gnumeric_now): The serial number returned by
5540         NOW() should be relative to 1900/1/1, not year zero.
5542 1998-09-21  Adrian Likins <adrian@gimp.org>
5544         *src/fn-math.c: firat stab at fleshing out the help
5545         blurbs here.
5547 1998-09-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5549         * src/expr.c (eval_expr): Fix the way we computed expressions.
5551         * src/eval.c (cell_eval): Maintain a CELL_ERROR flag to know if
5552         the value is NULL due to an error or to the cell not being
5553         evaluated.
5555         * src/expr.c (funcion_call_with_values): Add a routine to allow
5556         plugins to call other functions defined in Gnumeric.
5558         * src/style.c: Handle the pattern property of the styles.
5560         * src/style.h: Pattern style is now just a 4 bit quantity, instead
5561         of a RefCounted structure.
5563         * src/plugin.c: Include gnumeric-util.h
5565 1998-09-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5567         * src/item-cursor.c (item_cursor_do_drop): Use button-1 to select
5568         an option on the popup menu.
5570         * src/fn-date.c: New file, implements various date and time
5571         manipulation routines.
5573         * src/main.c: Accept --dump-func-defs flag to dump the help
5574         available for our built in functions.
5576         * src/symbol.c: Export the symbol hash table.
5578         * src/format.c (render_number): Use the locale provided rendering
5579         number.  This will require translators to also translate correctly
5580         the default formats for their locale.
5582         * src/format.c (split_time): New code that works correctly
5583         in the range expected by Microsoft Excel [1900,1900+65535].  We of
5584         course work on a wider range than Excel can.  We can work on
5585         pre-1900 dates and on 1900+2^31 dates, but it might make little sense.
5587 1998-09-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5589         * src/sheet-autofill.c (fill_item_new): Trivial bug fix (I was
5590         using a variable before testing if it wsa ok).
5592 1998-09-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5594         * src/item-cursor.c (item_cursor_autofill_event): Accept pending
5595         input when the user autofills.
5597         * README, Doc/Design: Updated
5599         * configure.in: autoconf tests for python.
5601         * src/sheet-autofill.c (sheet_autofill_dir): Only fill the region
5602         we were requested.
5604 1998-09-17  Tom Dyas  <tdyas@vger.rutgers.edu>
5606         * plugins/sample/plugin-sample.c: Update to the new plugin API.
5608         * src/plugin.c (plugin_load,plugin_unload): Replaced g_print's
5609         with gnumeric_notice. Call new API function "can_unload" to see if
5610         a plugin is still in use.
5612         * src/plugin.h: New API function "can_unload". Removed refcount.
5614 1998-09-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5616         * src/sheet-view.c (sheet_view_row_size_changed,
5617         sheet_view_col_size_changed): If there is a selection of columns
5618         or rows, change the sizes of all of the columns.
5620         * src/sheet.c (sheet_row_get_distance, sheet_col_get_distance):
5621         optimized to be O(n) instead of O(n^2) using
5622         (col_row_distance): new routine to compute distances.
5624         * src/sheet-view.c (sheet_view_redraw_cell_region): Add the
5625         scrolling offset to the x and y positions to draw properly
5627         * src/xml-io.c (readXmlSheet): Call sheet_set_zoom_factor to
5628         initialize the ->pixels field.
5630         * src/expr.h: Valued functions  now take a FunctionDefinition *
5631         parameter which points to the definition that was used for this
5632         function.  This is required for the python interpreter.
5634         * src/cellspan.c (row_cell_get_displayed_at): row->data might be NULL.
5635         (cell_unregister_span): row->data might be NULL.
5637         * src/main.c (main): Add support to load more than one file from
5638         the command line.  Drop requirement for --file option.
5640         * src/sheet-object.c (sheet_object_destroy): Keep track of the
5641         sheet->objects structure.
5642         (sheet_object_create_line, sheet_object_create_filled): Keep track
5643         of the sheet->objects structure.
5644         (sheet_object_realize, sheet_object_unrealize): Export these
5645         functions.
5646         (sheet_object_destroy): Keep track of the sheet->objects structure
5648         * src/sheet-autofill.c (autofill_cell): Implemented autofill on
5649         strings that contains numbers.  This allows autofill to handle
5650         stuff like "Product1" -> "Product2", ...
5652 Wed Sep 16 23:56:59 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
5654         * src/xml-io.c: started working on object saving/loading.
5656 1998-09-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5658         * src/cursors.c (cursors_shutdown): Fix bug.  Destroy the ith
5659         cursor, nor cursor 0 over and over.
5661         * src/sheet-autofill.c (type_is_compatible,
5662         autofill_create_fill_items):  Better type compatible routine.
5663         This is required for the list fill type.
5664         (autofill_init): startup the autofill code.  It registers a number
5665         of default lists (weekdays and months for now).
5667 1998-09-16  Tom Dyas  <tdyas@vger.rutgers.edu>
5669         * src/plugin-manager.c: Changed where the Remove button was made
5670         sensitive so that it actually sync's with the list selection.
5672 1998-09-16  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5674         * src/workbook.c: Use the new accelerator setup from
5675         gnome-app-helper.
5677         * src/sheet-autofill.c (fill_item_new): We now have a working
5678         implementation of the Autofill feature.
5680 1998-09-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5682         * src/sheet-autofill.c (fill_range_new): New routine, used to
5683         create a fill_item
5685         * src/item-grid.c (item_grid_event): Use the proper cursor
5686         depending on the sheet mode.
5688         * src/sheet-object.c (object_event): Set the cursor to the arrow.
5689         (object_handle_event): Same.
5691         * src/cursors.h (cursor_set_widget, cursor_set): New macros to
5692         access easily the gnumeric cursors.
5694 1998-09-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5696         * src/cursors.c: Define the Gnumeric cursors here.
5697         (create_bitmap_and_mask_from_xpm): New simplistic function to
5698         create cursors from an XPM inlined file.  It assumes 3 colors are
5699         used: none (transparency), black and white.
5700         (cursors_init): Create various cursors for use in Gnumeric.
5702         * src/item-grid.c (item_grid_event): Set the fat cross cursor on
5703         enter-notify
5705         * src/item-cursor.c (item_cursor_selection_event): Handle
5706         GDK_ENTER_NOTIFY and GDK_MOTION_NOTIFY to set the X window pointer
5707         shape properly according to the position of the mouse pointer.
5709 1998-09-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5711         * src/gnumeric-sheet.c (gnumeric_sheet_realize): Fix: initilaize
5712         the GdkWindow pointer after we have invoked our parent method.
5714         * src/cursors.c: New file.  Loads the various cursors used by
5715         Gnumeric.
5717         * src/item-cursor.c (item_cursor_autofill_event): Implement the
5718         cursor growing autofill rules.
5720 1998-09-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5722         * src/workbook.c (workbook_setup_sheets): Dont let the workbooks
5723         take the focus.
5724         (do_focus_sheet): Do focus the current sheet on
5725         page change.
5726         (workbook_setup_signals): Focus the GnumericSheet if no widget has
5727         the focus.
5729         * src/cell.c (cell_draw): Use the value-specified color.
5731         * src/format.c (lookup_color, format_color_init,
5732         format_color_shutdown): New routines to use StyleColors instead of
5733         color names.
5735 1998-09-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5737         * src/cell.c (queue_cell, cell_freeze_redraws, cell_thaw_redraws):
5738         Support for freezing/thawing cell redraws to avoid the multiple
5739         calls that will be produced by appying a format.
5741         * src/xml-io.c: Use the new color allocation routines.
5743         * src/color.c: Implement color allocation routines with a Color
5744         context shared by all of Gnumeric's code.
5746         * src/item-cursor.c (item_cursor_realize): Do not allocate
5747         colors here now
5749         * src/item-grid.c (item_grid_realize): Do not allocate colors
5750         manually here now.
5752         * src/gnumeric-sheet.c (gnumeric_sheet_color_alloc): Remove.  This
5753         was a quick hack.
5755 1998-09-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5757         * src/cell.c (cell_draw): Fix center alignment code.
5759 1998-09-10  Tom Dyas <tdyas@vger.rutgers.edu>
5761         * src/func.c: Made install_symbols public.
5763         * src/main.c: initialize the plugins.
5765         * src/workbook.c (plugins_cmd): Add a menu option for plugin
5766         loading.
5768         * plugin-manager.c: New file.  Implements the GUI part of the
5769         plugin manager.
5771         * plugin.c, plugin.h: New file. Support for the dynamically loaded
5772         Gnumeric plugin components.
5774 1998-09-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5776         * src/dialog-cell-format.c (dialog_cell_format): save and restore
5777         the last page used during a cell style application.
5779         * src/item-edit.c (item_edit_draw): Do not shift the characters
5780         one pixel to draw the cursor.
5782 1998-09-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5784         * src/dialog-cell-format.c (create_background_radio): Use the new
5785         pattern selector.
5787         (create_foreground_radio, create_background_radio): Use the new
5788         gnome color pickers.
5790         * src/pattern-selector.c (pattern_selector_select): New widget.
5791         This is a patter selector.
5793 1998-09-08  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5795         * src/sheet-object.c (sheet_button_press): Lots of changes to
5796         finish the editing facilities for objects: you can now resize the
5797         objects and you can move them.
5799 1998-09-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5801         * src/dialog-cell-format.c (apply_font_format): Optimization, walk
5802         the row list instead of calling repeatedly the sheet_row_get
5803         routine.
5805 1998-09-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5807         * src/style.h: Color style is now a single color
5809 1998-09-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5811         * src/sheet-object.c: New file.  The support for adding graphical
5812         objects to the spreadhseet is here.  The main entry point is
5813         sheet_set_mode_type which hooks to the signal handlers for object
5814         creation.
5816         Various routines for per-view creation, destruction are provided.
5818 1998-09-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5820         * src/parser.y: Add unary '+'
5822         * src/gnumeric-sheet.c: Add keybinding for Control-Enter which
5823         fills the selection with the current text.
5825         * src/sheet.c (sheet_set_text): New function: sets the contents of
5826         an arbitrary cell to the text as if it were typed by the user.
5827         (sheet_fill_selection_with): Fill the selection with a string.
5829 1998-09-04  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5831         * src/gnumeric-sheet.c (gnumeric_sheet_key): Fix the way the
5832         hotkeys were processed (c-a specifically is annoying and all of
5833         the control-keys were being consumed before reaching the
5834         item-edit).
5835         (gnumeric_sheet_key): implemenet control-space
5837         * src/dialog-cell-format.c (create_align_page): Connect to the
5838         toggled signal of auto return.
5840         * src/cell.c (cell_draw): Fix the VALIGN_JUSTIFY case.
5842         * src/item-grid.c (item_grid_draw): Redone the cell draw driver.
5844         * src/cell.c (cell_draw): Now it returns the number of cells it
5845         draw on top of.
5846         (cell_calc_dimensions): Unregister the spans when entering,
5847         register the span at exit.
5849 1998-09-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5851         * src/utils.c (int_get_from_range): Bug fix, we were not doing the
5852         range thing for the "big" case.  Thanks to Alan for finding this
5853         bug.
5855 1998-09-02  Tristan Tarrant  <ttarrant@etnoteam.it>
5857         * configure.in: Included it in ALL_LINGUAS
5859 1998-09-02  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5861         * src/cell.c (cell_set_alignment): Bug fix:  optimize only if
5862         auto_return is the same value that we have set
5864         * src/gnumeric-sheet.c: Define lots of cool patterns.  Where cool
5865         in this sentence is defined as 13 (to leave room for the solid
5866         pattern).
5867         (gnumeric_sheet_realize): Create the pattern stipples here.
5869         * src/file.c (workbook_save_as, workbook_save,
5870         dialog_query_load_file): New file, new routines to deal with file
5871         save and file load dialog boxes.
5873         * src/workbook.c: Improved our toolbar with new actions.
5875         * src/xml-io.c: Fixed the order in which parameters were passed to
5876         sheet_cell_get/sheet_cell_new
5878         * src/sheet.c (sheet_clear_region): Redraw the deleted region.
5879         (sheet_clear_region_content): Same.
5880         (sheet_cell_remove): same.
5882         * src/sheet-view.c (sheet_view_redraw_cell_region):
5884         * src/cell.c (cell_set_halign): New routine:  Only changes the
5885         Horizontal alignment of a cell.
5886         (cell_set_format, cell_set_text, cell_set_font_from_style,
5887         cell_set_halign, cell_set_alignment): Queue a redraw to a cell
5888         before making changes to the properties, to repaint correctly the
5889         regions it covers before the change.
5891         * src/workbook.c (center_cmd, left_align_cmd, right_align_cmd,
5892         set_selection_halign):  New routines used to bind the alignment
5893         commands from the toolbar.
5895         * src/sheet-view.c (sheet_view_redraw_cell_region): Silly mistake
5896         fix.  Last time I touched this routine i got too excited.  I
5897         should use *_col_get_distance only for numbers, not rows.
5899         My variables were badly named and I thus commmited a mistake, fix.
5901 1998-09-01  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5903         * src/dialog-cell-format.c (create_align_page): Added support for
5904         the "add returns automatically" formatting option.
5906         * src/cell.c (cell_draw): Finished implementing my new drawing
5907         scheme.  It now supports all of the Excel 5.0 alignements.
5909         Added missing calls to cell_calc_dimensions in various spots.
5911         * src/workbook.c: Added a toolbar with some actions.
5913 1998-08-31  Tristan Tarrant  <ttarrant@etnoteam.it>
5915         * TODO: some ideas for key shortcuts (from Excel :-)
5917         * src/gnumeric-sheet.c (gnumeric_sheet_key): Implemented page up,
5918         page down and home keys. They don't work for selections at the moment.
5919         Implemented clear. It currently does a clear_all, but ideally it
5920         should pop-up a dialog asking the user what kind of clear he/she wants,
5921         as in Excel. Also clearing cells doesn't update the display.
5923 1998-08-31  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5925         * src/cell.c (cell_do_calc_dimensions): New routine that computes
5926         the dimenssions of a cell based on the alignement constraints of
5927         the cell.
5929         * src/item-bar.c (item_bar_event): grab the focus when selecting
5930         as well.
5932         * src/sheet-view.c (sheet_view_redraw_cell_region): Implemented
5933         correctly: we now use cell_get_span on every cell in the range to
5934         actually compute which areas need to be updated.
5936         * src/cell.c (cell_get_span): New routine.  Computes the number of
5937         columns spanned by a cell.
5939 Sun Aug 30 17:19:02 EDT 1998 Daniel Veillard <Daniel.Veillard@w3.org>
5941         * src/xml-io.c: added saving of the current workbook as one
5942           file, added code to load the workbook. Some part are really
5943           untested/incomplete especially the style support.
5945         * src/main.c (main): added loading of "default.wb" on startup
5946           i.e. the default workbook.
5948 1998-08-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5950         * src/item-bar.c (item_bar_get_line_points): New helper routine,
5951         used to create the position of the tracking line for the bar resizing.
5952         (item_bar_event, item_bar_start_resize): Fix the incremental
5953         tracking.
5955 1998-08-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5957         * src/sheet.c (sheet_row_set_internal_height): New routine used to
5958         change the heigh of a sheet.  Now we also keep a variable to see
5959         if the user has hardcoded the dimensions of the row.
5960         (sheet_compute_visible_ranges): New function to compute the
5961         visible ranges of the Sheets.
5963         * src/item-edit.c (item_edit_init): Init all values.
5964         (item_edit_set_arg): Set the child bounds
5965         (item_edit_draw): Use the style font for the current cell when
5966         drawing the cell.
5968         * src/dialog-cell-format.c (apply_font_format, create_font_page):
5969         New cell property configuration page: font selector.
5971         * src/cell.c (cell_set_font, cell_set_font_from_style): New
5972         routines to change a cell's font.
5974         * src/item-bar.c (item_bar_start_resize): Fix routine after the
5975         massive changes of yesterday.
5977 1998-08-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5979         * src/format.c (format_number): Rewrote the format parser.  I
5980         took Chris's number formatting routine and made it a
5981         number-rendering only thing to support the complexities of the
5982         Excel formating codes.
5984 1998-08-27  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5986         * src/format.c (format_number): Add support for text quoting
5987         inside a format (double quotes and single character quotes); Add
5988         support for space skipping (_) and concatenation of the allowed
5989         characters.
5990         Added color lookup.
5992         * src/sheet-view.c, src/sheet.c, src/gnumeric.c: Massive changes
5993         to the structure of the code to accomodate the fact that we should
5994         be able to have multiple views for a single sheet.
5996 1998-08-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>
5998         * src/sheet.c (sheet_clear_region_content): New function to remove
5999         the contents of a region of cells.
6001         * src/dialog-zoom.c (dialog_zoom): Add Zoom window.
6003         * src/style.c (style_color_new, style_color_ref,
6004         style_color_unref): New functions.  Color for a cell will be kept
6005         as part of the style.  Hack note: if valid_flags reports
6006         STYLE_COLOR style->color might be NULL: this means use the default
6007         sheet colors for this cell.
6009         * src/cell.h: Get rid of GdkColor field.
6011         * src/item-grid.c (item_grid_draw_cell): Draw selected cells
6012         smartly.  Now we invert the resulting area (this works for my
6013         16-bpp display, have to try the XOR trick tomorrow on a paletted
6014         display).
6015         (context_clear_cmd): New context command that clears the content
6016         of a cell region.
6018 1998-08-25  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6020         * src/sheet.c (sheet_row_selection_changed,
6021         sheet_col_selection_changed): Use sheet_selection_clear_only to
6022         avoid getting two selections.
6023         (sheet_col_add): Keep track of the last used columns/rows.
6024         (set_tip_label): New routine to set the tooltip to the value of
6025         the current scroll section
6026         (vertical_scroll_change, horizontal_scroll_change): Update the
6027         tooltip to reflect the current value.
6028         (vertical_scroll_event, horizontal_scroll_event): Create and
6029         destroy the tooltips
6030         (sheet_col_add, sheet_row_add): Keep track of the maximum sheet size
6032         (sheet_delete_col): New public routine.
6033         (sheet_delete_row): New public routine.
6034         (sheet_move_column): New helper routine, it was part of
6035         sheet_insert_col before.
6036         (sheet_insert_row): Manipulate the structures carefully.  I was
6037         changing a list that I was using.
6039         * src/dialog-delete-cells.c (dialog_delete_cells): Use
6040         sheet_delete_col, sheet_delete_row.  This completes this dialog
6041         box.
6043 1998-08-24  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6045         * src/sheet.c (sheet_shift_row): Bug fix:  We cannot be making
6046         changes to the column/row lists when we are walking them.
6048         * src/cell.c (cell_formula_relocate): Re-parse the expression
6049         after relocating the formula: the resulting expression might have
6050         invalid cell references.
6052         * src/sheet.c (sheet_shift_col): Implement the column shift
6053         operation.
6055 1998-08-23  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6057         * src/dialog-cell-format.c (apply_align_format): Actually store
6058         the style selection on the computed style.
6060         * src/eval.c (intersects): Write in terms of range_contains.
6062         * src/utils.c (range_contains): New utility routine.
6064         * src/style.c (style_destroy): It now allow
6065         (style_merge_to): Implement new routine for gradually compute the
6066         full value of a style.
6067         (style_duplicate): Make the routine duplicate only
6068         the valid fields, not all of them.
6069         (style_destory): account for the fact that now we might have
6070         non-complete styles.
6071         (sheet_style_compute): Make it fully functional.
6073         * src/sheet.c (sheet_cell_formula_link,
6074         sheet_cell_formula_unlink): Now we maintain the dependencies at
6075         formula link/unlink time
6076         (sheet_shift_row, shift_insert_col, shift_insert_row): Compute the
6077         dependencies for any changed cells and recalculate.
6078         (sheet_style_attach): Implement.
6079         (sheet_destroy): Destroy the column and row information.
6081         * src/item-grid.c (context_insert_cmd): Use the
6082         dialog_insert_cells instead of the dummy test code we had before.
6084         * src/workbook.c (insert_cols_cmd, insert_rows_cmd): Implement.
6086 1998-08-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6088         * src/sheet.c (sheet_redraw_all): Redraw also the column and row
6089         bars.
6090         (sheet_insert_row): Fix.  I was accessing the wrong information;
6091         Fix, on the row selection code;
6092         (sheet_cell_add): Recompute the dimensions properly of the cell
6093         after insertion (this is to fit the use of this routine in a new
6094         context).
6095         (sheet_shift_row): Fix the
6097         * src/dialog-insert-cells.c (dialog_insert_cells): Learn to use
6098         GtkCauldroun's way of dealing with radio buttons.
6100         * src/sheet.c (sheet_selection_paste): Now the clipboard fills the
6101         region which is the union of the current selection and the
6102         information in the clipboard.
6104         * src/clipboard.c (clipboard_paste_region): Check the region where
6105         we pasted for possible dependencies, and if so, queue a recalc.
6106         (clipboard_paste_region): It now takes a region to be filled
6107         instead of just using the contents of the clipboard.
6109         * src/eval.c (search_cell_deps): Updated to search on cell ranges
6110         instead of a single cell.
6111         (region_get_dependencies): Get dependencies for a complete
6112         region.
6113         (cell_get_dependencies): Reworked to use new scheme
6115 1998-08-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6117         * src/dialog-insert-cells.c: New file.  Handle the insert cells
6118         dialog box.  This uses GtkCauldron for the first time.  That
6119         routine is soooo cool!
6121         * src/sheet.c (sheet_cell_remove): Remove the memory used by the
6122         key in the hashtable as well.
6123         (sheet_insert_col): new routine used to insert columns in the
6124         spreadsheet, it is pretty elaborate.
6125         (sheet_col_destroy, sheet_row_destroy): New routine used by the
6126         column-overflow logic in the insertion routines.
6127         (sheet_cell_add): Only attach a style to a cell if it does not
6128         have any yet.
6129         (sheet_move_row): New routine: shifts a row a number of columns.
6130         (sheet_verify_selection_simple): New routine for warnging about
6131         the multiple-selections case.  In the future it should provide a
6132         help context.
6133         (sheet_insert_row): Implement this new routine.
6135         * src/clipboard.c (paste_cell): Simplify.
6137         * src/cell.c (cell_make_value, cell_formula_relocate): New routines
6138         based on the code that was done for the clipboard.  Now they are
6139         used in other places as well.  cell_make_value actually fixes a
6140         potential bug that caused formulas to reappear magically on
6141         paste-values commands (never hit the bug, but it was there, I
6142         swear to god).
6144 1998-08-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6146         * src/gnumeric-sheet.c (gnumeric_sheet_set_cursor_bounds): New
6147         routine to set the cursor bounds.
6149         * src/sheet.c (sheet_selection_paste): Set the cursor and the
6150         selection to the new spot.
6152         * src/dialog-paste-specia.c: Move the dialog code here.
6154         * src/format.c (format_number): Do not abort after we have
6155         processed the whole format, but rather append the rest of the
6156         format string.
6157         (style_entry_free): Kill the warnings
6159 1998-08-20  Chris Lahey  <clahey@umich.edu>
6161         * src/style.h: Added StyleFormatEntry and changed StyleFormat.
6163         * src/format.c: Added multi-field formatting.  format_text now
6164         takes a StyleFormatEntry.
6166         (check_valid): Returns true if the given StyleFormatEntry is
6167         applicable to the given value.
6169 1998-08-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6171         * src/format.c (format_value): The new entry point for formating
6172         values.  This takes a Value instead of a float.
6173         NULL is never returned from format_value now: if there is a format
6174         error, then value_string is used to display it.
6176         (format_compile): This routine should always return, it cant fail,
6177         in the worst * case it should just downgrade to simplistic formatting.
6179         (format_destroy): This routine is invoked when the last user of
6180         the format is gone (ie, refcount has reached zero) just before the
6181         StyleFormat structure is actually released.  resources allocated
6182         in format_compile should be disposed here
6184         * src/sheet.c (sheet_cursor_set): New function.  Use this instead
6185         of the view-specific routine (gnumeric_cursor_set).
6187         * src/gnumeric-sheet.c (gnumeric_sheet_can_move_cursor): ':' is a
6188         valid separator for activating the cursor-cell selection mode.
6190         * src/cell.c (cell_auto_align): New function.  This tries to
6191         auto-align the cell contents depending on the value type.
6193         * src/dialog-cell-format.c (cell_properties_apply): Create a
6194         single style that is attached to a region and let each property
6195         page fill the structure in.
6196         (apply_align_format): Implement.  No wonder it was not working
6197         last night.
6198         (apply_number_formats): Fill the passed Style structure only.
6199         Remove obsolete code.
6201         * src/sheet.c (sheet_cell_new): New cells are born with auto-style
6202         flag turned on.
6204         * src/clipboard.c (paste_cell): Render the cell after computation
6205         is finished.  Clean up the usage of the cell manipulation;  make
6206         auto-style work on pasted cells.
6208         * src/str.c (string_ref): Return the value referenced.
6210         * src/item-cursor.c (item_cursor_do_drop): New function:  Handles
6211         the action from the cursor drag operation.
6213         * src/gnumeric-util.c (run_popup_menu): New utility function to
6214         popup menus created from an array of strings.
6216         * src/sheet.c (sheet_selection_cut, sheet_selection_copy): They
6217         now return whether it was possible to perform the operation.
6219 1998-08-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6221         * src/cell.c (cell_set_alignment): Provide a way to change the
6222         cell alignment.
6224         * src/dialog-cell-format.c (create_align_page): Implement the cell
6225         formats/alignment page.
6227         * src/item-cursor.c (item_cursor_realize): Add stypple support for
6228         drag and autofill cursors.
6230         * src/gnumeric-sheet.c (gnumeric_sheet_compute_visible_ranges):
6231         Make the selected column and row be always fully visible (ie, use
6232         the ->last_full_[col|row] instead of last_visible_[col|row].
6234         * src/cell.c (cell_set_format): Call cell_queue_redraw after
6235         changing the cell contents.
6237 1998-08-18  Chris Lahey  <clahey@jennifer.reshall.umich.edu>
6239         * src/format.c (format_number): Fixed the small '.' error.
6240         (decimal point shown even if not requested in numeric
6241         conversions.)
6243 1998-08-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6245         * src/eval.c (cell_eval): Use the formating routine now.
6247         * src/expr.c (value_format): Format a Value with a StyleFormat.
6249         * src/item-cursor.c (item_cursor_set_bounds_visibly): Force a
6250         canvas update after moving the selection.
6252         * src/sheet.c (sheet_selection_to_list): New function: generates a
6253         list of cells from the sheet->selections list.
6255         * src/style.c: Now styles have a "valid_flag" that has a bit
6256         turned on for those parts of the style that are actually used.
6257         This is required for adding the regions of style application in a
6258         Sheet.
6259         (style_destroy): destroy only those valid parts in a style.
6261         * src/dialog-cell-format.c: New file.   Implements the cell/format
6262         dialog box.
6264         * src/cell.c (cell_render_value): new routine used to render the
6265         cell->value into cell->text.
6266         (cell_queue_redraw): new routine to queue individual redraws of
6267         the screen.  I believe it is buggy, as the screen does not update
6268         after an apply in the cell/format dialog box.
6269         (cell_set_format): New routine to change the format of an existing
6270         cell.
6272         * src/format.c (format_number): Added color argument;  smaller
6273         fixes to use it within gnumeric.
6275         * src/main.c (main): Include i18n setup as per namsh's suggetion.
6277 1998-08-15  Chris Lahey  <clahey@umich.edu>
6279         * src/format.c: Merged format_text and format_date into
6280         format_number.
6281         Added parsing of am/pm.
6282         Added a short format description.
6284 1998-08-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6286         * src/item-cursor.c (item_cursor_drag_event): Make the drag cursor
6287         actually dragable.
6289         * src/item-grid.c (item_grid_event): Use the converted cordinates.
6290         (item_grid_find_row, item_grid_find_col): Rename and export these
6291         routines to be used by the ItemCursor.
6293         * src/gnumeric-sheet.c (gnumeric_sheet_key): Do not remove the
6294         selection string when the input has been accepted.
6296         * src/expr.c (expr_tree_ref): Strategy change:  Now every ExprTree
6297         node is properly refcounted, as soon we will start sharing parts
6298         of the ExprTree between cells.
6299         (do_expr_decode_tree): Decoding an expression now takes into
6300         account the precedence of the operators and uses paretheses only
6301         when they are actually required.
6303 1998-08-14  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6305         * src/item-grid.c (item_grid_event): Implemented context sensitive
6306         menu for the grid.
6307         (item_grid_event): Use <control> instead of <shift> for extending
6308         a selection
6310         * src/clipboard.c (clipboard_paste_region): After pasting, trigger
6311         a recalculation.
6313 1998-08-14  Jaka Mocnik  <jaka.mocnik@kiss.uni-lj.si>
6315         * src/clipboard.h: changed PASTE_ALL to PASTE_ALL_TYPES.
6316         * src/gnumeric-util.c (gtk_radio_group_get_selected):
6317         changed to work. I guess it is a bit weird trying to
6318         access a next member of an int ;).
6320 1998-08-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6322         * src/workbook.c (workbook_set_region_status): Support going to a
6323         cell by typing the cell name on the entry line.
6324         (workbook_parse_and_jump): new routine for jumpting to a specific
6325         cell.
6327         * src/dialog-goto-cell.c: New file.  Implements the goto cell
6328         dialog box.
6330         * src/clipboard.c: implemented paste-special dialog box.
6331         (clipboard_paste_region): Redraw after clearing and after each
6332         cell is pasted.
6334         * src/sheet.c (sheet_selection_changed_hook): Display the current
6335         selection.
6336         (sheet_selection_walk_step): Fix the movememnt code to walk
6337         correctly over the selection.
6339         * src/cell.c (cell_formula_changed): New function used to notify
6340         of a cell formula change (required for recomputation and to add
6341         the cells to the proper computation lists).
6343         * src/expr.c (expr_decode_tree): Goes from ExprTree to a string
6344         representation.  This is required when copying cell values to
6345         recompute the string that is displayed to the user.
6347         * src/util.c (cellref_name): New function, get a string
6348         representation for a CellRef.
6349         (parse_cell_name): New function, returns integers for col, row
6350         from a cell string representation.
6352 Thu Aug 13 19:08:28 1998  Tom Tromey  <tromey@cygnus.com>
6354         * src/xml-io.c: Look in gnome-xml for tree.h and parser.h.
6356 Thu Aug 13 00:02:23 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>
6358         * src/xml-io.c : adapated to the new version 0.2 of the xml lib
6360 1998-08-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6362         * src/fn-math.c (gnumeric_bin2dec): finish implementation of
6363         BIN2DEC
6365         * src/item-grid.c (item_grid_event): Call
6366         gnumeric_sheet_accept_pending_output before moving the cursor.
6368         * src/item-cursor.c (item_cursor_event): Event handler for the
6369         item_cursors.
6371         * src/item-cursor.h: More cursor types: ITEM_CURSOR_AUTOFILL (for
6372         the case where the small drag box is used) and ITEM_CURSOR_DRAG
6373         (for when the item is being dragged).
6375         * src/clipboard.c (clipboard_paste_region,
6376         clipboard_copy_cell_range): New functions for cut and paste
6377         support.
6379         * src/cell.c (cell_destroy, cell_copy): New functions.  Preparing
6380         for cut and paste support.
6382         * src/expr.c (value_copy_to): Finish implementing all cases.
6383         (value_duplicate): New function.  Duplicates a value.
6385         * src/sheet.c (sheet_cell_remove): Implement a way to remove
6386         cells.
6388         * src/eval.c (workbook_recalc): New recomputation strategy:  We
6389         now keep a generation flag for determining whenever a cell value
6390         has been recomputed for this generation.  The generation variable
6391         is a char.  Everytime we are about to overflow the char, we walk
6392         the list of formulas and reset the generation flag.
6394 1998-08-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6396         * src/eval.c (workbook_recalc): Queue computation for cells that
6397         have been recomputed.
6399         * src/expr.c (eval_expr): Implement the concatenation operator.
6401 1998-08-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6403         * src/expr.c (eval_expr): Implement comparission.
6405         * src/str.c (string_unref_ptr, string_unref): Remove the string
6406         from the string_hash_table when the refcount reaches zero.
6408         * src/symbol.c (symbol_unref): Remove the symbol from the hash
6409         table when the refcount reaches zero.
6411 1998-08-07  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6413         * src/gnumeric-sheet.c: Renamed all references to (GnumericSheet
6414         *) called "sheet" to "gsheet".
6416         * src/sheet.h: Renamed parent_workbook in to be workbook.
6418         * src/cell.h: Include a Sheet * in the cell.  Make routines that
6419         required a Sheet parameter only use the Cell parameter now.
6421         * src/eval.c (add_tree_deps, cell_add_dependencies,
6422         add_value_deps, dependency_hash_init, dependency_hash,
6423         dependency_equal): New functions to maintain the
6424         DependencyRanges.
6426         * src/fn-math.c
6427         (gnumeric_max): Implemented function MAX.
6428         (gnumeric_min): Implemented function MIN.
6430 1998-08-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6432         * src/expr.c (eval_expr): Implemented exponentiation.
6433         Removed the code that used GMP.
6435         * src/parser.y (yylex): Bug fix: allocate the string.
6437         * src/sheet.c (CRowSort): Sort in the other direction my list of
6438         cells.
6439         (sheet_cell_foreach_range): Iterate over the lists with ->next,
6440         not with ->data.   Important bug fix.
6442         * src/parser.y (return_cellref): Fix the cell parsing routine to
6443         store the correct information.
6445         * src/fn-math.c: Moved the math functions to this file.
6446         (gnumeric_sum): Make it use the new function_iterate_argument_values.
6447         (gnumeric_and): Implement AND function.
6448         (gnumeric_or):  Implement OR function.
6450         * src/func.c (function_iterate_argument_values): New function to
6451         ease the creation of functions with multiple arguments.  It
6452         generates Value * for a list of expressions that might include
6453         arrays and cell ranges.
6455         * src/expr.c (cell_get_col_row): New routine to get the absolute
6456         cordinates with respect to an evaluation column and row.
6458         * src/parser.y (return_symbol): Support for constants.
6460         * src/expr.c (value_copy_to): Support for making Value copies
6461         (only used for our constants actually).
6463         * src/symbol.c (init_constants): Declare TRUE and FALSE.
6465         * src/sheet.c (sheet_selection_changed_hook): Autocomputation
6466         routine.  Whenever selection changes this routine will execute an
6467         arbitrary expression (kept in the workbook) and display the
6468         result.
6470 1998-08-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6472         * src/expr.c (value_release): Release the value.
6473         (value_release): Add support for arrays.
6475         * src/symbol.c (g_strcase_hash): Use case insensitive hash tables.
6477         * src/item-bar.c (item_bar_unrealize): Call parent unrealize
6478         (item_bar_realize): Call parent realize
6480         * src/item-grid.c (item_bar_unrealize): Call parent unrealize
6481         (item_bar_realize): Call parent realize
6483         * src/item-cursor.c (item_bar_unrealize): Call parent unrealize
6484         (item_bar_realize): Call parent realize.
6485         (item_cursor_point): Implement correctly.
6487         * src/expr.c, parser.y (eval_expr): Added comparission operators.
6489         * src/fn-sheet.c (gnumeric_if):
6490         Implemented IF function.
6491         Implemented SELECTION function.
6493         * src/func.c (gnumeric_sum):
6494         Implement SUM function.
6496 1998-08-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6498         * src/expr.c (eval_funcall): No need for the extra argc
6499         parameter on the functions with strong prototypes.
6501         * src/func.c (gnumeric_cosh): More functions.
6503         * src/item-edit.c (item_edit_set_arg):
6505         * src/gnumeric-sheet.c (cancel_pending_input): Cancel changes
6506         made.
6507         (start_editing_at_cursor): Make a copy of the original text, and
6508         clear the actual text to fix the redraw problems.
6510         * src/item-edit.c (item_edit_set_editor): Make the cursor be in
6511         sync with the GtkEntry by hooking to the "event" signal and
6512         catching key press and key release events.
6514         * src/func.c: More functions added.
6516         * src/symbol.c (g_strcase_equal): Symbol hash table does is
6517         case-insensitive.
6519         * src/expr.c (eval_funcall): Added function evaluation.
6521 1998-08-03  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6523         * src/eval.c: New file.  Move the evaluation routines here.
6525         * src/func.c: Functions will go here.
6527         * src/parser.y (alloc_glist): Keep track of argument lists.
6529 1998-07-30  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6531         * src/sheet.c (canvas_bar_realized):
6532         * src/gnumeric-sheet.c (gnumeric_sheet_realize): Neat X hack:  set
6533         the window backing pixmap to NULL, so that the window does not get
6534         cleared when it receives an exposure event.  It will just leave
6535         whatever bits were on the window when the expose happened.  This
6536         allows us to avoid flicker.  *** MIGUEL, LOOK AT THIS ***
6538         * src/gnumeric-sheet.c (gnumeric_sheet_make_cell_visible): Fixed
6539         width/height confusion (cut&paste bug).
6541         * src/sheet.c (new_canvas_bar): Set outrageously big scrolling
6542         limits.  This has to be fixed to use the real sheet's dimensions.
6543         (sheet_new): Use correct table expansion parameters.
6545         * src/sheet.c (sheet_set_zoom_factor): Use gnome_canvas_scroll_to().
6547         * src/gnumeric-sheet.c (gnumeric_sheet_set_top_row): Scroll using
6548         gnome_canvas_scroll_to().
6549         (gnumeric_sheet_set_top_col): Likewise.
6550         (gnumeric_sheet_make_cell_visible): Get the offsets using
6551         gnome_canvas_get_scroll_offsets().
6552         (gnumeric_sheet_make_cell_visible): Use gnome_canvas_scroll_to().
6554         * src/gnumeric-sheet.c (gnumeric_sheet_color_alloc): Query the
6555         colormap with gtkdget_get_colormap(), because the canvas structure
6556         no longer has a colormap field in it.
6557         (gnumeric_sheet_set_top_row): Use the canvas layout adjustment to
6558         scroll.
6559         (gnumeric_sheet_set_top_col): Use the canvas layout adjustment to
6560         scroll.
6561         (gnumeric_sheet_make_cell_visible): Get the values from the canvas
6562         adjustments.
6564         * src/sheet.c (new_canvas_bar): Call gnome_canvas_new() correctly.
6565         (scroll_to): New helper function to scroll a canvas.
6566         (sheet_set_zoom_factor): Use scroll_to().
6568         * src/gnumeric-sheet.c (gnumeric_sheet_create): Do not call
6569         gnome_canvas_construct() at is does not exist anymore.
6570         (gnumeric_sheet_new): Use outrageously big values for the canvas
6571         scrolling region, for now.  This needs to be fixed.
6572         (gnumeric_sheet_make_cell_visible): Use the canvas layout
6573         adjustment to scroll.
6575 1998-07-30    <miguel@nuclecu.unam.mx>
6577         * src/parser.y (alloc_clean): Free the record that tracks the
6578         allocation records.
6579         (alloc_clean): Handle Strings.
6580         (alloc_list_free): New function: cleans up the allocation list.
6582         * src/gnumeric-sheet.c (gnumeric_sheet_load_cell_val): Fix to use
6583         the new Strings.
6585         * src/cell.h: Use the new Strings instead of the Symbols.  That
6586         was just a stupid idea.
6588         * src/str.c (string_ref): New file:  Implements string sharing.
6590         * src/symbol.c (symbol_install): Use our copy of the allocated key
6591         when installing the symbol.
6593 1998-07-29    <miguel@nuclecu.unam.mx>
6595         * src/symbol.c (symbol_unref_ptr): New function that does symbol
6596         unreferencing and if the reference count reaches zero, it also
6597         sets the value pointed to NULL.
6599         * src/sheet.c (cell_set_text): Release evaluation tree after
6600         entering new contents in a cell.
6602         * src/sheet.h (Cell): We now keep all of the character information
6603         as refcounted Symbols.
6605         * src/expr.c (eval_node_release): Renamed and made static.  New
6606         allocation strategy: EvalTree's top node are now refcounted to
6607         simplify cell duplication.
6608         (eval_expr): Now it takes column and row arguments for evaluating
6609         the expression in that context.
6610         (expr_parse_string): Same.
6612         * src/parser.y: Renamed EvalNode to EvalTree.
6613         (return_cellref): CellRefs now contain offsets relative to the
6614         current column/row if the references are not absolute.
6616         * src/gnumeric-sheet.c (gnumeric_sheet_make_cell_visible): Use new
6617         helper routines for doing the scrolling.  Scroll vertically.
6618         (gnumeric_sheet_set_top_row, gnumeric_sheet_set_top_col): New
6619         routines for keeping the contents of the canvas and the bars in
6620         sync.
6621         (gnumeric_sheet_new): Take the ItemBars for the columns and rows
6622         as a parameter now.
6624         * src/sheet.c (sheet_select_all): New routine: select the complete spreadsheet.
6626         * src/item-bar.c (item_bar_class_init): Signal now takes an extra
6627         argument which indicates the beginning of a column selection.
6629         * src/sheet.c (sheet_selection_col_extend_to,
6630         sheet_selection_row_extend_to): New methods for implementing the
6631         extending column and row selection.
6632         (sheet_row_selection_changed, sheet_col_selection_changed): Now
6633         they use the new parameter to start the selection.
6635 1998-07-28    <miguel@nuclecu.unam.mx>
6637         * src/sheet.c (sheet_cell_new): Insert the row, not the cell in
6638         the column list.
6639         (sheet_cell_foreach_range): Fixety fix
6641 1998-07-27    <miguel@nuclecu.unam.mx>
6643         * src/sheet.c (sheet_cell_new): Cells are born with their propper
6644         width.
6645         (cell_set_text): Width should include the margins.
6647         * src/main.c (main): Rename currentWorkbook to current_workbook,
6648         so that it follows the style of the rest of my code ;-)
6650         * src/item-cursor.c (item_cursor_init): Add a timeout handler for
6651         drawing the anted animation.
6652         (item_cursor_set_bounds): Setup the Canvas Item bounding box when
6653         the bounds of the cursor change.
6655         * src/gnumeric-sheet.c (start_cell_selection): Create the
6656         selection cursor at the same position the regular cursor is.
6658         (gnumeric_sheet_init): Share colors between items and the canvas.
6660 Sun Jul 26 17:39:53 EDT 1998  Daniel Veillard <Daniel.Veillard@w3.org>
6662         * configure.in: added GNOME_XML_CHECK
6664         * src/Makefile.am: added xml-io.c to GNUMERIC_BASE_SOURCES and
6665           GNOME_XML_LIB to gnumeric_LDADD and test_parser_LDADD
6667         * src/xml-io.[ch]: Added, provides saving to XML format
6669         * src/main.c: added currentWorkbook global variable
6671         * sheet.h: added currentWorkbook global variable
6673         * workbook.c: added currentWorkbook global variable, a Save menu with
6674           save_cmd callback.
6676         * src/sheet.c: cell_set_text, initialized is_float to zero
6678         * doc/saving.txt: Added, what to be saved and first example.
6680 1998-07-25  Miguel de Icaza  <miguel@redhat.com>
6682         * src/item-cursor.c (item_cursor_draw): Minimal code to support
6683         the anted-cursor.  There is a bug, I just dont know where :-)
6685         * src/gnumeric-sheet.c (gnumeric_sheet_key): Added support for
6686         selecting cell values with the cursor keys.
6687         (start_cell_selection): Starts the interactive selection of a cell
6688         (stop_cell_selection): Stops the interactive selection of a cell.
6689         (selection_remove_selection_string): Removes the text that has
6690         been inserted into the text line for selection purposes.
6691         (selection_insert_selection_string): Updates the entry with the
6692         contents of the selection range.
6693         (selection_expand_vertical, selection_expand_horizontal): Expands
6694         the selection.
6696         * src/item-cursor.h (item_cursor_set_bounds): Change prototype to
6697         reflect actual argument names.  I was a victim of my own lazyness.
6699         * src/gnumeric-sheet.c (move_cursor_vertical, move_cursor,
6700         move_cursor_horizontal): Renamed to allow formatting in 80
6701         columns.
6703         * src/utils.c (cell_name): New routine.  Renders a cell name.
6705         * src/sheet.h (IS_SHEET): Added a signature to Sheet strucutres
6706         and a signature to test with.
6708         * src/symbol.c (symbol_ref_string): New function: it makes sure a
6709         symbol exists: it either increases the refcount for an existing
6710         string, or creates it.
6712 1998-07-24    Miguel de Icaza <miguel@redhat.com>
6714         * src/workbook.c (workbook_get_current_sheet): New function.
6716         * src/sheet.c (cell_set_formula): New function.  Loads a cell with
6717         a formula.
6719         * src/parser.y (eval_value_string): New routine to return a string
6720         representation of a Value *.  This should use the format.c that
6721         Chris is working on, but we need Chris to commit his changes ;-).
6722         For now it uses %d and %g.
6724         * src/numbers.h: Compatibility functions to make the code work
6725         with or without GMP.
6727         * src/gnumeric-sheet.c (gnumeric_sheet_set_current_value): Sets
6728         the value to whatever happens to be on the input line.
6730         * src/expr.c (eval_cast_to_float): New function: casts a value to
6731         float.
6732         (eval_cell_value): new function.
6733         (eval_node_value): evaluates the expression tree.
6735         * src/cell.h: Keep the computed value as well.
6737 Sat Jul 25 14:10:23 1998  Tom Tromey  <tromey@cygnus.com>
6739         * src/Makefile.am (test_parser_LDADD): Added INTLLIBS.
6740         (test_format_LDADD): Likewise.
6741         (check_PROGRAMS): Renamed from noinst_PROGRAMS.
6743         * src/format.c (do_roundup): Renamed from roundup (my Linux
6744         install has a 2-argument `roundup' macro in sys/types.h).  Now
6745         static.
6747 1998-07-25  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>
6749         * configure.in (ALL_LINGUAS): Added "pt".
6751 1998-07-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6753         * src/parser.y (yylex): Numbers are parsed correctly.  Bits of
6754         Oleo number parsing plugged in.
6756         * src/util.c, src/util.h: New files with assorted number utilities.
6758         * src/numbers.h: New file: takes care of using gmp or regular
6759         double/int.
6761         * src/expr.c (eval_release_node): Implement.
6762         (eval_release_value): New function.
6764         * src/sheet.c (sheet_col_selection_changed,
6765         sheet_row_selection_changed): Implement.
6766         (sheet_selection_clear, sheet_selection_clear_only): Splitted
6767         functionality into two routines.
6768         (sheet_selection_clear_only): Remove any marks from the bars.
6769         (sheet_row_set_selection, sheet_col_set_selection): Implement.
6771         * src/item-bar.c (is_pointer_on_division): Return the column
6772         changed.
6774         * src/item-grid.c (item_grid_draw_cell): Fix the computation for
6775         right indentation.
6777 1998-07-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6779         * src/gnumeric-sheet.c (gnumeric_sheet_key): Add support for
6780         keyboard-selection.
6782         * src/item-edit.c (item_edit_destroy): Request a repaint for every
6783         area we touched at destruction time.
6785         * src/sheet.c (sheet_redraw_cell_region, sheet_redraw_selection):
6786         New functions to request that only a specific range of cells be
6787         redrawn.
6788         (sheet_selection_extend_vertical,
6789         sheet_selection_extend_horizontal): new routines to deal with
6790         mouse selection.
6791         Use those functions all over sheet.c
6793 1998-07-19  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6795         * src/gnumeric-sheet.c src/item-bar.c src/sheet.c: Removed the
6796         canvas parameter from calls to gnome_canvas_item_new().
6798 1998-07-18  Raja R Harinath  <harinath@cs.umn.edu>
6800         * src/Makefile.am (noinst_PROGRAMS): Don't bother installing
6801         `test-format' and `test-token'.
6803 1998-07-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6805         * src/gnumeric-sheet.c (gnumeric_sheet_cursor_set): Add tracking.
6807         * src/sheet.c (sheet_destroy): Add destructor.
6808         (sheet_selection_append): New functions for managing the cell
6809         selection.
6811         * src/style.c (style_destroy): Add destructor.
6813 1998-07-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6815         * src/item-edit.c: New file.  Adds the editing widget to the
6816         spreadsheet.
6818 1998-07-15  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6820         * src/item-bar.c (item_bar_event): Use
6821         gnome_canvas_item_grab/ungrab() now that they exist.
6823 1998-07-14  Federico Mena Quintero  <federico@nuclecu.unam.mx>
6825         * src/item-bar.c (item_bar_realize): Set the item_bar->gc's
6826         foreground color to black (it is by default initialized to pixel
6827         value 0, which is not black on all default colormaps).
6828         (bar_draw_cell): Center the cell's text correctly.
6830         * src/gnumeric-sheet.c (gnumeric_sheet_create): Use
6831         gnome_canvas_construct() to initialize the canvas.
6833         * src/item-bar.c (get_col_name): Fixed generation of column names.
6834         (get_row_name): Rows are numbered from 1, not 0.  Also, assert
6835         that the row number is less than 65536.
6836         (item_bar_event): Grab/ungrab the mouse on button press/release.
6837         (item_bar_event): On motion_notify, only call set_cursor() if we
6838         are not resizing.
6839         (item_bar_event): Only take care of enter_notify events if we are
6840         not resizing.
6842         * po/es.po configure.in: Added Spanish translation.
6844 1998-07-12  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6846         * src/item-bar.c (item_bar_event): Do world->canvas cordinate
6847         conversion to get zoomed resizng working).
6848         (bar_draw_cell): Minor look fix.
6850         * src/sheet.c (sheet_row_set_height): Silly mistake, add the newly
6851         created rowinfo to the row array, not the column array.
6853 1998-07-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6855         * src/style.c (style_duplicate): New function.  Does style
6856         duplication.
6858         * src/sheet.c (sheet_new): Simple hook signals to test the code.
6860         * src/item-bar.c (item_bar_class_init): Added signals:
6861         size_changed and selection_changed.
6862         (item_bar_event): Add support for resizing columns and rows.
6864 1998-07-10  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6866         * src/style.c: New file.  Implement the style manager for the
6867         spreadsheet.
6869 1998-07-09  Miguel de Icaza  <miguel@nuclecu.unam.mx>
6871         * src/*: Dropped the ColInfo and RowInfo structures, they are now
6872         unified into a single ColRowInfo structure, they were really the
6873         same thing.  Thanks to Federico for the suggestion.
6875         * src/item-grid.c:
6876         New paint strategy for the grid (uses what apparently Excel does);
6877         It now correctly uses the coordinate system from the canvas (ie,
6878         zoom in and zoom out work);
6880         * src/item-cursor.c: Implemented new version of the cursor.  I am
6881         using black lines for the cursor.  One day, when I find the
6882         strenght, I will use inversion and the inversion will do the right
6883         thing.
6885         * src/item-bar.c: New file.  Implements the titles for the columns
6886         and rows;
6888         * src/*: made stuff fit together.
6890 1998-07-06  Raja R Harinath  <harinath@cs.umn.edu>
6892         * configure.in: Remove duplicated AM_GNU_GETTEXT.
6894 Sat Jul  4 15:07:49 PDT 1998 Manish Singh <yosh@gimp.org>
6896         * fixed up intl autoconf stuff
6898 1998-07-04  Chris Lahey  <clahey@umich.edu>
6900         * src/Makefile.am (bin_PROGRAMS): Added test-format to compile the
6901         formatting tests.
6903         * src/format.c (format_time): Added date formatting.
6904         (format_text): More accurate numeric formatting.
6906 1998-07-03  Chris Lahey  <clahey@umich.edu>
6908         * src/format.c: New file to do excel style number formatting.
6910 1998-07-03  Chris Lahey  <clahey@umich.edu>
6912         * ChangeLog: Cleared the gnome-games entries from the ChangeLog.