1. 29 Sep, 1998 4 commits
    • Arturo Espinosa's avatar
    • Miguel de Icaza's avatar
      Changed the formatting of it to be like the rest of Gnumeric. · ef54b95e
      Miguel de Icaza authored
      1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/xml-io.c: Changed the formatting of it to be like the rest
      	of Gnumeric.
      	* src/fn-math.c, src/fn-date.c: Simplify routines to use
      	value_float and value_int.
      	* src/expr.c (value_float, value_int): New utility functions to
      	create values of type integer and float.
      	* src/sheet.c (sheet_set_text): Use the matching engine on entered text
      	* src/cell.c (cell_set_text_simple): New function.  Does not queue
      	cell computations nor queue any redraws
      	(cell_content_changed): New function: Queues recomputations for
      	cells that depend on the contents of the argument.
      	(cell_set_format_simple): New routine, like cell_set_format but
      	does not render the value nor queues a redraw.
      	* src/xml-io.c: Use workbook_recalc_all instead of workbook_recalc
      	* src/fn-math.c (gnumeric_log10, gnumeric_log, gnumeric_log2):
      	Range check fix was wrong.  The valid range does not include
      	zero.  Thanks to Morten Welinder for noticing this.
      	(gnumeric_cosh): Call cosh, not cos.
      	Reordered this file to have the help always before the function
      	that defines it.
      	(callback_function_or): Bug fix: any non-zero value is considered
      	to be TRUE.
      	(gnumeric_fact): Use exp (lgamma (n+1)) to compute large
      	factorials (this only applies to factorials over 40).
      	* src/about.c (dialog_about): Stop using gnome_dialog_set_modal.
    • Tom Dyas's avatar
      s/python/perl/g · 94b39045
      Tom Dyas authored
    • Miguel de Icaza's avatar
      New: · f4929ca6
      Miguel de Icaza authored
      	- Excel-like magic on strings works.  This means that everytime
      	  a string appears in an expression, it will be tried to match
      	  against all of the stock formating codes in Gnumeric to see
      	  if there is a match (basically, the inverse to format.c).
      	  If there is one, then the input is converted to a float using
      	  the format rules and the format for the cell is set to the
      	  matching format.
      	  This basically means, you can do stuff like:
      		="1/1/1997"+200 and get "7/20/1997"
      	  It also works for hours and also lets you input in your own
      	  language (if the locale provides proper translation), ie,
      	  you can input:
      		="15 pesos" + 10
      	  And get the result.
      	- Made another autogen.sh hack to shutup the noisy libtool during
      	  final link stage.
      	- Abbreviated months and days now include an asterisk at the
      	  beginning to let translators provide unambiguated strings
      	  (like, may->may).
      Full ChangeLogs:
      1998-09-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/fn-date.c (gnumeric_now, gnumeric_date, gnumeric_today):
      	Note that jannuary 1st is day 1, not day zero.
      	* src/format.c (append_month): Fixed handling: tm_mon is zero based.
      	(split_time): Fixed silly mistake I did last time I looked at this code
      	* src/cell.c (cell_set_formula): Try to set the cell style if the
      	style is General.
      	* src/parser.y (return_symbol): Try to match the input with the
      	format matching engine.
      	* autogen.sh (PKG_NAME): Another hack to get rid of the annoying
      	extracing symbols list, which, slows down my link time :-)
      1998-09-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/number-match.c (compute_value): New file:  Implements a
      	smart way of parsing numbers:  From all of the registered formats,
      	it creates regexps for matching at the time the user inputs data.
      	If that data matches any of the regexps, then the input is
      	converted into a float, and a display format is assigned to it.
      	* src/format.c (append_day, append_month): Skip the -now included-
      	start at the begining for internationalization purposes.
      	(split_time): Fixed the hour and second renddering.
      	(format_number): Fix:  hour_seen was not being set.
      	* src/sheet-autofill.c (matches_list): Allow the lists to include
      	an asterisk to be able to distinguish between abbreviations and
      	full descriptions.
  2. 28 Sep, 1998 2 commits
  3. 27 Sep, 1998 5 commits
  4. 26 Sep, 1998 4 commits
  5. 23 Sep, 1998 1 commit
  6. 22 Sep, 1998 3 commits
  7. 21 Sep, 1998 2 commits
    • Adrian Likins's avatar
      *src/fn-math.c: first stab at fleshing out the help blurbs here. -adrian · fea6e072
      Adrian Likins authored
      1998-09-21  Adrian Likins <adrian@gimp.org>
              *src/fn-math.c: first stab at fleshing out the help
      	        blurbs here.
    • Miguel de Icaza's avatar
      When decoding a tree, include the argument separator. Also, loop properly · 70717960
      Miguel de Icaza authored
      1998-09-21  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/expr.c (do_expr_decode_tree): When decoding a tree, include
      	the argument separator.  Also, loop properly trough the arguments
      	being decoded.
      	(function_call_with_values, function_def_call_with_values): New
      	functions: these ones are for the plugins so that a plugin can
      	invoke other functions in Gnumeric.
      	* src/fn-date.c (gnumeric_now): The serial number returned by
      	NOW() should be relative to 1900/1/1, not year zero.
      1998-09-20  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/expr.c (eval_expr): Fix the way we computed expressions.
      	* src/eval.c (cell_eval): Maintain a CELL_ERROR flag to know if
      	the value is NULL due to an error or to the cell not being
      	* src/expr.c (funcion_call_with_values): Add a routine to allow
      	plugins to call other functions defined in Gnumeric.
      	* src/style.c: Handle the pattern property of the styles.
      	* src/style.h: Pattern style is now just a 4 bit quantity, instead
      	of a RefCounted structure.
      	* src/plugin.c: Include gnumeric-util.h
  8. 19 Sep, 1998 3 commits
    • Miguel de Icaza's avatar
      New file, implements various date and time manipulation routines. · 0dc16b15
      Miguel de Icaza authored
      1998-09-19  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/fn-date.c: New file, implements various date and time
      	manipulation routines.
      	* src/main.c: Accept --dump-func-defs flag to dump the help
      	available for our built in functions.
      	* src/symbol.c: Export the symbol hash table.
    • Arturo Espinosa's avatar
      Laptop sync -mig · a048126f
      Arturo Espinosa authored
    • Miguel de Icaza's avatar
      Accept pending input when the user autofills. · e711a2da
      Miguel de Icaza authored
      1998-09-18  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/item-cursor.c (item_cursor_autofill_event): Accept pending
      	input when the user autofills.
      	* README, Doc/Design: Updated
      	* configure.in: autoconf tests for python.
      	* src/sheet-autofill.c (sheet_autofill_dir): Only fill the region
      	we were requested.
  9. 18 Sep, 1998 5 commits
    • Tom Dyas's avatar
      Actually make multiple functions work. Support converting Python strings · a8b53eec
      Tom Dyas authored
      into gnumeric string values.
    • Tom Dyas's avatar
    • Tom Dyas's avatar
      Update to the new plugin API. · 1cb2421e
      Tom Dyas authored
      1998-09-17  Tom Dyas  <tdyas@vger.rutgers.edu>
              * plugins/sample/plugin-sample.c: Update to the new plugin API.
              * src/plugin.c (plugin_load,plugin_unload): Replaced g_print's
              with gnumeric_notice. Call new API function "can_unload" to see if
              a plugin is still in use.
              * src/plugin.h: New API function "can_unload". Removed refcount.
    • Tom Dyas's avatar
      Support for multiple Python-based functions has been installed. From · aca945d0
      Tom Dyas authored
      Python, do something like:
      import gnumeric
      # Simple function to add two numbers.
      def foobar(a,b):
        return a + b
      gnumeric.register_function("adder", "ff", foobar)
      Use Makefile.temp to compile the plugin for now until detection of Python
      path is put into configure.in. Python code will be
      loaded from ~/.gnumeric/main.py so stick the above Python code snippet
      in that file to see it run.
    • Miguel de Icaza's avatar
      If there is a selection of columns or rows, change the sizes of all of the · f8ea4ab6
      Miguel de Icaza authored
      1998-09-17  Miguel de Icaza  <miguel@nuclecu.unam.mx>
      	* src/sheet-view.c (sheet_view_row_size_changed,
      	sheet_view_col_size_changed): If there is a selection of columns
      	or rows, change the sizes of all of the columns.
      	* src/sheet.c (sheet_row_get_distance, sheet_col_get_distance):
      	optimized to be O(n) instead of O(n^2) using
      	(col_row_distance): new routine to compute distances.
      	* src/sheet-view.c (sheet_view_redraw_cell_region): Add the
      	scrolling offset to the x and y positions to draw properly
      	* src/xml-io.c (readXmlSheet): Call sheet_set_zoom_factor to
      	initialize the ->pixels field.
  10. 14 Sep, 1998 2 commits
  11. 10 Sep, 1998 1 commit
  12. 05 Sep, 1998 1 commit
  13. 03 Sep, 1998 2 commits
  14. 12 Aug, 1998 1 commit
  15. 08 Aug, 1998 1 commit
    • Arturo Espinosa's avatar
      Today it probably does not compile, but I have to leave now. · 6b09bc61
      Arturo Espinosa authored
      Today it probably does not compile, but I have to leave now.
      This is basically the framework for getting computations working.
      My current approach is to register areas of interest for a cell.
      This is not perfect, but good enough:
      	The idea is to walk the expression tree and look for
      	cell references (cell references or ranges) and register
      	those areas of "interest" for a cell.
      	When a new text is entered into a cell, the "regions" of
      	interest list is checked and if a match is found, then
      	the cells on that region of interest are queued for
      Of course, I do not know yet how to handle the recursive references.
      One option is to keep a counter (that starts at zero) during
      recomputation, ie something like:
      eval_cell (Cell *cell)
      	if (cell->use_count > threshold)
      		return "Cycle too depth";
      	on value lookup:
      		eval_cell (cell);
  16. 07 Aug, 1998 1 commit