2000-03-24  Jody Goldberg <jgoldberg@home.com>

	* *.[ch] : Update copywrite years.

	* ms-obj.c (ms_read_OBJ) : improve debug output.
	(ms_obj_read_biff8_obj) : Try a new heuristic for dealing with trailing IMDATA.

2000-03-23  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_xf_data_new) : Support horizontal alignment
	  center_across_selection.

	* ms-excel-write.c (halign_to_excel) : Ditto.

	* ms-obj.c (object_anchor_to_position) : remove some debug code.

2000-03-23  Jon K Hellan  <hellan@acm.org>

	* boot.c (excel_load): No longer add ".gnumeric" to filename. Set
	save info. Tag filename as MANUAL. We could make it AUTO soon.
	(excel_init): Tag saver as MANUAL.

2000-03-22  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_xf_data_new) : Add some warnings for
	  unsupported rotated text.

2000-03-21  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-util.c (init_xl_font_widths) : Add Geneva.

	* ms-excel-read.c (biff_xf_data_new) : Have the horizontal alignment
	  type center_across_selection default to 'center' instead.
	(ms_excel_read_workbook) : Be more explicit about NOT supporting 1904
	  dates as yet.

2000-03-14  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_xf_data_new) : Remove warning about parent
	  styles not == 0.  I finally understand what the semantics of this
	  are.  Style 0 is 'Normal' this test was doing nothing accept
	  discriminating agains 'Comma' and its friends.  We need to extend
	  the gnumeric notion of styles to include the limited form of
	  inheritance embodied by XL.

	* ms-obj.c (object_anchor_to_position) : Be VERY careful.

2000-03-13  Jody Goldberg <jgoldberg@home.com>

	* ms-obj.c (object_anchor_to_position) : Be more careful handling out
	  of bounds conditions.  Part of bug 7312.

2000-03-09  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_get_style_from_xf) : Tweak colour
	  selection for contrasting colours.  FIXME : We really need to find
	  something more definative than this guess work.

	* ms-excel-read.c (ms_excel_read_selection) : Do not reset the
	  edit cursor.  It needs more work to be correct.

2000-03-09  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-util.[ch] (lookup_font_base_char_width) : Delete.

	* ms-excel-read.c (ms_excel_get_style_from_xf) : Adjust bottom and
	  right borders to be top & left of neighbouring cells.
	(ms_excel_set_xf) : Ditto.
	(ms_excel_set_xf_segment) : Ditto.

2000-03-05  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (lookup_base_char_width_for_write): Rename to
	init_base_char_width_for_write. Init width and default width.
	(get_base_char_width): Add is_default parameter.
	(write_colinfo, write_default_col_width): Use it.

	* ms-excel-write.h (struct _ExcelSheet): Add base_char_width_default.

	* ms-excel-write.c (excel_font_to_string, excel_font_new,
	excel_font_hash, excel_font_equal, write_font): Handle underline,
	strikethrough.

	* ms-excel-write.h (struct _ExcelFont): Ditto

2000-03-05  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_get_style_from_xf) : enable strikethrough.

2000-03-01  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_font_data_new) : Fix old typo.

2000-02-29  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_get_style_from_xf) : Add support for
	  importing underlines.

2000-02-18  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_get_style_from_xf) : Hard code 'auto'
	  border colours to black for now.  We are not guessing well.

2000-02-15  Jody Goldberg <jgoldberg@home.com>

	* ms-obj.c (object_anchor_to_position) : Improve debug output.

	* ms-excel-read.c (ms_excel_sheet_new) : Add new member base_char_width_default.
	(print_font_mapping_debug_info) : Delete.
	(lookup_base_char_width_for_read) : Rename init_base_char_width_for_read,
	  and use lookup_font_base_char_width_new to init the width and the
	  default_width.
	(get_base_char_width) : Adjust.
	(ms_excel_read_colinfo) : Width is different from default_width...  Idiots!
	(ms_excel_read_default_col_width) : Ditto.

	* ms-excel-util.c : Add lookup tables for various standard widths of
	  MS fonts.  Use a quick and dirty linear scaling to calculate the
	  widths of arbitrary font sizes.

2000-02-14  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_row) : heights are specified
	  including margins and 1 grid line.  Do not use get_units_net_of_margins.
	(get_units_net_of_margins) : Delete.

2000-02-13  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_workbook) : Adjust WINDOW size
	  measurements from points to pixels.

2000-02-12  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_default_col_width) : Margins are
	  internal now.
	(ms_excel_read_default_row_height) : Ditto.
	(ms_excel_read_colinfo) : Ditto.
	(ms_excel_read_row) : Adjust to changes in margins and step closer to
	  handling think margins.

	* ms-excel-write.c (write_rowinfo) : Use the size_pts member directly.
	(write_colinfos) :

	* ms-obj.c (object_anchor_to_position) : Adjust to name and semantic
	  changes of size_pixels.  Denominate things in pixels.

2000-02-06  Michael Meeks  <michael@helixcode.com>

	* ms-excel-read.c (ms_excel_read_workbook): Move failed sheet removal
	here + add pristine culling instead of 0 byte in sheet header, may
	introduce bugs but will help fix sheet_is_pristine. Fix potential
	sheet object leak. (ms_excel_read_sheet): do not detach in error case.

2000-01-30  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (write_sheet): Correct the max no. of rows check.

2000-01-29  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_workbook) : Correct the error
	  handling.

2000-01-29  Jon K Hellan  <hellan@acm.org>

	Megacommit.

	The purpose of the changeset is twofold:

	1. Use CommandContexts for error reporting for file read/save.
	2. This allows us to let FileFormatOpen return 0 on success, -1 on
	   failure, same as FileFormatSave. The convention to return NULL
	   on success was highly ideosyncratic.

	* excel.h (ms_excel_read_workbook, ms_excel_write_workbook) Add
	CommandContext. Return int.

	* ms-excel-read.c (ms_excel_read_workbook): Add
	CommandContext. Return 0 on success, -1 on failure. Use
	gnumeric_error_read to display messages.

	* ms-excel-write.c (write_sheet): Check max no. of rows for the
	format.
	(new_sheet): Return the ExcelSheet. Let caller add it to
	wb->sheets.
	(pre_pass): Add CommandContext.
	(free_workbook): New function, previously in write_workbook.
	(write_workbook): Change parameter from Workbook to ExcelWorkbook.
	Move deallocation to free_workbook.
	(check_sheet): New function. Check if we are able to save the
	sheet.
	(ms_excel_check_write): New function. Check if we are able to save
	to the file. Do initialization previously in
	ms_excel_write_workbook.
	(ms_excel_write_workbook): Add CommandContext. Add state. Change
	wb from Workbook to ExcelWorkbook. Use gnumeric_error_save to
	report problems. Return 0 on success, -1 on failure.

	* ms-excel-biff.h: Define enum for max no. of rows. Fix typo.

	* boot.c (excel_load, excel_save, excel_save_98, excel_save_95):
	Add CommandContext.
	(excel_load): Return 0 on success, -1 on failure.
	Use gnumeric_error_read to display messages. Remove "Opening .. "
	message on stdout.
	(excel_probe_write): New function. Check if we are able to save to
	the file.
	(excel_save): Use gnumeric_error_save to display messages.
	Return 0 on success, -1 on failure.

2000-01-18  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-read.c (ms_excel_parse_formula) : Add OPER_UNARY_PLUS.

	* ms-formula-write.c (write_node) : Ditto.

	* ms-excel-read.c (get_units_net_of_margins) : Return 1 when faced
	  with < 0 sized things.
	(ms_excel_read_row) : Support hidden rows.
	(ms_excel_read_colinfo) : Support hidden columns.

2000-01-17  Frank Chiulli  <fc-linux@home.com>

	* ms-summary.c (ms_summary_write): Turn on writing out the 
	  DocumentSummaryInformation stream.

2000-01-17  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-write.c : Remove unused xml includes.

2000-01-17  Jody Goldberg <jgoldberg@home.com>

	* ms-chart.c (ms_excel_chart) : Apparently BIFF_NUMBER records show up
	  in charts.

	* ms-excel-read.c (ms_excel_read_workbook) : Improve sizing of
	  window, Use the support for some of the new preferences
	  hiding scrollbars, and notebooktabs.

	* ms-excel-read.c (ms_excel_read_sheet) : Use support for
	  hidden grid lines, hidden formulas, hidden zeros, hidden
	  row/col headers.  Use the information on where the upper left
	  corner is.

2000-01-14  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.h: (ExcelWorkbook): Make
	sheet->cells an array of arrays.

	* ms-excel-write.c (excel_cell_get): Make inline.
	(excel_cell_get, new_sheet, new_sheet, free_sheet): Make
	sheet->cells an array of arrays.

2000-01-13  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_workbook) : Move magic scale hack
	  into a single #define.  Use workbook_view_set_size.

2000-01-10  Jody Goldberg <jgoldberg@home.com>

	* ms-obj.c (ms_read_TXO) : Return the string generated rather than
	  leaking it.
	(ms_read_OBJ) : Don't warn about comments, they are not sheet objects
	  which breaks the whole function of this routine but they are not
	  unexpected.  If we can figur eout how to store the string associated
	  with the TXO nearby with this object and get that cleaned up on
	  time and referencable by obj-ID then we can fix comment import.

	* ms-excel-read.c (ms_excel_read_sheet) : Improve handling for
	  WINDOW1 and warn about more unsupported cases.  Tweak zoom factor
	  by 1.4 to be less ugly. (ICK !  HACK!)
	(ms_excel_read_workbook) : WINDOW2 is a sheet level
	  descriptor.  Add handle for WINDOW1.
	(ms_excel_sheet_new) : ICK!  hard code a scale
	  factor of 1.4 to get things to be less ugly.

2000-01-05  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (write_colinfos): Fix off by one error.
	(write_sheet_bools): Ditto.

2000-01-03  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_sheet) : extend support for WINDOW2.
	(ms_excel_read_selection) : Remove hack to set visible location.

1999-12-30  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_workbook_new) : Return error messages.
	(ms_excel_read_workbook) : If a file is password protected do NOT
	  attempt to read it.

	* boot.c (excel_load) : return error messages.

1999-12-23  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (write_bits): Use "The Free Software
	Foundation" as name.

	* excel.h (WRITEACCESS_LEN): Define it.

1999-12-21  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (write_index, write_db_cell, write_block,
	write_sheet): Write row info records in blocks of 32. Excel was
	unable to read files we made if they were over 517 rows. Limit is
	now pushed to 16544.
	(write_index): Assertion no longer true - removed it. Refer to
	Excel doc page.
	(write_db_cell): Write offsets for all rows in block in single
	record. Add number of rows parameter.
	(write_block): New function. Write a block of rows. Previously
	part of write_sheet, but changed for blocked row info.
	(write_sheet): Move inner loop to write_block.
	(new_sheet): Initialize sheet->cells to 0.
	
	* excel.h (ROW_BLOCK_MAX_LEN): Define.

1999-12-21  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (fixup_fill_colors): Fix minor bug.

1999-12-17  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.h (struct _ExcelCol ): define it
	(struct _ExcelSheet): Add base_char_width

	* ms-excel-write.c (log_put_color, palette_get_index,
	gather_palette, write_palette, excel_font_new, excel_font_hash,
	excel_font_equal, after_put_format, map_pattern_index_to_excel,
	halign_to_excel, valign_to_excel, fixup_fill_colors,
	get_xf_differences, log_xf_data, build_xf_data,
	write_xf_magic_record, write_value, write_formula, write_cell,
	write_mulblank, pre_pass): Cosmetics
	(write_font, write_fonts, write_format, write_formats,
	write_xf_record, write_xf, write_workbook): Conform to
	conventional parameter order
	(orientation_to_excel, border_type_to_excel): Make inline
	(write_default_row_height): New function. Write default row
	height.
	(lookup_base_char_width_for_write): New function. Locate font for
	measuring base char width, and call measuring function.
	(get_base_char_width): New function: Return base char width for
	column sizing.
	(write_default_col_width): New function. Write default col width.
	(write_colinfo): New function. Write column info for a run of
	identical columns
	(write_colinfos): New function. Write column info for all columns.
	(write_sheet_bools): Use write_default_row_height,
	write_default_col_width, write_colinfos.
	(write_sheet_bools):
	(write_rowinfo): Write true row height. Add sheet to signature.
	(write_sheet): Add sheet to write_rowinfo call.
	(new_sheet): Initialize base_char_width.

	* ms-excel-util.h: #include <sheet.h>
	(EXCEL_DEFAULT_CHAR_WIDTH): Move here from ms-excel-read.h
	(lookup_font_base_char_width): Declare it.	

	* ms-excel-util.c (lookup_font_base_char_width): New
	function. Measure "base character width" of font. Previously in
	lookup_base_char_width in ms-excel-read.c

	* ms-excel-read.c: #include ms-excel-util.h
	(lookup_base_char_width_for_read): Renamed from
	lookup_base_char_width because of similar, but different function
	in ms-excel-write.c. Split in two. Font locating stays here. Font
	measuring moved to new function lookup_font_base_char_width in
	ms-excel-util.c
	(get_base_char_width): Use lookup_base_char_width_for_read.
	(ms_excel_read_default_row_height): Refer to Excel doc page.
	(ms_excel_read_default_col_width): Ditto

1999-12-14  Jon K Hellan  <hellan@acm.org>
 
        * ms-excel-write.h (XF_MAGIC, PALETTE_ALSO_BLACK, FILL_MAGIC,
        BORDER_MAGIC): define
        (PALETTE_WHITE, PALETTE_BLACK): Fix typo, they were switched around.
 
        * ms-excel-write.c (put_colors): Include border colors.
        (excel_font_new): Newline to conform to coding style.
        (fonts_get_font): New function. Get font, given index.
        (fonts_free, write_fonts): Use it.
        (write_font): Fix boldstyle typo.
        (formats_get_format): New function. Get format, given index.
        (formats_free, write_format): Use it.
        (xf_get_mstyle): New function. Get mstyle, given index.
        (xf_free): Use it.
        (halign_to_excel): 
        New function. Map horizontal alignment to Excel bitfield
        (valign_to_excel): 
        New function. Map vertical alignment to Excel bitfield.
        (orientation_to_excel): 
        New function. Map text orientation to Excel bitfield.
        (border_type_to_excel): 
        New function. Map border type to Excel bitfield.
        (fixup_fill_colors): 
        New function. Kluge fill foreground and background colors.
        (get_xf_differences): Fill out map of differences to parent style.
        (log_xf_data): 
        New function. Log XF data for a record about to be written. Pulled
        out of write_xf_record.
        (build_xf_data): New function. Build XF data for a style. Pulled
        out of write_xf_record, but uses BiffXFData struct. Add support
        for borders, alignments, wrap, rotation. Change some
        local variable names for consistency with import code.
        (write_xf_magic_record): Comment magic color value.
        (write_xf_record): Change signature, take BiffXFData instead of
        mstyle. Simplify by moving out logging and marshaling. Make more
        complex by writing borders, alignment, wrap, rotation.
        (write_xf): Use xf_get_mstyle, build_xf_data, log_xf_data.
 
        * ms-excel-util.h: Fix typo.
 
        * ms-excel-xf.h: New file for BiffXFData struct def.
 
        * ms-excel-read.c: Move BiffXFData struct def to
        ms-excel-xf.h. Include ms-excel-xf.h. Remove include "border.h" -
        ms-excel-xf.h includes it.
        (ms_excel_get_style_from_xf): Express some bewilderment.
 
        * ms-excel-biff.h: Define enums for horizontal alignment, vertical
        alignment, text orientation, difference bits

1999-12-11  Frank Chiulli  <fchiulli@home.com>

	* ms-summary.c (ms_summary_write): comment out DocumentSummary.

	* boot.c (excel_save): re-enable summary write.

1999-12-14 Valerie A Henson  <val@nmt.edu>

	* ms-obj.c: s/dump/ms_ole_dump/

	* ms-biff.c: s/dump/ms_ole_dump/

	* ms-formula-read.c: s/dump/ms_ole_dump/

	* ms-excel-read.c: s/dump/ms_ole_dump/

1999-12-09  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c (excel_font_hash, excel_font_equal, excel_font_free):
	fixup pointer bits.

1999-12-08  Jon K Hellan  <hellan@acm.org>

	* ms-excel-write.c: (palette_color_to_int): New function. Convert
	EXCEL_PALETTE_ENTRY to guint.
	(style_color_to_int): New function. Convert StyleColor to guint.
	(log_put_color): New function. Debug log when color added to
	palette
	(palette_put_defaults): New function. Put Excel default colors to
	palette.
	(palette_init): New function. Initialize palette table.
	(palette_free): New function. Free palette table.
	(palette_get_index): New function. Get color index.
	(put_color): New function. Add color to palette.
	(put_colors): New function. Add colors in MStyle to palette
	(gather_palette): New function. Add all colors in workbook to
	palette.
	(write_palette): Use color info from styles. Make void.
	(excel_font_to_string): New function. Return string desc. of font
	(excel_font_new): New function. Make an ExcelFont (font + color).
	(excel_font_free): New function. Free an ExcelFont.
	(excel_font_hash): New function. Hash function for ExcelFonts.
	(excel_font_equal): New function. Compare ExcelFonts.
	(fonts_init): New function. Initialize font table
	(fonts_free): New function. Free font table.
	(fonts_get_index): New function. Get index of ExcelFont
	(after_put_font): New function. Debug log when font is added to
	table.
	(put_font): New function. Add font to table.
	(gather_fonts): New function. Add all fonts in workbook to table.
	(write_font): New function. Write a font to file. Essentially,
	inner loop of the old version of write_fonts.
	(write_fonts): Rewritten. Make void
	(after_put_format): New function. Debug log when format is added
	to table.
	(formats_put_magic): New function. Add builit-in formats to table.
	(formats_init): New function. Initialize format table
	(formats_free): New function. Free format table
	(formats_get_index): New function. Get index of format
	(put_format): New function. Add a format to table
	(gather_formats): New function. Add all formats in workbook to
	table.
	(write_format): New function. Write a format to file. Essentially,
	inner loop of the old version of write_formats.
	(write_formats): Rewritten. Make void.
	(cell_used_map_new): New function. Make bitmap for cells in use.
	(cell_mark_used): New function. Mark cell in use in bitmap.
	(cell_is_used): New function. Return true if cell marked in use in
	bitmap.
	(get_default_mstyle): New function. Get default mstyle of
	sheet. Placeholder function until this info is exported from
	sheet.
	(xf_init): New function. Initialize xf/mstyle table.
	(xf_free): Rewritten. New signature. Release allocated style data.
	(after_put_mstyle): New function. Debug log when MStyle added to
	table.
	(put_mstyle): New function. Add MStyle to table.
	(excel_cell_get): New function. Get ExcelCell record for cell
	position.
	(pre_cell): Constify key. Add cell MStyle to table. Cache some
	info
	(pre_blank): New function. Add MStyle of blank cell to table.
	(pre_blanks): New function. Add MStyles of all blank cells in
	workbook to table.
	(gather_styles): New function. Add all MStyles in workbook to
	table.
	(map_pattern_index_to_excel): New function. Map Gnumeric pattern
	index to Excel ditto.
	(write_xf_magic_record): New function. Essentially, the old
	version of write_xf_record.
	(write_xf_record): Rewritten. Use style info from worksheet.
	(write_xf): Use style info from worksheet. Changed signature.
	(write_value): Let ms_excel_write_debug govern debug logging.
	(write_formula): Add xf parameter. Write true xf index
	(write_cell): ExcelCell parameter instead of Cell, bringing in xf.
	Write true xf index.  Let ms_excel_write_debug govern debug
	logging.
	(write_mulblank): Add xf_list parameter. Write true xf
	index. Remove #define XF_MAGIC. Add debug logging. Add
	ms_biff_put_commit.
	(write_index): Let ms_excel_write_debug govern debug logging.
	(write_sheet): Let ms_excel_write_debug govern debug logging.
	(write_sheet): Use ExcelCell instead of Cell. Pass xf or xf_list
	to called functions.
	(new_sheet): Initialize sheet->cells, sheet->cell_used_map
	(free_sheet): Free sheet->cells, sheet->cell_used_map
	(pre_pass): Rewrite. Change signature
	(write_workbook): Initialize font, format, palette and xf tables.
	Free xf list.
	(ms_excel_write_workbook): Flush debug log at end.

	* ms-excel-write.h: Define TwoWayIndex, ExcelFont, ExcelCell,
	ExcelRow. Redefined Palette, Fonts, Formats, XF. Add cells and
	cell_used_map to ExcelSheet. Add xf to ExcelWorkbook.  Define
	AfterPutFunc. Declare ms_excel_write_debug.  Move #defines from
	ms-excel-write.c. Move function declarations last.

	* ms-excel-util.c New file.
	(two_way_index_new): New function. Make TwoWayTable.
	(two_way_index_free): New function. Destroy TwoWayTable
	(two_way_index_put): New function. Put a key to TwoWayTable
	(two_way_index_replace): New function. Replace key for index in
	TwoWayTable
	(two_way_index_key_to_idx): New function. Find index given key
	(two_way_index_idx_to_key): New function. Find key given index

	* ms-excel-util.h New file.

	* ms-excel-read.c (ms_excel_read_cell): Add \n to debug print.

1999-12-06  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-write.c (new_sheet): Update to sheet_get_extent.

1999-12-01  Morten Welinder  <terra@diku.dk>

	* ms-excel-read.c (lookup_base_char_width): Plug leaks.
	(biff_xf_data_destroy): Ditto.

1999-11-30  Michael Meeks  <mmeeks@gnu.org>

	* boot.c (excel_save): Disable summary info export.

1999-11-30  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c: Add ms_excel_write_debug.

1999-11-30  Jon K Hellan  <hellan@acm.org>

	* ms-excel-read.c (biff_format_data_lookup): Add debug.
	(lookup_base_char_width): add commenting.
	(ms_excel_read_workbook): Add fflush.

1999-11-28  Michael Meeks  <mmeeks@gnu.org>

	* gnumeric-chart.c (gnumeric_chart_destroy): check the series
	is valid before freeing.

1999-11-28  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (biff_name_data_destroy): add comment.

	* ms-chart.c (ms_excel_chart): destroy state.chart.

1999-11-26  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-read.c (ms_excel_parse_formula) : DOH!
	  why wait to implement the implicit intersetion in the core.
	  We know that this will require such an intersection.  So do
	  the work here.  This results in the same sheet that XL produces
	  if you turn off the 'use labels as names' feature.

1999-11-26  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-read.c (ms_excel_parse_formula) : Add support for
	  extended-ptg ElfColV and ElfRowV.  They seem to refer to the
	  use of an implicit vector defined by a column header.
	  ie A1 = 'bob'  A2 = 2 B2 = '=bob^2'
	  The eptg would indicate that 'bob' in B2 refered to the column below
	  A1.  Presumably implicit intersection (not implemented yet) would
	  handle the rest.

1999-11-25  Jody Goldberg <jgoldberg@home.com>

	* ms-obj.c (object_anchor_to_position) : Use 1/1024 for pre-XL97
	  objects.  Do not scale the margins.

1999-11-23  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_font_data_new) : Improve debug info.
	(ms_excel_get_style_from_xf) : Ditto.
	(ms_excel_set_xf) : Ditto.

1999-11-22  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (get_units_net_of_margins) : Don't crash when the
	  col/row info is NULL.

	* ms-excel-read.c (ms_excel_get_xf) : Improve error
	  message when faced with invalid xf index.

1999-11-21  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_selection) : Bug 3609.
	  Make sure the current cell is visible.

1999-11-19  Jon K Hellan  <hellan@acm.org>

	* ms-excel-read.c (ms_excel_read_row): New funtion: Process a BIFF
	row info record. Previously in ms_excel_read_cell.
	(ms_excel_read_colinfo): New function: Process a BIFF column
	info record. Previously in ms_excel_read_cell.
	(ms_excel_read_cell): Move some code to ms_excel_read_row and
	ms_excel_read_colinfo
	(ms_excel_read_default_row_height): New function: Process a BIFF
	default row height record. Previously in ms_excel_read_sheet.
	(ms_excel_read_default_col_width): New function: Process a BIFF
	default column width record. Previously in ms_excel_read_sheet.
	(ms_excel_read_sheet): Move some code to
	ms_excel_read_default_row_height and ms_excel_read_default_col_width.
	
1999-11-19  Michael Meeks  <mmeeks@gnu.org>

	* boot.c (excel_probe): Check for the right streams, not just an
	ole file.

1999-11-18  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (lookup_base_char_width): kill double init of
	sample & add check.

1999-11-18  Jon K Hellan  <hellan@acm.org>

	* ms-obj.c (ms_parse_object_anchor): Just extract anchor data,
	don't try to convert to pixels. Extracted anchor data has type
	anchor_point[4], i.e. 4 pairs of col/row number and fractions of
	col/row.
	(ms_obj_realize): Now receives uninterpreted anchor data. Thus,
	conversion to position is delayed until the entire sheet has been
	read. Use object_anchor_to_position to interpret. 'anchor'
	variable renamed to 'position'.
	(object_anchor_to_position): New function: Convert an anchor to
	position in points. Based on data interpretation in previous
	version of ms_parse_object_anchor.  Interpret as 256th's rather
	than 1024th's vertically. Base computation on actual cell
	width/height.

	* ms-obj.h (type anchor_point): define it.
	(type MSObj): Change type of anchor from int[4] to
	anchor_point[4]. 
	Update signature of ms_parse_object_anchor.

	* ms-excel-read.h (_ExcelSheet): Add base_char_width member.
	(EXCEL_DEFAULT_CHAR_WIDTH): Define it.
	* ms-excel-read.c (get_substitute_font):
	New function: Try to find a gnome font which matches the Excel font.
	(ms_excel_get_style_from_xf): Use get_substitute_font.
	(ms_excel_sheet_new): Initialize base_char_width to 0, i.e. unknown.
	(print_font_mapping_debug_info): Debug print in separate routine.
	(get_base_char_width): New function: Return base char width for
	column sizing. If not yet known, call lookup_base_char_width to
	find it.
	(lookup_base_char_width): New function. See get_base_char_width.
	(get_row_height_units): New function. We could adjust excel
	heights here, but there seems to be no need.
	(get_units_net_of_margins): New function. Subtract margins from a
	point size.
	(ms_excel_read_cell): 
	case BIFF_ROW: Specify height in points, not pixels.  Use
	get_row_height_units and get_units_net_of_margins. Call
	sheet_row_set_height_units rather than sheet_row_set_height.
	case BIFF_COLINFO: Specify width in points, not pixels.  Scale
	column based on actual font. Use get_base_char_width and
	get_units_net_of_margins. Call sheet_col_set_width_units rather
	than sheet_col_set_width.
	(ms_excel_read_sheet): 
	case BIFF_DEFAULTROWHEIGHT: Handle it. Like BIFF_ROW, but use
	sheet_row_set_internal_height on default style. 
	case BIFF_DEFCOLWIDTH: Handle it. Like BIFF_COLINFO, but use
	sheet_col_set_internal_height on default style. 

	* ms-escher.c (_MSEscherHeader): 
	Change type of anchor to anchor_point[4]

1999-11-18  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_read_guts): rename.

1999-11-17  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_mergecells) : New function.
	  Test parser for merged cells.
	(ms_excel_read_sheet) : Use it.
	(biff_xf_data_new) : Fix typo.

	* ms-excel-read.c (black_or_white_contrast) : Use new
	  style_color{black,white} functions.
	(ms_excel_palette_get) : Ditto.
	(ms_excel_get_style_from_xf) : Ditto.

1999-11-17  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (biff_xf_data_new): Quieten.
	(ms_excel_palette_get): Return black on failure.
	(biff_get_text): quieten various warnings.

1999-11-16  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_GUTS) : New function.
	(ms_excel_read_sheet) : used here.

1999-11-15  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_xf_data_new) : Add warnings about
	  unsupported alignment and format features.  This explains
	  why travel.xls looks odd.

1999-11-14  Frank Chiulli <fchiulli@home.com>

	* ms-summary.c (set_summary_item) : Process all the sections in a 
	  stream.  Pass the section's PropertySetID to sum_name_to_excel
	  rather than the stream's.

1999-11-13  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-write.c (write_sheet) : Make static.
	* gnumeric-chart.h (typedef) : Fix prototype.

1999-11-09  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_get_style_from_xf, biff_xf_map_border): 
	Update to new STYLE_BORDER enums.

1999-11-08  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (biff_xf_data_new) : Reverse sense on diagonals.

1999-11-08  Michael Meeks  <mmeeks@gnu.org>

	* ms-summary.c (ms_summary_read): quieten.

1999-11-08  Frank Chiulli  <fchiulli@home.com>

	* ms-summary.c :  Added support for DocumentSummaryInformation stream.
	  Added new field, ps_id (Property Set ID), to mapping_t structure and
	  initialized excel_to_gnum_mapping[] appropriately.
	  
	* ms-summary.c (sum_name_to_excel) : New function to convert a summary
	  name to a MsOleSummaryPID.

	* ms-summary.c (read_summary_items) : Added new argument - psid (Property
	  Set ID).  It also checks to see that the summary item is in current
	  Summary stream as identified by psid.  Added support for additional 
	  summary types (boolean, short, time).
	  
	* ms-summary.c (ms_summary_read) : Reads DocumentSummaryInformation 
	  stream and summary items therein.

	* ms-summary.c (set_summary_item) : Processes additional summary types
	  (boolean, int, short, time).

	* ms-summary.c (ms_summary_write) : Now also writes out the
	  DocumentSummaryInformation stream.
	
1999-11-07  Michael Meeks  <mmeeks@gnu.org>

	* boot.c (excel_save): Invert sense of return value to reflect success.

	* ms-excel-read.c (biff_name_data_get_name): Move name parsing
	back here; we have read all the sheets this time so inter-sheet
	references in names work. Add 'inserted' flag (biff_name_data_new):
	Kill returning the name + add comment. Add stuff to TODO.

1999-11-07  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_set_xf) : Remove debug
	  statement accidentally left in.

1999-11-06  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (black_or_white_contrast) : Revert to 50% as a
	  contrast boundary (3*0x10000/2) ~= 0x1800

	* ms-excel-read.c (ms_excel_get_style_from_xf) : Add more debug
	  output, and support 0 as a contrast colour.

1999-11-05  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_palette_get) : Split the contrast logic
	  into a new function
	(black_or_white_contrast) : The new function.
	(ms_excel_get_style_from_xf) : Add a hand coded table to decide what
	  colours to contrast with which while importing.
	(biff_xf_data_new) : Fix diagonal border import.
	(ms_excel_workbook_detach) : Do not multiply delete a sheet.

	* ms-chart.c : Adjust to changes in ms_excel_palette_get.

1999-11-05  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_get_style_from_xf): update.

	* ms-excel-write.c (write_xf_record): pass MStyle *.
	(xf_lookup): ditto.

1999-11-03  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (excel_map_pattern_index_from_excel) : Adjust map
	  from XL pattern index to gnumeric pattern index to swap diag and
	  rev-diag.

	* ms-excel-read.c (ms_excel_get_style_from_xf) : Set the pattern on
	  import.

1999-10-31  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-write.c (new_sheet): Fix silly bug, rows not cols
	for maxy. (write_names): add version precondition.

1999-10-30  Daniel Risacher  <magnus@alum.mit.edu>

	* ms-excel-read.c (biff_get_text): tiny fix to debugging code
	(biff_name_data_new): actually return the new data
	(biff_name_data_get_name): Moved code that adds names to the 
	workbook to ms_excel_read_name()
	(ms_excel_read_name): Add name definitions to workbook when 
	definition is read, rather than when used.
	Formatting.

	* ms-formula-write.c (write_ref): minor change to comply with 
  	  spec for references.
	(write_node): Handle OPER_NAME.
	Formatting.
	
	* ms-excel-write.c (write_names): New function.  Writes name 
	  definitions.  Called from write_workbook().
	Formatting.
	
	* ms-excel-write.h: Added names to struct _ExcelWorkbook

1999-10-30  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_get_xf): kill const.
	(ms_excel_read_cell): initialize range_end.

1999-10-26  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-read.c (FormulaFuncData) : Fix typo for
	SERIESNUM -> SERIESSUM.

1999-10-26  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): Fixed the number of
 	arguments in GETPIVOTDATA to two.

1999-10-24  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_get_style_from_xf): add another ref.

1999-10-24  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:MULBLANK) : pre-merge the XF
	  records in a mulblank sequence.  Improves load time.

	* ms-excel-read.c (ms_excel_get_style_from_xf) : New function
	  split from ms_excel_set_xf.  It calculates and caches the MStyle
	  associated with an XF record.

1999-10-22  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_palette_get): fix leak.

1999-10-18  Morten Welinder  <terra@diku.dk>

	* ms-formula-read.c (ms_excel_parse_formula): Fix for non-shared
 	references to cells below row 256.

	* ms-excel-read.c (ms_excel_sheet_insert): Set XF before sheet_cell_fetch
	for big speedup. (ms_excel_read_formula): ditto.

1999-10-19  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_get_stylefont ms_excel_set_xf): use new
	'helper' functions.

1999-10-08  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c : More minor tweaking of adjustment ratios.
	  We need some real documentation on this stuff.

	* ms-escher.c (ms_escher_get_data) : Use printf instead of
	  g_return_if_fail.  It makes it easier to debug when the messages ar
	  in line.

	* ms-obj.c (ms_read_OBJ) : Print the object type name whenever
	  possible.
	(ms_obj_read_biff8_obj) : Looks like a PictOpt record in an object
	  signifies that the next BIFF record after the OBJ must be an IMDATA.
	(ms_obj_parse_anchor) : Move the zoom application back here until we
	  split the anchors into distance and cell pairs.  The old code was
	  zooming the col/row distances twice.

1999-10-08  Morten Welinder  <terra@diku.dk>

	* ms-formula-read.c (ms_excel_parse_formula): Plug leaks.

1999-10-03  Jody Goldberg <jgoldberg@home.com>

	* boot.c (excel_probe) : Only free the MsOle object if it
	  was created successfully.

1999-10-02  Jody Goldberg <jgoldberg@home.com>

	* *.c : Ensure that we include config.h first.

	* *.[ch] : Update and add Copyright notices.

1999-09-29  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:MULBLANK) : Insert blanks in
	  reverse order, to decrease the load on the insert routines.

1999-09-26  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:COLINFO) : Seems like
	  XL periodically sends column widths for phantom columns.

1999-10-19  Morten Welinder <terra@diku.dk>

	* ms-formula-read.c (ms_excel_parse_formula): Get row as 16 bit value,
	for both AREA_3D and AREA[N].

1999-10-18  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_xf): Ref count colors correctly.

1999-10-16  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_font): renamed + kill Cell.
	(style_optimize): kill Cell argument.
	(ms_excel_set_cell_xf): use style_attach + kill Cell arg. + renamed.
	(ms_excel_sheet_insert, ms_excel_read_formula),
	(ms_excel_sheet_insert_val): update removing Cell argument.
	(ms_excel_sheet_insert_blank): Create.
	(ms_excel_read_cell): use insert_blank.

1999-10-15  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_xf): Update style creation +
	only setup border if it non NULL, fixup optimization regions.
	(ms_excel_set_cell_font): update + add array argument.
	(style_optimize): split out. (ms_excel_read_sheet): Add post-optimize.

1999-10-13  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_font): New String in style.

1999-10-11  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_xf): better optimize region
	generation.

1999-10-10  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_sheet_new): Initialize range.
	(ms_excel_set_cell_xf): Add range optimization.
	(ms_bug_get_padding): Kill.

	* ms-excel-read.h (ExcelSheet): Add style_optimize field.

1999-10-09  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_set_cell_xf): Adapt to new Border support.

1999-10-07  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_xf): Large hack to new style
	code. (biff_font_data_get_style_font): kill it.
	(biff_font_data_new): remove setting up fd->style_font.
	(biff_font_data_destroy): kill style_font bits.

1999-10-03  Jody Goldberg <jgoldberg@home.com>

	* boot.c (excel_probe) : Only free the MsOle object if it
	  was created successfully.

1999-09-29  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:MULBLANK) : Insert blanks in
	  reverse order, to decrease the load on the insert routines.

1999-09-26  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:COLINFO) : Seems like
	  XL periodically sends column widths for phantom columns.

1999-10-19  Morten Welinder <terra@diku.dk>

	* ms-formula-read.c (ms_excel_parse_formula): Get row as 16 bit value,
	for both AREA_3D and AREA[N].

1999-10-18  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_xf): Ref count colors correctly.

1999-10-16  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_font): renamed + kill Cell.
	(style_optimize): kill Cell argument.
	(ms_excel_set_cell_xf): use style_attach + kill Cell arg. + renamed.
	(ms_excel_sheet_insert, ms_excel_read_formula),
	(ms_excel_sheet_insert_val): update removing Cell argument.
	(ms_excel_sheet_insert_blank): Create.
	(ms_excel_read_cell): use insert_blank.

1999-10-15  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_xf): Update style creation +
	only setup border if it non NULL, fixup optimization regions.
	(ms_excel_set_cell_font): update + add array argument.
	(style_optimize): split out. (ms_excel_read_sheet): Add post-optimize.

1999-10-13  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_font): New String in style.

1999-10-11  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_xf): better optimize region
	generation.

1999-10-10  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_sheet_new): Initialize range.
	(ms_excel_set_cell_xf): Add range optimization.
	(ms_bug_get_padding): Kill.

	* ms-excel-read.h (ExcelSheet): Add style_optimize field.

1999-10-09  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_set_cell_xf): Adapt to new Border support.

1999-10-07  Michael Meeks  <mmeeks@gnu.org>

	* ms-excel-read.c (ms_excel_set_cell_xf): Large hack to new style
	code. (biff_font_data_get_style_font): kill it.
	(biff_font_data_new): remove setting up fd->style_font.
	(biff_font_data_destroy): kill style_font bits.
	
1999-10-02  Jody Goldberg <jgoldberg@home.com>

	* *.c : Ensure that we include config.h first.

	* *.[ch] : Update and add Copyright notices.

1999-09-29  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:MULBLANK) : Insert blanks in
	  reverse order, to decrease the load on the insert routines.

1999-09-26  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell:COLINFO) : Seems like
	  XL periodically sends column widths for phantom columns.

1999-09-26  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-excel-read.c (biff_name_data_new): add sheet scope.
	(ms_excel_read_name): Use the 2nd 'copy' of idx since its the
	only valid one. (biff_name_data_get_name): Create using scope.

1999-09-26  Michael Meeks  <michael@nuclecu.unam.mx>

	* Makefile.am: remove the 'ole' test program

	* ole.c: Removed, see module libole2 in test/test-ole.

	* ms-escher.c (ms_escher_read_ClientData): Remove realize & queue
	objects instead. Add precondition on state->sheet.

1999-09-26  Michael Meeks  <michael@nuclecu.unam.mx>

	* ole.c (ms_biff_query_next_merge, ms_biff_query_new): inline.

1999-09-26  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-excel-read.c (ms_excel_read_sheet): return FALSE for
	blank sheets: duh. (ms_excel_sheet_destroy): add destroy_objs.
	(ms_excel_read_cell): remove const on lastcol.

1999-09-25  Michael Meeks  <michael@nuclecu.unam.mx>

	* Makefile.am (ole_LDADD): use libole2.la

	* ms-obj.c (ms_obj_realize): remove object destruction.
	(ms_obj_destroy): add. (ms_excel_sheet_destroy_objs): Create.
	(ms_excel_sheet_realize_objs): remove list free.

	* ms-excel-read.c (ms_excel_read_sheet): add return type
	to save possible cock-up. (ms_excel_read_workbook): only
	realize objects if loaded OK.

1999-09-25  Michael Meeks  <michael@nuclecu.unam.mx>

	* ole.c (decompress_vba): an idea.
	(dump_vba_module): + hooks.
	
1999-09-25  Michael Meeks  <michael@nuclecu.unam.mx>

	* ole.c (decompress_vba): remove unused + clean headers.

1999-09-25  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_formula) : Improve debug
	  printouts, to facilitate match problems cells to inputs
	  behaviors.
	(ms_excel_read_cell:MULBLANK) : Rework to include last_col
	  and simplify logic on iteration. Plus more debug.
	(ms_excel_read_cell:RSTING) : More debug.
	(ms_excel_read_cell:BIFF_ROW) : Add explicit comment on
	  unit -> pixel scaling factor.
	(ms_excel_read_cell:BIFF_COLINFO) : Ditto.

	* ms-escher.c : Continue work on OPT records.

1999-09-24  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell) : Add and document
	  point -> pixel scaling for rows and columns.

	* ms-excel-read.c (ms_excel_palette_get) : Change my guess
	  at what the therhold pseudo-luminosity is.

1999-09-23  Michael Meeks  <michael@nuclecu.unam.mx>

	* ole.c (enter_dir): Change logic.

1999-09-22  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-excel-write.c (write_bits): Fix TABID.
	(write_sheet_tail): Add current selected sheet save & V8 WINDOW2
	(write_bits): only save PANEs if we need to.
	(write_fonts): always write 5 fonts instead of 4.
	(write_xf): Add USESELFS.
	(write_sheet): 0x200|INDEX.
	(write_sheet_bools): remove -1 from sheet->maxy for V8.

	* ole.c (do_biff_raw): Remove stream position to help 'diff'.

	* ms-obj.c (ms_obj_realize): Turn off auto-sizing of images to
	tango with improved sizing capable image components.

1999-09-23  Jody Goldberg <jgoldberg@home.com>

	* ole.c (dump_vba) : Remove the escher code.  The new version needs to
	  much context to be useable at this level.
	(enter_dir) : Improve error message, and fix thinko.

	* ms-excel-read.c (ms_excel_read_cell) : Fix importing of column
	  widths.

	* ms-obj.c (ms_obj_realize) : Create a visual placeholder for charts.
	  Check for NULL sheet.

	* ms-escher.c : Lots more OPT record types.
	(ms_escher_read_ClientData) : Only set the blip type
	  if we are a picture.

1999-09-21  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-obj.c (ms_parse_object_anchor): remove zoom.
	(ms_obj_realize): Add zoom here.

	* ms-excel-read.c (ms_excel_read_sheet): queue objects for later.
	(ms_excel_read_workbook): Realise sheet objects after read.
	(ms_excel_sheet_new): NULL obj queue ptr.

	* ms-obj.c: Add lots of missing cross references.
	(ms_excel_sheet_realize_objs): Implement.

1999-09-21  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_workbook) : Prefer 'workbook' to
	  'book' so that we use Biff8 for dual stream files.

	* ms-obj.c : Add some #ifndef NO_DEBUG_EXCEL

1999-09-20  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-formula-write.c (formula_cache_new_std): Split.
	(get_formula_index): cleaned. (write_funcall): Split from
	(write_node): in preparation for more lovely complexity.
	(formula_cache_new_ename): create. (write_string): constify
	(write_node): Improve integer writing efficiency.

	* ms-excel-write.c (write_sheet_bools): Added write.
	(biff_put_text): constify. (new_sheet): clean debug.

	* ms-formula-write.c (ms_formula_build_pre_data, ms_formula_write_pre_data): 
	stub.

	* ms-excel-write.c (write_workbook): Fix _loads_ of leaks.
	(free_sheet): create. (pre_pass): pre-pass of the workbook's sheets.
	(pre_cell): Scan cells for interesting things.

	* excel.h: remove cache stuff.

	* ms-formula-write.h: move it here.

	* ms-formula-write.c (get_formula_index, cache_init/shutdown): work
	on a per sheet basis.

	* boot.c (excel_shutdown, excel_init): remove formula cache.

	* ms-excel-write.h: Add formula cache.

	* ms-escher.c (ms_escher_read_Blip): Add support for image-generic
	for jpeg, move DIB to a safe place.

1999-09-20  Michael Meeks  <michael@nuclecu.unam.mx>

	* ole.c: massive, huge, big clean to new API; ahh that feels good,
	add 'help' command. Break escher debug for now.

	* Makefile.am: re-enabled 'ole'
	
	* ms-biff.h: removed all mention of quirks.

	* ms-biff.c (ms_biff_query_copy): dangerous: removed, clean quirk stuff.

1999-09-20  Jody Goldberg <jgoldberg@home.com>

	* ms-obj.[ch]: Remove a few #if ENABLE_BONOBO checks 
	  and add an include for sheet-object.h. Improve debug
	  info.

1999-09-20  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-obj.[ch]: Added a few #if ENABLE_BONOBO checks to make it
 	compile again.

1999-09-20  Jody Goldberg <jgoldberg@home.com>

	* ms-escher.c (ms_escher_read_ClientData) : Handle unknown object
	  types.

	* ms-summary.c (set_summary_item) : Made static.

	* ms-obj.c (ms_obj_realize) : New function.
	(ms_parse_object_anchor) : Ditto.

	* ms-excel-read.c (ms_excel_read_workbook) : Use
	  ms_obj_realize.
	(ms_excel_read_sheet) : Ditto.
	(ms_excel_read_formula) : Make reading a string more
	  robust, and support length = 0 as a valid string.

1999-09-19  Michael Meeks  <michael@nuclecu.unam.mx>

	* Makefile.am: comment out ole.

	* ms-summary.c (sum_name_to_excel): made static.

	* ms-excel-write.c (ms_excel_write_workbook): updated.

	* ms-excel-read.c (ms_excel_read_workbook): use better API.
	(find_workbook): removed.

	* ms-biff.c (ms_biff_query_copy): Updated duplicate.

	* boot.c (excel_probe, excel_save, excel_load): new ole api.

	* ms-excel-write.c (ms_excel_write_workbook): fix leak.

1999-09-18  Morten Welinder  <terra@diku.dk>

	* ole.c (cur_dir, delim): static.

1999-09-18  Jody Goldberg <jgoldberg@home.com>

	* gnumeric-chart.c (gnumeric_chart_destroy) : implement.
	(gnumeric_chart_new) : Create.

	* ms-chart.c (ms_excel_chart) : Init the chart.
	(BC_R(ifmt), BC_R(ai)) : Handle invalid/missing formats.

	* ms-escher.c : More radical changes to support just in time
	  merging.  This seems to solve the last of the problems of which
	  records to merge and which not.  Everything seems to add up.
	(ms_escher_parse) : Enable by default.

	* ms-excel-read.c (ms_excel_workbook_destroy) : Release blips on
	  exit.

1999-09-17  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_workbook_get_sheet) : Make extern.

1999-09-15  Frank Chiulli  <fchiulli@home.com>
	
	* plugins/excel/boot.c (excel_save): Add a call to ms_summary_write
	(ms-summary.c) to write out the SummaryInformation stream.

	* plugins/excel/ms-summary.h: Make ms_summary_write public.
	
	* plugins/excel/ms-summary.c (ms_summary_write, sum_name_to_excel,
	set_summary_item): New routines to support writing the 
	SummaryInformation stream.
	
1999-09-17  Michael Meeks  <michael@nuclecu.unam.mx>

	* ole.c (main, do_draw, dump_escher): dump raw data.

1999-09-17  Jody Goldberg <jgoldberg@home.com>

	* ms-escher.c : Adjust const.
	(ms_escher_read_ClientAnchor) : Yahoo!  figured out object placement !!
	(ms_escher_read_OPT) : Some cleanup of the property names.

1999-09-16  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-excel-read.c (ms_excel_read_sheet): add sheet param to _get_drawing
	(ms_excel_read_workbook): ditto & init 'eschers' to NULL.

	* ms-obj.c (ms_obj_read_text): add sheet param to _get_drawing

	* ms-chart.c (BC_W): ditto.

	* ms-escher.c (ms_escher_hack_get_drawing): Add Sheet param.
	(escher_record_new_blip, escher_record_destroy, ms_escher_read_Blip),
	(ms_escher_read_ClientAnchor): Hack up image loading.
	include config.h

	* ms-excel-read.h (_ExcelWorkbook): Add eschers list.

1999-09-16  Jody Goldberg  <jgoldberg@home.com>

	* ms-escher.c (ms_escher_read_CLSID, ms_escher_read_ColorMRU,
		ms_escher_read_SplitMenuColors) : Initial implementation.
	(ms_escher_read_Spgr) : Add names of Shapes.
	(ms_escher_read_ClientAnchor) : Wild guess at what the format is.
	(ms_escher_read_OPT) : Start naming some of the properties.
	(ms_escher_read_SpgrContainer) : be very careful.

1999-09-15  Jody Goldberg  <jgoldberg@home.com>

	* ms-escher.c : Massive re-org.
	* ms-obj.c (ms_obj_read_text_impl) : Export, and improve warning
	  message for TXO.
	(ms_obj_read_text_impl) : The drawing will read the TXO.

1999-09-12  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-excel-write.c (write_sheet_bools): write grid-lines & margins &
	scads of other bits.

	* ms-excel-read.c (ms_excel_read_sheet): Add preconditions & load
	print info for grid-lines, & scads of other stuff. (margin_read): Create.

1999-09-11  Michael Meeks  <michael@nuclecu.unam.mx>

	* ms-excel-write.c (write_value): Clean unused 'head'
	(write_sheet_tail): Add zoom factor write.

	* ms-excel-read.c (ms_excel_read_sheet): Add BIFF_SETUP decode.
	Add Zoom factor reading, add lots of printing records & debug dumps.

1999-09-08  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-read.c : Add selection.h

1999-09-08  Michael Meeks  <michael@imaginator.com>

	* README: More random thoughts to pass the time of day.

1999-09-05  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-write.c (write_value) : Always use mode 2 for ints.
	  Add a comment to the write float code suggesting an extension to use
	  mode 3 for doubles with only 2 digits after the decimal.

1999-08-26  Michael Meeks  <michael@imaginator.com>

	* ms-escher.c (biff_to_flat_data): Added back the full conditions
	on merging drawing groups.

	* ole.c (dump_escher): Realised it is a vanillaish container.

	* ms-escher.c (BSE_new): Fix silly buglets.
	(esh_header_new, esh_header_next): prettyify;
	(ms_escher_read): Update length type.

1999-08-25  Michael Meeks  <michael@imaginator.com>

	* ms-escher.c (esh_header_next): re-order for clarity.
	(BSE_new): Fiddling with bits: thanks to Caolan.

1999-08-25  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): Fixed the number of
 	arguments in ISPMT to four.

1999-08-20  Michael Meeks  <michael@imaginator.com>

	* ms-formula-write.c (get_formula_index): Added a comment about 
	Excel's add-in formula names.

1999-08-17  Michael Meeks  <michael@imaginator.com>

	* ms-excel-read.[ch]: Remove sheet blank bit.

	* ms-chart.c (BC_R): Remove sheet->blank reference.

1999-08-16  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-write.c (write_node) : Add OPER_PERCENT
	* ms-formula-read.c (ms_excel_parse_formula) : Ditto.

	* ms-obj.c : Make less verbose.

	* ms-excel-read.c : Add several new biff-types and do more
	  checking for 'odd-balls' with most significant byte == 1.
	  Disable the 'blank sheet' optimization for now to avoid memory
	  errors when a 'blank' sheet gets put into the externsheet hash.

1999-08-16  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-write.c (write_node) : correct typo.
	  We can now write & read samples/logfuns.xls without
	  loosing formulas or values.

1999-08-15  Jody Goldberg <jgoldberg@home.com>

	* ms-excel-write.c (write_value) : Add support for VALUE_BOOLEAN,
	  VALUE_ERROR, VALUE_EMPTY.
	(write_formula) : Ditto.
	* ms-formula-write.c (write_node) : Ditto.

1999-08-15  Morten Welinder  <terra@diku.dk>

	* ms-excel-read.c (ms_excel_read_workbook): First use, then
 	destroy.

1999-08-13  Michael Meeks  <michael@imaginator.com>

	* ole.c (enter_dir): Major re-work, to use paths.

1999-08-12  Jody Goldberg <jgoldberg@home.com>

	* ms-formula-read.c (ms_excel_parse_formula) :
	FORMULA_PTG_PERCENT is expr/100 not expr*100.
	(excel_builtin_formats) : Correct typo.

1999-08-09  Miguel de Icaza  <miguel@gnu.org>

	* boot.c (excel_load): Changed calling conventions.

	* ms-excel-read.c (ms_excel_read_workbook): Adjusted to use the
	new file-open convention

1999-08-08  Michael Meeks  <michael@imaginator.com>

	* ole.c (dump_vba_module): Kill leak & fix logic.
	(dump_vba): destroy correct directory.

1999-08-06  Michael Meeks  <michael@imaginator.com>

	* ole.c (list_files): Fix so it shows directories...
	(get_file_handle, list_files, really_put, main): Use current_directory.
	(enter_dir): Implemented 'cd' command
	(do_copyout: Implemented splitting (really_get): from (do_get).
	(dump_vba): Started.

1999-08-05  Michael Meeks  <michael@imaginator.com>

	* ms-summary.c (ms_summary_read): Trivial fix to kill warning.

1999-08-02  Jody Goldberg <jgoldberg@home.com>

	* ms-obj.c (ms_obj_read_pre_biff8_obj) : New function to catch
          charts.
	(ms_obj_read_obj) : Use ms_obj_read_pre_biff8_obj.

	* ms-excel-read.c (ms_excel_read_cell) : Catch use of chart
          records when we expect a cell.
	(ms_excel_read_formula) : Clarify error message.
	(biff_name_data_new) : Partial support for local vs global names.
	(biff_name_data_get_name) : Reformat to improve readability.
	(ms_excel_read_formula) : Ditto.

	* ms-chart.c (ms_excel_biff_dimensions) : Don't print unless
          we're debugging.

	* ms-obj.c (ms_obj_read_biff8_obj) : Don't print checkbox link
          unless we're debugging.

1999-07-30  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_error) : Delete
          (ms_excel_read_cell) : Use VALUE_ERROR, and VALUE_EMPTY.
	  (ms_excel_read_selection) : Split out into seperate function.

	* ms-formula-read.c (ms_excel_parse_formula,
          make_function) : VALUE_ERROR.

1999-07-31  Morten Welinder  <terra@diku.dk>

	* ms-excel-read.c (ms_excel_read_formula): Kill warning that is no
 	longer valid.
	(ms_excel_read_error): Fix leak that I introduced.

1999-07-31  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (biff_get_text): Hacked to deal with continues
	nicely.
	(ms_excel_read_workbook): Fixed up nasty version stuff.
	Commented out ms_bug_padd stuff.

	* ms-biff.[ch]: Commented out all padding and quirks stuff.

1999-07-30  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_formula): quiet wierd
	warning... why is this suddenly prevalent.

1999-07-28  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (biff_put_text): kill warnings.

	* ms-escher.c (read_DgContainer, SpgrContainer_new): ditto.

	* ms-biff.c (ms_biff_put_var_next): Remove padding, daft,
	(ms_biff_put_set_quirk): ditto.
	(ms_biff_query_peek_next): Implemented.


1999-07-28  Michael Meeks  <michael@edenproject.org>

	* ms-biff.c (no_quirks, ms_biff_query_new):
	New quirk support :-)
	(ms_bug_get_padding): Moved into ms-excel-read.c
	(ms_biff_put_var_next, ms_biff_merge_continues): Cleaner quirk stuff.
	(ms_biff_put_set_quirk): I pray this is never used =)
	(ms_biff_put_new, ms_biff_put_var_next): Quirky.

1999-07-28  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_cell) : Correct the error message
          for SST overflow.

1999-07-27  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_supporting_wb) : Make this
          quieter, and add some comments explaining that we have no idea
          what this does or how it works.

1999-07-26  Jody Goldberg  <jgoldberg@home.com>

	* ms-chart.c (BC_R(chartline)) : More state checking.
	  (BC_R(legend)) : Implement.
	  (BC_R(series)) : Store series in chart objects.
	  (ms_excel_biff_dimensions) :

	* ms-obj.c : Closer ties with ms-escher.c.

	* ms-formula-read.c : Changes for VALUE_ERROR. COUNTBLANK
	  takes 1 argument.

1999-07-26  Michael Meeks  <michael@edenproject.org>

	* ms-summary.c (ms_summary_read): Update to ms_ole_summary_close.

	* ole.c (do_summary): ditto.

	* ms-excel-read.c (ms_excel_read_workbook): Comment out
	dependencies freeze/thaw.

	* ms-excel-write.c (write_cell): Update to new PP code.

	* ms-excel-read.c (find_workbook): Remove ms_ole_directory_new.
	(biff_name_data_get_name): Update to new PP code.

	* ole.c (get_file_handle, list_files): ditto.

1999-07-25  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_workbook): Add freeze / thaw
	dependencies.

1999-07-22  Michael Meeks  <michael@edenproject.org>

	* ole.c: Major summary hack, cleaned old cruft & made beautiful.

	* ms-summary.c: Re-write to use new summary stuff in libole2.

1999-07-19  Michael Meeks  <michael@edenproject.org>

	* *.[ch]: Big macro prettify. Moved biff type handling macros into
	libole2/ms-ole.h, and renamed:
		s/BIFF_GET_GUINT/MS_OLE_GET_GUINT/g
		s/BIFF_SET_GUINT/MS_OLE_SET_GUINT/g
	
1999-07-14  Michael Meeks  <michael@edenproject.org>

	* ms-summary.c: Big clean, quiet and sensible handling of
	errors.

	* boot.c (excel_load): Put summary call back in.
	Add excel_read_debug, dump summary info if > 0

1999-07-13  Michael Meeks  <michael@edenproject.org>

	* Makefile.am: Added ms-summary.[ch]

	* ms-summary.[ch]: Created.

	* boot.c (excel_load): Add summary hook.
	Update comments 
	
1999-07-13  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_formula): Improve handling of failure
	  cases to ensure that we set the values and formats even if formulas
	  get confused.
	(ms_excel_formula_shared): Back out change to set value on error.
	(ms_excel_get_xf) : 0 and 15 may be defaults but we now have their
	  records so no need to treat them specially.  Seems to be no need
	  to check for StyleXF vs CellXF...
	(ms_excel_set_cell_xf) : It may be the default but we have the XF data
	  for it now so USE IT.
	(biff_name_data_new, biff_name_data_destroy) : Const add flag to
	  log NAME vs EXTERNNAME.
	(biff_name_data_get_name) : Remove vile hack for 1 vs 0 based names.
	(ms_excel_read_name) : More version madness.
	(BIFF_BOF) : More detailed version info.

	ms-formula-read.c : ARRRGGGGHHHHH!  both NAME and NAME_X are 1 based.
	(PTG_NAME) : Different versions, very different sizes.

1999-07-13  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_formula_shared): Fixup previous patch.
	(ms_excel_read_formula): Re-arrange logic.
	(ms_excel_set_cell_xf): Add check on 'xf' back in ...

1999-07-11  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_formula): Catch NULL cell->text
	(ms_excel_formula_shared): Check on cell... & add position to debug.
	(ms_excel_sheet_append_comment): Add paranoid blank text setting.

1999-07-13  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (ms_excel_read_workbook SST) : Zero sized strings use
	  3 bytes (length + header) not 2.
	(ms_excel_read_cell LABELSST) : Blank strings should have value
	  wrappers.
	(ms_excel_parse_formula) : Support missing trailing args for
	  builtin functions.

	* ms-formula-read.c : Keep stack by prepending and popping, rather
	  than appending.
	(INDEX) : correct missing number of args.

1999-07-12  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.[ch] : Remove XF_style_records.  All XF records are
	  kept in one list.  The fixes the indexing problems we've been
	  having with XF records. No more XF_MAGIC_OFFSET !!
	(biff_name_data_get_name) : Pre-Biff5 seems to use 0 based names, post
	  seems to be 1 base ??  Check this.

	* ms-formula-read.c (excel_formula_build_dummy_handler) : New function.
	(make_function) : split out from here and used for external and builtin
	  functions.
	(MATCH) : correct the number of arguments.
	(ms_excel_parse_formula) : The size of the array is stored at the end
	  too.  This fixes formulas with multiple arrays.
	
	* *.[ch] make the data streams const while reading.

1999-07-12  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (biff_name_data_get_name) : Off by one error in the
	  range check.  Improve debug notification when something bad happens.
	(ms_excel_get_xf) : Improve debug messages to help find the problem
	  with xf indicies in old files.

1999-07-12  Jody Goldberg  <jgoldberg@home.com>

	* ms-chart.c : More record types.

	* ms-escher.c : More record types.

	* ms-excel-read.c (ms_excel_formula_shared) : For some reason XL
	  periodicly :
	    - creates a shared formula
	    - declares its use in a range
	    - then doesn't use it in the upper left corner of the range
	    - and refers to the formula by a different cell in the range ??
	(BIFF_PRECISION) : remove dump, and #if 0, for now until gnumeric
	    supports this.

1999-07-11  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c (biff_font_data_new) : don't delay creation of
	  style_font.
        (ms_excel_get_font) : new function split from.
	(ms_excel_set_cell_font) : here.
	(ms_excel_get_xf) : new function split from.
	(ms_excel_set_cell_xf) : here.
	(biff_xf_data_new) : dont delay setting the style_format.
	(BIFF_COLINFO) : Attempt to use the XF->font->height as a proxy for
	  charwidth ??  Anyone have a better idea ?

1999-07-10  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-read.c : BIFF_COLINFO adjust in charwidth magic number to
	  produce column widths that match my screenshot.

	* TODO: updated.

1999-07-10  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (formula_func_data): Fix REPT = 2 args,
	add VDB = var arg.

	* ms-excel-read.c (biff_get_externsheet_name): Silly but fatal bug
	a child could spot: written by yours truly :-)

1999-07-09  Jody Goldberg  <jgoldberg@home.com>

	* ms-obj.c : Conditionalize the debug info for text objects.

1999-07-09  Miguel de Icaza  <miguel@gnu.org>

	* ms-excel-write.c (biff_put_text): Intiialize variable.

1999-07-09  Jody Goldberg  <jgoldberg@home.com>

	* ms-chart.c (BC_R(chart)) : Correctly handle the fixed point
	  sizes.
	(BC_R(ai)) : Figure the missing link association is bubbles.

1999-07-09  Jody Goldberg  <jgoldberg@home.com>

	* ms-chart.c : Actually make a series object !  After finding another
	  Excel documentation error.

	* ms-obj.c : Conditionalize a debug printout.

	* ms-excel-read.c (biff_name_data_get_name) : Indicies are ONE based.

1999-07-09  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_workbook): Update this with
	Jody's changes, hope I didn't loose anything.

	* ms-biff.c (ms_biff_query_next_merge): Add test for valid
	length before reading.

1999-07-08  Jody Goldberg  <jgoldberg@home.com>

	* libole2/ms-ole.[ch] (dump) : constify.

	* ms-chart.[ch] : Prepare to handle Charts not associated with a sheet.
	Add more record types, improve debug messages.  Begin connection
	to 'escher' stuff for gelframes.  Stubs for real chart SERIES objects.
	Support for Text Objects.

	* ms-excel-read.c : Ditto.  Include cleanups.
	Some debug level rationalization.
	(ms_excel_externname) : Combine Biff7&8 use biff_get_text.

	* ms-escher.[ch] : Start looking at this to parse the CHART_GELFRAME
	  record.  Clear out the massive accumulation of includes.

	* ms-excel-biff.h : Include cleanups.

	* ms-obj.[ch] : Include cleanups.
	    Versioned the object record parsing (Currently only Biff8).
	    (ms_obj_read_biff8_obj) : New function with more error checking.
	    (ms_obj_read_text_object) : New function to read text objects.

	* ole.c : Print biff types in hex to match documentation.

1999-07-09  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c: Major warning cleaning offensive.
	(ms_excel_read_workbook): Hush CodePage, DSF, EOF & clean style.
	(ms_excel_read_sheet): Hush WINDOW2
	(ms_excel_read_name): Hush spurious newlines.
	(ms_excel_read_supporting_wb): Hush now, be a good little function.

	* boot.c (excel_load): ditto.

	* TODO: updated.

	* ms-formula-read.c: s/PARSE_LIST/ParseList/
	Update a few stylistic bits...

1999-07-08  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_formula): Turn error into
	warning.

	* ms-excel-write.c (biff_put_text): Fiddled, this needs serious
	fixing ...

	* ms-excel-read.c (biff_name_data_get_name): Removed daft
	debug churning out.

1999-07-08  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.h (_ExcelWorkbook): Removed internal_names and
	comments.

	* ms-excel-write.c (write_bits): Merged write_constants
	into this + add 'wb' parameter.
	(write_bits): Add TABID, DSF records.
	Add PROT4REV, PROT4REVPASS.
	(write_fonts): Changed put_text from eBiffV7, AS_PER_VER.

	* ms-excel-read.c (ms_excel_read_workbook): Update DFS -> DSF

	* biff-types.h (BIFF_DSF): Mod. from DFS.

1999-07-08  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (ms_excel_parse_formula): Add magic 0x17
	for special undocumented 'Addin Name' support.

1999-07-07  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_name): Fix crucial bug
	in name_def_data calc.
	(ms_excel_read_name): Removed all 'internal_names' stuff.

1999-07-06  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (ms_excel_parse_formula): PTG_NAME:
	use biff_name_data_get_name; fixups: Jody don't do this, this
	was all on the Names branch !

	* ms-excel-read.c (biff_name_data_new): Changed to take Workbook
	not sheet, updated to use GPtrArray.
	(biff_name_data_get_name): Changed to return ExprTree.
	(biff_name_data_destroy): Updated.
	(ms_excel_workbook_destroy): Remove old name hash table stuff.
	(ms_excel_read_name): Fix memory leak before Morten gets there :)
	use biff_name_data_new.
	(ms_excel_read_name): Allocate name.
	(ms_excel_get_name): Culled.

	* ms-excel-read.h (_ExcelWorkbook): Changed name_data to GPtrArray
	Changed _name_get_data to return ExprTree.

	* ms-formula-read.c (getRefV7): Removed ExcelSheet * parameter.
	cleaned function indenting.
	(getRefV8): Ditto. + update all references.
	s/cell_name(/cell_name (
	s/sheet->wb/wb/

	* ms-chart.c (BC_R): Updated parse_formula.

	* ms-formula-read.c (ms_excel_parse_formula): s/sheet->ver/wb->ver/
	updated all calls to itself to add 'wb'.

	* ms-excel-read.c (ms_excel_workbook_new): Setup 'ver'
	(ms_excel_read_workbook): Update call.

	* ms-excel-read.h (_ExcelWorkbook): Add 'ver' field.

	* ms-excel-read.c: Updated all ms_excel_parse_formulae: this
	isn't as balmy as it seems... we should only be using the sheet
	data where we need to as Names have no associated sheet.

	* ms-formula-read.c (ms_excel_parse_formula): Add workbook.

	* ms-formula-read.h (ms_excel_parse_formula): ditto.

1999-07-06  Jody Goldberg  <jgoldberg@home.com>

	* ms-excel-biff.h : remove _eBiff_wrap.

	* ms-excel-read.c : replace _eBiff_wrap with a boolean.
	(ms_excel_set_cell_xf) : Send xf->wrap.
	(excel_map_pattern_index_from_excel) : New function.
	(biff_xf_data_new) : Used here.

1999-07-06  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_name): Fix up Names definition
	offset, start to manualy merge name stuff.

	* ole.c: Fix summary reading code: works now, try it on a
	SummaryInformation stream.

1999-07-05  Jody Goldberg  <jgoldberg@home.com>

	* ms-formula-read.c : Improve debug messages a bit.
	(FORMULA_PTG_NAME) : initial stub implemetation.
	(make_function) : The dodgy special case seems to apply to functions
	  with no arguments too.

	* ms-excel-read.c : Rework handling of Shared/Array formulas.
	  They must follow a FORMULA record and come before a STRING
	  record if the cell contains a string.  The upper left corner
	  of shared formulas, and all of arrays now format correctly.
	  (EXTERNNAME) : Rework the handling to apply to biff7 and biff8.
	  Still only reading the names, not conecting them for real.

1999-07-05  Morten Welinder  <terra@diku.dk>

	* ms-excel-read.c (biff_shared_formula_new): Constify.  Copy data
 	because it seems it can be freed underneath us.
	(biff_shared_formula_destroy): Consequently free data.
	(ms_excel_workbook_destroy): Free global strings.
	(ms_excel_palette_destroy): Fix leak.

	* ms-excel-read.c (ms_excel_read_supporting_wb): Warning killer.
	(ms_excel_read_workbook): Ditto.  Fill in some code page info.
	(ms_excel_read_cell): Ditto.

	* ms-biff.c (biff_getdouble): Re-instate the "BYTE" in
 	G_BYTE_ORDER...
	(biff_getdouble): Constify.

1999-07-04  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (formula_func_data): Fixed ISREF, ISPMT.

	* ms-excel-write.c (write_mulblank): Add 0x200 to BLANK

	* biff-types.h (BIFF_PASSWORD): convert back from
	PASSguint16 :-)

	* ms-formula-write.c (write_arrays): Fix memory leak.

	* ms-excel-read.c (ms_excel_read_formula): Add S59DE9 reference.

	* ms-excel-write.c (write_cell): Updated constant so formulae get
	evaluated correctly.
	(write_formula): Split out complexity, Added STRING result storage.

	* ms-formula-write.c (write_string): Un-dofus the string writing
	fix Excel crash on any formula string.

	* ms-excel-write.c (write_cell): Fixup always calc. & on load,
	don't seem to be needed.
	Implement class specifiers throughout where needed.

	* ms-formula-write.c (OP_*): Helper macros for getting the class
	right on each PTG.

	* formula-types.h: Added class defines.

	* ms-excel-write.c (write_sheet_bools): Removed magic 0x44 from
	last byte of BIFF_COLINFO. Commented out GCW: unneccessary and
	wrong.
	(write_window1): Fiddled with the magic numbers.
	(write_sheet_bools): Add 0x200 to DEFAULTROWHEIGHT.
	(write_sheet): ditto to INDEX.

1999-07-03  Michael Meeks  <michael@edenproject.org>

	* ms-formula-write.c (ms_excel_write_formula): Added critical
	magic 3 padding bytes s Array's are saved properly.

	* ms-excel-write.c (write_sheet): Size optimisation for blank
	rows.

1999-07-02  Michael Meeks  <michael@edenproject.org>

	* ole.c (syntax_error): Update help.
	(read_records, dump_summary, do_summary): Start of summary info
	reading.
	(do_biff_raw): Cleaned unused var.
	(esh_header_contained): commented out.

1999-07-02  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c: more stylistic fiddling on great
	new debug stuff from Jody...

	* *.[ch]:
	s/MsOle_SEEK_SET/MsOleSeekSet/g
	s/MsOle_SEEK_CUR/MsOleSeekCur/g
	s/ms_ole_seek_t/MsOleSeek/g
	s/MsOle_PPS_STORAGE/MsOlePPSStorage/g
	s/MsOle_PPS_STREAM/MsOlePPSStream/g
	s/MsOle_PPS_ROOT/MsOlePPSRoot/g
	s/PPS_TYPE/PPSType/g
	s/ms_ole_pos_t/MsOlePos/g

1999-07-02  Jody Goldberg  <jgoldberg@home.com>

	* ms-chart.c : Stylistic consistancy.
	s/BIFF_CHART_WRITER/ExcelChartWriter/g
	s/BIFF_CHART_READER/ExcelChartReader/g
	s/BIFF_CHART_HANDLER/ExcelChartHandler/g
	s/GUPPI_CHART_STATE/GuppiChartState/g
	s/BIFF_CHART_STATE/ExcelChartState/g
	s:\([^/]\)\* :\1*:g

1999-07-02  Michael Meeks  <michael@edenproject.org>

	* *.[ch]: Much stylistic fiddling:
	s/MS_EXCEL_SHEET/ExcelSheet/g
	s/MS_EXCEL_WORKBOOK/ExcelWorkbook/g
	s/BIFF_BOUNDSHEET_DATA/BiffBoundsheetData/g
	s/BIFF_SHARED_FORMULA_KEY/BiffSharedFormulaKey/g
	s/BIFF_SHARED_FORMULA/BiffSharedFormula/g
	s/MS_EXCEL_PALETTE/ExcelPalette/g
	s/BIFF_FONT_DATA/BiffFontData/g
	s/BIFF_EXTERNSHEET_DATA/BiffExternSheetData/g
	s/BIFF_FORMAT_DATA/BiffFormatData/g
	s/BIFF_QUERY/BiffQuery/g
	s/BIFF_PUT/BiffPut/g
	s/GETBYTE/GET_GUINT8/g
	s/GETWORD/GET_GUINT16/g
	s/GETDLONG/GET_GUINT64/g
	s/GETLONG/GET_GUINT32/g
	s/BYTE/guint8/g
	s/WORD/guint16/g
	s/LONG/guint32/g
	s/MS_OLE_STREAM/MsOleStream/g
	s/MS_OLE_DIRECTORY/MsOleDirectory/g
	s/MS_OLE/MsOle/g

	* ms-excel-read.c: Large bout of indenting / formatting
	updates, sorry if you have patches ...
	
1999-07-02  Michael Meeks  <michael@edenproject.org>

	* boot.c: Added 'main.h' to include debug symbol.

1999-07-02  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_workbook): Actually
	insert the workbook_destroy at the end ( Huge leak ).

1999-07-01  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (ms_excel_write_get_externsheet_idx):
	Stubbed.
	(write_cell): More, verbose debug.
	(write_index): shut it up.
	(write_sheet): Fix a rather serious logic error that was
	loosing us cells.
	(write_sheet): Added error message for huge sheets... needs
	more cunning indexing code.

	* ms-formula-write.c (write_cellref_v[78]): Fixed
	order of relative col/row bits. Implemented latter.
	(write_ref): Implemented BiffV8 support.
	(write_string): Added MISSARG support.
	(write_area): Implemented BiffV8 support, and 
	3D area support.

	* ms-formula-write.c (write_node): Split out
	(write_ref): attempted to implement inter-sheet
	references.
	
	* ms-excel-write.c (ms_excel_write_get_sheet_idx):
	Created.

1999-07-01  Morten Welinder  <terra@diku.dk>

	* boot.c: Clean out an incredible accumulation of #includes.

1999-07-01  Jody Goldberg  <jgoldberg@home.com>

	* formula-types.h : Add some missing ptg types.

	* ms-excel-read.c : ms_excel_read_debug, ms_excel_formula_debug,
	    ms_excel_color_debug, ms_excel_chart_debug.  Declare and use these
	    to allow command line control so that we can ask remote users for
	    debug info.
	  (excel_builtin_formats) : Correct some typos.
	  (ms_excel_read_formula) : Document errors in Excel SDK.
	  (ms_excel_get_name) : Handle workbook local names. (stub)
	  (ms_excel_read_name) : re-enable with name lookup. not connected yet.

	* ms-excel-read.h : Add internal_names to workbook.
	(ms_excel_get_name) : declare.

	* ms-formula-read.c : switch to new debug scheme.
	  More verbose warnings for errors so we dont ignore them.
	  (FORMULA_PTG_NAME) : Partial implementation until I have time to look
	  at the branch.
	  (FORMULA_PTG_PERCENT) : Guess at this one.
	  Begin to handle 'extended' ptgs.  Very minimal docs.

1999-07-01  Michael Meeks  <michael@edenproject.org>

	* ms-formula-write.c (ms_formula_cache_init),
	(ms_formula_cache_shutdown, cache_remove):
	Implemented.

	* excel.h: Added formula_cache functions.

	* boot.h (excel_init): Added excel_shutdown

	* boot.c (excel_shutdown): Created.

1999-07-01  Michael Meeks  <michael@edenproject.org>

	* ms-formula-write.c (write_string): Created
	Implemented throughout for simplicity.

	* ms-excel-write.c (biff_put_text): Expanded to allow
	more flexible string writing.

	* ms-excel-write.h: Added type to specify string write.

	* ms-formula-write.c: All biff_put_text's write length
	correctly.
	Implemented Area PTGs

	* ms-excel-read.c (ms_excel_read_formula): Fix silly
	bug with broken formuale.

	* ms-biff.c (ms_biff_put_var_seekto): Added seekto
	API for fiddly biff types.

	* ms-excel-write.c (biff_put_text): Made external

	* ms-formeula-write.c: Created.

1999-06-30  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (ms_excel_parse_formula): Updated
	Operation handling for new structure ( array ).

	* ms-excel-read.c (biff_get_global_string): Removed.

	* ms-formula-read.c: Updated func_data, and
	formula_op_data for Miguel and correctness.
	Cleaned FORMULA_NO_PRECEDENCE.

	* excel.h: Move and rename FormulaFuncData.

	* ms-excel-write.c: Moved structures to header.
	Renamed all structures to make Miguel happy.

	* Makefile.am: Added ms-formula-write.[ch]

1999-06-30  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.h: Split out types.

	* formula-types.h: Imported from above.

	* ms-excel-write.c (write_value): Fix LABEL versioning.

1999-06-30  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c:(write_value): Hard-coded
	version stuff onto NUMBER & RK.
	(write_xf_record): Added hack to produce
	identical XF table to test case.
	(write_rowinfo): Added 0x200
	(write_sheet_bools): ditto to DIMENSIONS.

1999-06-30  Jody Goldberg  <jgoldberg@home.com>

	* biff-types.h : Add some undocumented BIFF types, move INDEX,
	  DEFAULTROWHEIGHT into lsb territory.

	* ms-excel-read.c (ms_excel_palette_new) : Correct debug messages.
	(ms_excel_palette_get) : Improve debug messages, and assume that
	  0, 64, 127 are all contrast states.
	(ms_excel_set_cell_colors) : Tail merge with ms_excel_set_cell_xf,
	  handle special case of fill-pattern=0.  Now all the color sheets
	  look OK !! Next step, patterns.
	(ms_excel_read_formula, ms_excel_read_boolerr) : Read current values so
	  we can set styles.  Empty strings are undocumented :-(
	(ms_excel_read_cell) : Handle array formulas.
	(ms_excel_read_sheet, ms_excel_read_workbook) : Add some unhandled
	  record types so that we can start to enable state checking.
	(ms_excel_unexpected_biff) : New function for warning about state.
	(biff_xf_data_new) : Don't map pattern types as if they were borders.

	* ms-formula-read.c (make_function) : Generate a dummy handler for
	  unknown functions.
	  (unknownFunctionHandler) : A dummy handler returning NAME for unknown
	  functions.

	* ms-chart.c : Use ms_excel_unexpected_biff, handle some
	  undocumented codes, and fill in more record types.

1999-06-30  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (write_sheet_bools): Updated
	BIFF_COLINFO.
	(write_value): Fixed up write_value to handle
	numbers more correctly.
	(write_window1): fixed WINDOW1 magic numbers.
	(write_formats): Updated format's upper bits.
	(write_sheet_tail): Mended broken selection.

1999-06-29  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (write_sheet_tail): Updated
	magic selection. Added magic GCW.
	(write_constants): Update to help debugging; I'm
	not really an egotist.
	(write_formats): Added constants from air.
	(write_index): Correct to absolute index.
	Fix all mis-alignments of streamPos read ( lots ).
	(biff_bof_write): Return streamPos to help with
	realignment.

	* ole.c (do_biff_raw): Added position readout.

1999-06-29  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (biff_boundsheet_write_last): Use
	correct type.
	Added streamPos to Workbook for INDEX calcs.
	(write_index): Implemented.
	(write_sheet): Added write_index, and neccesary bits.

	* ms-excel-read.c (biff_nasty_font_check_function):
	removed, wonderful !
	(biff_font_data_get_style_font): Updated & cleaned.

1999-06-28  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (write_formats): Write some magic
	standard number formats.

1999-06-27  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c: excel_builtin_formats: Populated with
	NULL's in sensible places to clean maintainability.

	* ms-formula-read.c (ms_excel_parse_formula): Add fix for
	broken array formulae causing infinite loop.

	* ms-excel-read.c (ms_excel_read_cell): Fix Morten's fatal
	cock-up in value_new_string (NULL).

	* ms-excel-write.c (write_mulblank): Implemented.
	(write_sheet): Started to get DBCELL / Index type code in
	place.
	Cleaned nasty cell hash iterator, and closure. We now rely
	on the optimal handling of max_col/row_used in the sheet.

	* ms-excel-read.c (ms_excel_read_cell): Insert blank into
	the correct column, not just the same one all the time.

	* ms-excel-write.c (write_palette): Write default palette.

	* ms-excel-read.c: Externalised default palette, and format
	data.

	* excel.h: ditto.

1999-06-25  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c: Minor fiddles setting blank flag in some new
	places, and types changed to gboolean.
	
	* ms-excel-read.h (_MS_EXCEL_SHEET): changed 'blank' to gboolean.

1999-06-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-excel-read.c (biff_font_data_get_style_font): Use
	style_font_ref here instead of creating a new font.

1999-06-22  Morten Welinder  <terra@diku.dk>

	* ms-excel-read.c (biff_get_rk): Handle negative ints and ints/100
 	right.  Thanks to Jody for finding this.

1999-06-21  Morten Welinder  <terra@diku.dk>

	* ms-formula-read.c (make_function): Handle constant symbols.

	* ms-excel-read.c (ms_excel_read_cell): Insert bools as values,
 	not constant expresssions.
	(biff_get_text): Make a little more quiet.
	(ms_excel_read_cell): Insert strings as values, not via text.

	* ms-excel-read.c (ms_excel_read_cell): Handle errors and boolean
 	constants without going through text.  (In particular, this gets
 	errors right and prepares for a proper bool type.)

	* ms-formula-read.c (ms_excel_parse_formula): Fix error constants.

1999-06-21  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_cell): Remove Jody's
	check against NULL pointers, insert_form handles them.

	* ms-chart.c (BC_R): make call to dump_tree conditional

	* ms-excel-write.c (write_sheet_bools): Various fixes.
	(write_value): Change RSTRING -> LABEL

	* README (TODO): Updated.

	* ms-excel-write.c (write_externsheets): Fix for single sheet
	workbooks.
	(write_formats): Write the format index code!
	(write_sheet_bools): Divide default col width by 16

	* ms-excel-write.h (ms_excel_write_workbook): Cleaned and fixed
	header.

1999-06-21  Jody Goldberg  <jgoldberg@home.com>
 
 	* biff-types.h : Move NAME from 218 -> 18, rename Chart biff types to
 	lower case to facilitate decls.
 	* ms-biff.[ch] (dump_biff) : export.
 	* ms-excel-read.[ch] : (ms_biff_bof_data_new, ms_biff_bof_data_destroy)
 	export.
 	* ms-formula-read.c : Improve handling of array formulas.
 	* ms-obj.c : Adjust signatures, and split chart handling into its own
 	file.
 	* ole.c : Count BACKWARDS to allow BIFF types with high bytes to
 	override those with only low bytes specified.
 	* Makefile.am : Add ms-chart.
 	* ms-chart.[ch] : New files.  No real functionality.  60% complete.
 
1999-06-17  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (formula_func_data): Fixed up, should work
	again.

1999-06-17  Morten Welinder  <terra@diku.dk>

	* ms-formula-read.c (make_function): Yet another leak fix.

	* ms-formula-read.c (expr_tree_unary): Obsolete.  Use
 	expr_tree_new_unary instead.
	(expr_tree_cellref): Obsolete.  Use expr_tree_new_var instead.
	(expr_tree_value): Obsolete.  Use expr_tree_new_constant instead.
	(expr_tree_string): Simplify.
	(ms_excel_parse_formula): Use expr_tree_string.  Use
 	expr_tree_new_binary.
	(make_function): Use expr_tree_new_funcall.  Fix leak.

	* ms-excel-read.c (ms_excel_read_name): Don't print null pointers.
	(ms_excel_read_workbook): Ditto.

1999-06-17  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): LOG, ROMAN, TRUNC, and
 	BETADIST made var args.
	
1999-06-17  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (make_function): Added debug.
	(formula_func_data): Expand comments.

1999-06-17  Jody Goldberg  <jgoldberg@home.com>

	* ms-formula-read.c (formula_func_data): Fixed some
	minor errors.
	
1999-06-16  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): SUMIF made var args.
	
1999-06-15  Morten Welinder  <terra@diku.dk>

	* ms-formula-read.c (ms_excel_parse_formula): Handle bools.  Plug
 	leak.
	(make_function): Plug leak.

	* ms-excel-read.c (biff_font_data_get_style_font): Supply correct
 	size when initialising.
	(biff_nasty_font_check_function): Revert last change.  Extra
 	parameter ptsize.

1999-06-15  Jody Goldberg  <jgoldberg@home.com>

	* ms-formula-read.c (formula_func_data): Repopulate using xlcall.h and
	reading the docs for each function to deduce the number of args.
	
1999-06-14  Morten Welinder  <terra@diku.dk>

	* ms-excel-read.c (biff_nasty_font_check_function): Load fontset,
 	not font.
	(biff_font_data_get_style_font): Make sure size constraints don't
 	conflict.

1999-06-15  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (biff_font_data_get_style_font): Add check
	for NULL font name; return default font.

1999-06-13  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): LOG, ROMAN, and TRUNC
 	made var args.
	
1999-06-13  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): PRODUCT, ROUNDDOWN,
 	ROUNDUP, SUBTOTAL, SUMSQ, and SUMIF fixed.  SUMX2MY2 and SUMX2PY2
 	added but they don't work (I don't know why?).

1999-06-13  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_set_cell_colors): Remove identical color
	warning. This is a useful bug at the moment.

1999-06-13  Jody Goldberg  <jgoldberg@home.com>
        * ms-excel-read.c (biff_get_error_text) : Use new global error strings.
        (ms_excel_default_palette) : New function.
        (ms_excel_palette_new) : Colors are stored
                    <DontCare><Blue><Green><Red>
            rather than
                    <DontCare><Red><Green><Blue>
        (ms_excel_palette_get) : Clone bytes to scale colors, begin to
        handle more of the 'special' color indices and guess that indices
        are offset by 8.
        (ms_excel_palette_destroy) : Don't delete the default palette.
        (ms_excel_set_cell_colors) : Don't filter too many bits, support
        initial contrast methods.
        (ms_excel_set_cell_font) : Ditto.
        (ms_excel_set_cell_xf) : Ditto.
        (biff_xf_data_new) : Default palette to internal palette.

1999-06-12  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_supporting_wb): 
	Renamed from _WB.
	(ms_excel_read_name): Remove buggy names assert.

1999-06-11  Jody Goldberg  <jgoldberg@home.com>

        * biff-types.h: Add some missing types as defined in
        the Excel 97 Developers kit.  Begin coverage of Chart specific records.
        Improve documentation of 'odd-ball' entries and collsions in the low
        order numbering scheme.

        * ms-obj.c (ms_obj_read_obj) : Remove unused sheet param
        to facilitate support for Workbook level objects.  Extend known object
        types.
        * ms-obj.h (ms_obj_read_obj) : Ditto.

        * ms-obj.c (ms_chart_biff_read) : Initial experimental
        harness for excel charts.
        * ms-obj.h (ms_chart_biff_read) : Ditto.

        * ms-excel-read.c (biff_name_data_new) : Take Workbook instead of sheet.
            (ms_biff_unknown_code) : New function split out from.
            (ms_excel_read_workbook) : Here.
            (ms_excel_read_name) : New function split out from.
            (ms_excel_read_cell) : Here.
            (ms_excel_externname): New function split out from
            (ms_excel_read_cell) : Here.
            (ms_excel_read_supporting_WB) : New function.  Will probably
            split up in the future when the filename encoding is clarified.
            (ms_excel_read_workbook) : Precheck for odd-balls and chart types.
            Add hooks for other fields.

1999-06-09  Michael Meeks  <michael@edenproject.org>

	* ms-excel-read.c (ms_excel_read_workbook): Added version
	printout.
	(ms_excel_set_cell_colors): More debug.
	(biff_font_data_new): Added strange truncation of font
	color_idx.
	(ms_excel_palette_get): >= 0.

1999-06-08  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (formula_func_data): correct DAYS360,
	add TIMEVALUE.

1999-06-07  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (formula_func_data): Fix ATAN2 -> PI

1999-06-02  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (ms_excel_parse_formula): Elucidate
	error messages.
	(ms_excel_parse_formula): clean debug.
	(formula_func_data): Fix COUNT and BETADIST.

1999-06-01  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (write_sheet_bools): Added yet more
	magic numbers.
	(write_sheet_tail): Implemented WINDOW2, SELECTION as
	magic.
	(ms_excel_write_workbook): Fix silly big dimension block.

	* boot.c (excel_init): Put Excel 95 on by default.

	* ms-excel-write.c (write_bits): Added WINDOW1 bit.
	(write_fonts): Add slight difference in duplicate fonts.
	(write_xf_record): Added more fields.

1999-05-31  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (biff_bof_write): Fixed _major_
	bug in BOF writing.
	(write_xf_record): Version fix.
	(write_bits): Lots of silly little records.
	(write_workbook): Write bits.
	(write_sheet_bools): Added lots of flags.
	(write_sheet): Added sheet_bools.

	* boot.c (excel_init): Changed 98->97 in text.

	* ms-excel-write.c (write_workbook): Fix serious list
	bug freeing list then using it !

1999-05-30  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c: Changed to biff_put_commit
	throught.
	(write_fonts): Added more magic numbers.

	* ms-biff.c (ms_biff_put_commit): Added, and made
	other commits static.

	* ms-excel-write.c: Indenting fixes.
	(write_constants): CODEPAGE support.
	(write_workbook): Added missing write_xf call.

1999-05-30  Nick Lamb <njl98r@ecs.soton.ac.uk>

	* ms-formula-read.c (getRefV8, getRefV7): Fix shared
	formulae absolute references.

1999-05-28  Michael Meeks  <michael@imaginator.com>

	* ms-excel-write.c: Minimal Pallete / XF writing.
	Basic font writing.
	(biff_put_text): Horrendous bug fixed.
	(write_magic_interface): Magic...

1999-05-26  Michael Meeks  <michael@imaginator.com>

	* biff-types.h: Fleshed out defines, now the 'compatible'
	staroffice file is dumped nicely.

	* ole.c (read_types): Added fudge in case files are nearby.

	* ms-excel-write.c (ms_excel_write_workbook): Force Big
	Block file.
	(write_value): Set vesion on biff_put_text for RSTRING to V7.

1999-05-24  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Added 'debug' option to dump allocation.

1999-05-21  Nick Lamb <njl98r@ecs.soton.ac.uk>

	* ms-formula-read.c: Lots of new formulae translations.

1999-05-20  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Change ole_new to ole_open.
	(list_files): Added assertion.

	* boot.c (excel_load): Same.

1999-05-19  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Add New OLE file creation support.

	* ms-excel-read.c (ms_excel_set_cell_xf): Cleaned silly
	debug.

1999-05-19  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): LOGNORMDIST and NORMSDIST
 	fixed.

1999-05-17  Michael Meeks  <michael@imaginator.com>

	* ms-formula-read.c (formula_func_data): Function data from
	Luke Plant.

	* ms-biff.h: Add biff_setdouble prototype.

	* ms-excel-read.c: Updated commenting.

	* ms-biff.c (ms_bug_get_padding): Quietened.
	Implemented 'tell' throught
	(ms_biff_put_var_commit): Fixed seeking over end.

1999-05-16  Michael Meeks  <michael@imaginator.com>

	* ms-excel-write.c (biff_put_text): Fix silly assertion.

	* ms-excel-read.c: Added debug to reading side,
	Cleaned conditional debug to use #defines

	* ms-excel-write.c (write_sheet): Save a number in each
	sheet to stop their destruction.

	* ms-excel-biff.h: Added helper set row,col,xf macros.

	* ms-biff.c (ms_biff_put_var_commit): Fixed.
	Added streamPos setting on commit.

	* ms-excel-write.c: Large updates.

1999-05-16  Michael Meeks  <michael@imaginator.com>

	* ms-formula-read.c (make_function): Allow fn_idx == 0
	add translation for RANK.

1999-05-15  Michael Meeks  <michael@imaginator.com>

	* ms-excel.[ch] -> ms-excel-read.[ch],

	* ms-formula.[ch] -> ms-formual-read.[ch]

	* All files incldes updated to obey above.
	
	* ms-biff.c (ms_biff_put_new): Implemented,
	(ms_biff_put_destroy): Implemented.
	Various other functions updated / fixed.

	* ms-excel-write.c (ms_excel_write_workbook): Change stream name
	depending on the version.
	Close streams / directory entries correctly.
	(write_workbook): Created.

1999-05-15  Michael Meeks  <michael@imaginator.com>

	* Makefile.am: stop 'ole' being installed.

1999-05-15  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Cleaned debug.

	* boot.c (excel_init): Added write hooks.
	(excel_save_95, excel_save_98, excel_save): Created.

1999-05-14  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Finaly got the ARRAY
	docs sorted, deciphered inconsistancies etc.

1999-05-14  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Implemented V7. 3D refs
	and 3D Area references.
	(make_inter_sheet_ref_v7): Created to deal with V7 references.

	* ole.c (really_put): Changed to ms_ole_get_root.

	* ms-excel-biff.h: moved biff_version to 'excel.h'.

	* *.c: Re-ordered includes.

	* ms-excel-write.c (ms_excel_write_workbook): Fleshed out.

	* ms-biff.c (biff_put*): Fleshed out.

	* ms-biff.h (BIFF_SET_GUINT*): Added BIFF setting macros.

1999-05-13  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Updated Array support.

	* ms-excel.c (ms_excel_set_cell_colors): Kills colors where
	backgnd & foregnd are same, needs pattern stuff to work
	before it can be fixed.
	(ms_excel_palette_get): Sorted special idx=64 color & added
	sanity check.

1999-05-13  Michael Meeks  <michael@imaginator.com>

	* ms-biff.h (ms_biff_query_next): Macrofied.

	* ms-biff.c (ms_bug_get_padding): Routine to overcome
	nastiness in MS' flawed implementation of CONTINUE records.
	(ms_biff_query_next_merge, ms_biff_merge_continues),
	(ms_biff_query_unmerge): Add padding corrective.

1999-05-12  Michael Meeks  <michael@imaginator.com>

	* ms-biff.h: Major overhaul, added some fields to be implemented.
	Added stubs for new BIFF write-side.

	* ms-biff.c (biff_setdouble): Implemented.

	* ms-excel.c (ms_excel_read_cell): BIFF_NUMBER: Removed last
	vestige of nasty number->text->number sillyness.

	* Makefile.am (libexcel_a_SOURCES): Added excel.h,
	ms-excel-write.[ch].

	* boot.c (excel_load): Updated name & headers.

	* ms-excel.c (ms_excel_write_workbook): Stubbed.

	* ms-excel.h: Split out excel specifics into smaller header.
	Renamed functions to remove nasty mixed case.

1999-05-12  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Add check on ptr to fix NULL pointers getting
	to strcasecmp.
	(do_copyin): Added mass-copy in/out function.

1999-05-10  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_sheet): Added new
	workbook_focus_sheet stuff.

1999-05-10  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>

	* Makefile.am (INCLUDES): Use -I$(srcdir)/libole2 instead of
	-Ilibole2 to allow srcdir!=builddir.

1999-05-09  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (make_function): More useful debug.
	Added Database function translation.

1999-05-08  Michael Meeks  <michael@imaginator.com>

	* ole.c (do_get, do_put): Sill fread/write no brainer.
	(main): Less verbose.

	* README: Updated to list more useful options.

1999-05-08  Michael Meeks  <michael@imaginator.com>

	* ms-biff.c (ms_biff_query_copy): Updated to use new
	global ms_ole_stream_copy.

	* Makefile.am: Split out 'ole' program, added libole2
	subdir. Added ms-biff.c.

	* libole2/ Created, moved ole.c, ms-ole.[ch] there.
	
1999-05-08  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Large re-structure, split out into smaller
	functions.

	* ms-formula.c (ms_excel_parse_formula): Hack at ARRAY
	functionality...

	* ms-excel.c (ms_excel_sheet_set_comment): Fix for setting
	comments on blank cells; was fatal.

1999-05-07  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Fixed horrible bug
	in PTG_ATTR, not stopping on duff attr.

	* ms-excel.c (ms_excel_read_cell): Cleans to ARRAY_FORMULA.

1999-05-06  Michael Meeks  <michael@imaginator.com>

	* ms-ole.c (ms_biff_query_new, ms_biff_merge_continues)
	Better merge support.

	* ms-biff.h (_BIFF_QUERY): Added merge count

1999-05-06  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excelReadWorkbook): Added freeze /
	thaw redraws for speed.

	* ms-escher.c (OPT_new): Expanded.
	(BStoreContainer_destroy): Added debug.

	* ole.c: Updated functions from ms-escher.c
	(main): Correctly skip over previously merged stuff.

1999-05-05  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (parse_list_push_raw): Cleaned debug.
	(parse_list_push): Added (different) debug.
	(formula_func_data): Fixed comments.
	(duplicate_formula): Removed.

1999-05-05  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_cell): Updated debug.
	(ms_excel_sheet_insert_val): Fixed prototype.

	* ms-formula.c (expr_tree_unary): Added helper fn.
	(ms_excel_parse_formula): Added +/- unary op. loading.
	Remove redundant guff from formula_op_data.

	* ms-formula.h: Removed FORMULA_ARRAY_DATA: redundant.
	Added PTG_U_PLUS, PTG_U_MINUS.

1999-05-04  Morten Welinder  <terra@diku.dk>

	* ms-excel.c (ms_excel_workbook_new): Fix argument list.

1999-05-02  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (biff_get_externsheet_name): Converted to return
	a Sheet *
	(ms_excel_sheet_shared_formula): Returns ExprTree.
	(biff_boundsheet_data_new): Added EXCEL_SHEET * to BOUNDSHEET_DATA
	this really needs rationalising !
	Fixed all things that use ms_formula stuff...

	* ms-formula.c: The most comprehensive re-write of the entire
	formula parsing structure. 80% + of code changed. Now smaller,
	cleaner, meaner, leaner ... and featuring all your favorite bugs.

1999-05-02  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (biff_xf_data_destroy): Changed prototype.
	(ms_excel_workbook_destroy, ms_excel_workbook_new),
	(ms_excel_set_cell_xf, biff_xf_data_new):
	Updated XF to GPtrArray, this saves a hash lookup per cell.
	(ms_excel_workbook_new): excel_sheets -> GPtrArray
	(ms_excel_workbook_attach): Drasticaly simplified
	(ms_excel_sheet_set_index): Removed.

	* ms-excel.h (_MS_EXCEL_WORKBOOK): Changed XF hashes
	to PtrArray's for speed & elegance.

1999-05-02  Michael Meeks  <michael@imaginator.com>
	
	* ms-excel.c (ms_excel_read_sheet): Add check before
	ms_excel_sheet_destroy.
	(ms_excel_read_sheet): Cleaned debug, and made it nicer.
	(ms_excel_workbook_detach): Fixed semantics of workbook_detach
	and plug large memory leak.

1999-05-02  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Removed annoying
	debug killing performance.

	* ms-excel.c (ms_excel_sheet_insert_val): Created.
	(biff_get_rk): Removed impossible clause.
	Returns a Value now for speed; also increases accuracy.
	(ms_excel_read_cell): BIFF_RK, BIFF_MULRK: Removed nasty
	buffer and ugly printf.
	(ms_excel_sheet_insert): Made static, & removed from .h

1999-04-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (ms_ole_new): Applied patch from Michael Meeks to allow
	opening of excel files in read-only mode.

1999-04-29  Michael Meeks  <michael@edenproject.org>

	* ms-ole.c (ms_ole_new): Revert to read-only mapping on failure.
	(MW: there has got to be a reason why we don't start that way.)

1999-04-29  Morten Welinder  <terra@diku.dk>

	* ms-excel.c (ms_excel_workbook_detach): Add new extra parameter
 	to workbook_detach_sheet.

1999-04-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-excel.c (ms_excel_workbook_detach): Check the return value of
	workbook_detach_sheet.
	(ms_excel_read_sheet): If detaching fails, there is a dependency.

Tue Apr 20 16:34:38 1999  Morten Welinder  <terra@diku.dk>

	* ms-obj.c (ms_obj_read_obj): Initialise type.
	
1999-04-19  Morten Welinder  <terra@diku.dk>

	* ms-excel.c (biff_get_rk): Fixed up mask on eIEEE.
	
1999-04-19  Michael Meeks  <michael@edenproject.org>

	* ms-escher.c (read_DgContainer): Removed redundant
	debug.

	* ms-ole.c (ms_biff_merge_continues): Silly ordering
	bug fix. And memory leak removed.

	* ms-excel.c (ms_excelReadWorkbook): Silly string table
	length bug. Wehn we truncate, cut the length as well.

	* ole.c (syntax_error): Updated help.
	(main): [old] added 'biffraw'
	
1999-04-19  Morten Welinder  <terra@diku.dk>

	* ms-formula.c (ms_excel_parse_formula): Fix for
	strings: use quotes.

	* ms-excel.c (ms_excel_sheet_append_comment): Fix.
	(biff_font_data_get_style_font): removed assert, and
	use g_snprintf
	(ms_excelReadWorkbook): Removed duff
	comments, and some debug.

1999-04-19  Michael Meeks  <michael@edenproject.org>

	* ms-biff.h (_BIFF_QUERY): Set length to guint32
	(BIFF_GETLONG): Added various casts.

	* ms-ole.c (ms_ole_read_ptr_bb, ms_ole_read_ptr_sb):
	Re-enabled, and fixed silly bug.
	(dump): the 'int' type behaves very strangely.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-ole.c: Rather important fixes. How did it ever
	work before !.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-ole.c, ms-ole.h: MASSIVE hack. invalidates
	pretty much all the previous ole changelog entries.
	(dump): Updated type.

	* ms-excel.c (ms_biff_bof_data_new): Removed assert.
	(biff_get_externsheet_name): Removed assert.
	(ms_excel_parse_formula): Commented out array support.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-excel.c (ms_excel_workbook_new): Added flag so
	only reads first group & merges rest.

	* ms-escher.c (biff_to_flat_data): Improved merge
	heuristic.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-escher.c (bse_type_to_name): Created.
	(bse_type_to_name): Created.
	(BSE_new): Updated.
	(esh_header_contained): Moved duplicated code
	into this and added check.
	(esh_header_next): Added debug.
	(write_file): Writes a pixmap to disk.

1999-04-15  Michael Meeks  <michael@edenproject.org>

	* ms-excel.c (ms_excelReadWorkbook): Put PRECISION
	output conditional on debug.
	Put escher_hack_get_drawing on condition of --debug

	* ms-formula.c (ms_excel_parse_formula): Added
	'Optimised Choose' functionality.
	(formula_func_data): Inserted CHOOSE.
	(ms_excel_parse_formula): Patch for broken MS files.
	Updated 'Name' records.

1999-04-15  Michael Meeks  <michael@edenproject.org>

	* boot.c: Fixed includes to remove annoying warning.
	(excel_load): Add workbook_set_filename for style.

	* ms-excel.c (ms_excel_workbook_detach): Added debug
	if can't remove sheet for some reason.

	* ms-ole.c (pps_get_text): Hacked in some better
	unicode support. Might work cross-platform now.
	(ms_ole_new): Added name printout to help debug.
	(ms_ole_directory_next): Conditional'd debug.
	(directory_setup): clean debug.

	* ms-excel.c (ms_excel_set_cell_colors): Removed debug.

1999-04-15  Michael Meeks  <michael@edenproject.org>

	* ms-formula.c (ms_excel_parse_formula): PTG_AREAN added,
	and PTG_AREA updated to include 'shared' flag.
	(ms_excel_parse_formula): Added PTG_ARRAY code.

	* ms-formula.h (FORMULA_PTG_ARRAY): Added PTG_ARRAY

	* ms-excel.c (ms_excel_read_cell): Added more sensible
	floating point printing throught.

	* ms-excel.h (MS_EXCEL_DOUBLE_FORMAT): Created to
	standardise number transfer.

1999-04-14  Michael Meeks  <michael@edenproject.org>

	* ms-formula.h: Updated ms_excel_parse_formula prototype.

	* ms-excel.c (ms_excel_read_cell): Added 'shared' flag
	to all ms_excel_parse_formula instances.
	(biff_get_error_text): Set arg to const.
	(ms_excel_sheet_shared_formula): Removed debug.
	(ms_excel_read_cell): Removed debug.
	(ms_excel_sheet_insert): const text arg.

	* ms-excel.h: Updated prototypes.

	* ms-formula.c (ms_excel_parse_formula): RefN replaced.
	updated prototype & args. Updated optimised if call.
	(getRefV8, getRefV7): Attempt at shared formulae.
	Fairly brutal hack: seems to work :-)

1999-04-14  Michael Meeks  <michael@edenproject.org>

	* ms-excel.c (biff_get_text): Remove platform dependance.
	(biff_get_error_text): Changed type.
	(biff_boundsheet_data_new): s/int strlen/int slen/
	(biff_font_data_destroy): Free after last use.
	(biff_get_rk): Changed IEEEx10 to IEEEx100
	(ms_excel_read_cell): COL_INFO: Fixed width cast.
	Thanks to great bug reports by Morton Welinder.

	* ms-excel.h: Add const to biff_error_get_text.

	* ms-ole.c (SET_GUINT8): Fix GET_<TYPE> macros.

	* ms-biff.h (BIFF_GETWORD): Patch from Morten Welinder to
	improve GET<TYPE> macros.

1999-04-14  Michael Meeks  <michael@edenproject.org>

	* ole.c (dump_escher): Fatal Escher cockup removed, makes
	the problem look more complex and realistic.
	Indenting added.

	* ms-escher.c (read_DgContainer): Created.
	(SpgrContainer_new): Created.
	(ms_escher_hack_get_drawing): Add debug.
	(SpContainer_new): Created.
	There must be a good way of doing this recursively.

1999-04-13  Michael Meeks <michael@imaginator.com>

	* ms-escher.c (esh_header_next): Fixedup to use correct lengths.
	Various major bits of work, started parsing the heirarchical
	bitstream. Escher looks better than BIFF, 32bit clean seemingly.
	
	* ole.c: Copied in updates.
	(dump_escher): Recursive dump of structures.

1999-04-13  Michael Meeks <michael@imaginator.com>

	* ms-ole.c(ms_biff_query_copy): Fix nasty bug: duplicate
	stream pos record too.

	* escher-types.h: Created to hold the drawing layer types.

	* ole.c (read_types): Expanded to cope with escher types.
	(get_opcode_name): Duplicated into:
	(get_biff_opcode_name, get_escher_opcode_name): Created.
	(main): Updated biff section.
	Added 'draw' = search for drawings and dump section.

	* README: Updated to doc. 'draw'
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* ms-objc.c/h renamed ms_obj_read_graphic to
	ms_obj_read_obj, the real graphic lurks elsewhere...

	* ms-escher.c/h: Created to handle the 'Office drawing layer'
	This is a hack and needs better OLE support code.

	* ms-ole.c (ms_ole_stream_duplicate): Created, not too bad a hack
	(ms_biff_query_data_to_stream): Nasty hack for ms-escher
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* ms-obj.c: Created to deal with the horrors of embedded graphic
	objects !

	* ms-obj.h: Include for the same

	* ms-excel.c: Include ms-obj.h
	(ms_excel_read_sheet): Add call to ms_obj_read_graphic.

	* biff-types.h: Update comments.

	* Makefile.am: Add new files.

	* ole.c: Nice header.
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* biff-types.h: Fleshed out.

	* ms-excel.c (ms_excel_sheet_set_comment): Created
	(ms_excel_sheet_append_comment): Created
	(ms_excel_read_sheet): Added BIFF_NOTE support.
	(ms_excel_set_cell_xf): Fixed spurious debug, and made more
	robust.
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* ms-excel.c: Various unneeded BIFF tags implemented for
	completeness.

	* biff-types.h: The tag definitions.

	* ole.c (read_types): Improved.
	(main): Flag duplicates sensibly.

1999-04-12  Michael Meeks <michael@imaginator.com>

	* ole.c: Added 'biff' command.
	Added type file loader/parser and helper function.

	* biff-types.h: Created

	* ms-excel-biff.h: Moved types out.

1999-04-11  Michael Meeks <michael@imaginator.com>

	* ole.c: Major update, interactive mode, help, dump command
	etc.

1999-04-09  Michael Meeks <michael@imaginator.com>

	* ms-excel.c (ms_excel_workbook_detach): Paranoid NULLing
	of pointers.
	Fixed _silly_ bug with g_list_remove !
	(ms_excel_workbook_attach): Paranoia checking.
	(biff_get_text): Converted int lp to guint32 lp.
	(ms_excelReadWorkBook): BIFF_SST: Added overrun check,
	some idiot splits the SST table for seemingly no good reason.
	Cleaned debug.
	(ms_excel_read_cell): Cleaned debug.
	(ms_excel_palette_get): Added magic multiplying factor to get
	colors to work...
	(ms_excel_set_cell_font): Now returns font color
	(ms_excel_set_cell_xf): Updated to pass on foregnd col to:
	(ms_excel_set_cell_colors): Added priority foregnd col.
	BIFF_XF_DATA: Updated colours to pattern colours, and updated
	names throughout adding pal_ prefix.

	* ole.c: Added, basic OLE2/BIFF helper program

	* Makefile.am: Updated to include ole.c
	
1999-04-06  Michael Meeks <michael@imaginator.com>

	* ms-formula.h: Add PTG_AREAN, PTG_REFN.

	* ms-formula.c: Debug for these cases.
	(ms_excel_parse_formula): Added shared row/col.
	Updated ms_excel_sheet_shared_formula call.

	* ms-excel.c (ms_excel_sheet_shared_formula): Include
	new arguments.
	(ms_excel_read_cells): Update all parse_formula calls.
	(ms_excel_set_cell_xf): Set auto_return argument to 0 for
	cell_set_alignment.
	move cell_set_colors to last thing.
	
	* ms-excel.h: Update prototype.

1999-04-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (biff_getdouble): Move biff_getdouble here, and apply
	fix from Tung Nguyen (tung.nguyen@pgs.com)

1999-04-03  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_sheet): removed fixup_array_formulae.
	(ms_excel_read_cell): Large SHRFMLA / ARRAY fixups.
	(biff_share_formula_new,destroy,hash,equal): Implemented.
	(ms_excel_sheet_new): Removed GList array_formulae and insert
	shared formula hash table.
	(ms_excel_sheet_destroy): Deal with hash table.
	(ms_excel_sheet_shared_formula): Returns shared formula text
	(ms_excel_set_cell_xf): Cleaned unused variables.
	
	* ms-excel.h: Added ms_excel_sheet_shared_formula prototype
	
	* ms-formula.c (ms_excel_fixup_array_formula): Removed.
	(ms_excel_parse_formula): Sorted FORMULA_PTG_EXP.
	
	* ms-formula.h: Removed prototype.

1999-04-02  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): PTG_ATTR: corrected
	debug output semantics.
	Set IF to var-arg ( fn: 0x1 ).
	Various Debug bits made conditional.
	Implemented 'optimised' = 'hopelessly obfuscated' IF function.
	Ignored 'Volatile' PTG_ATTR.
	Added INT to table.

	* ms-excel.c (ms_excel_set_cell_xf): Made static for safety.
	(ms_excelReadWorkbook): BIFF_SST: fixed up a few types.
	(biff_get_text): Fixed types.
	
	* ms-excel.h: removed prototype for same.
	fixed biff_get_text type.
	
1999-04-01  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excelReadWorkbook): Major string table fix
	should now work internationally.
	(biff_get_text): Major arguments change, now returns the rather
	grim byte length field if needed through a guint32 *
	Changed all references to biff_get_text throughout.

	* ms-excel.h: Updated biff_get_text prototype.

	* ms-formula.c: Changed all references to biff_get_text throughout.

1999-03-31  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_sheet): Added SELECTION support.
	Added basic WINDOW2 support.
	(ms_excel_read_cell): COLINFO, fixed fatal bug in hidden column code.

	* ms-formula.c (ms_excel_parse_formula): Removed debug.
	
1999-03-30  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Rehashed function
	and operator search function so it uses a flat array instead
	of a linear search.
	fully populated formula_func_data array, and removed unused /
	constant fields.

	* ms-formula.h: Removed dead wood from OP_DATAa & FUNC_DATA
	structs.

1999-03-26  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c: Removed duplicate for fn 0x65
	
1999-03-24  Thomas Meeks  <thomas@imaginator.com>

	* ms-formula.c: Added mappings for Address, Area, Hyperlink,
	Offset, Column, Columns.
	
1999-03-12  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (biff_name_data_new, biff_name_data_get_name),
	(biff_name_data_destroy, ms_excel_read_cell): Implemented
	the BIFF_EXTERNNAME case.
	(ms_excel_workbook_new, ms_excel_workbook_destroy):
	Name table hashing functions.
	(ms_excel_read_cell): Cleaned debug on BIFF_HEADER / FOOTER.
	
	* ms-formula.c (ms_excel_parse_formula): Large API change to
	simplify several cases, and clean dirty code.
	(make_function): Special 0xff case on functions. For use with 
	external functions, the names of which come in via:
	(_excel_parse_formula): FORMULA_PTG_NAME_X, hacked into
	rough shape.

	* ms-excel.c: All instances of ms_excel_parse_formula updated.
	
1999-03-11  Michael Meeks  <michael@imaginator.com>

	* ms-ole.c (ms_ole_destroy, ms_ole_new): Killed debug
	output before we are sure its an OLE file.

1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-excel.c (find_workbook): Use g_strncasecmp here.

1999-03-10  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c: Inserted all the statistics formulae from
	5.0a into the translation table.
	
1999-03-09  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Hacked out the
	bad array formula support. Moved most of it to ms-excel.c

	* ms-excel.c (ms_excel_read_cell): Updated BIFF_ARRAY and
	BIFF_FORMULA cases; splitting and adding array loop.
	BIFF_COLINFO, BIFF_ROW: Updated fudge factors in sizing
	and implemented column sizing.

1999-03-07  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c: Changed FORMULA_PTG_STR to cope with both
	versions of string properly.
	Inserted innumerable time and text functions into the
	translation table.

1999-03-07  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c: Changed to use cell_set_text_simple to save
	many redundant re-draws: big speedup.
	hacked up a set_row_height call

1999-03-05  Michael Meeks <michael@imaginator.com>

	* ms-ole.c: Variously made debug conditional on OLE_DEBUG
	* ms-excel.c: ditto for EXCEL_DEBUG

1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (ms_ole_write_sb): Do not use C++ comments.

1999-06-02  Michael Meeks  <michael@edenproject.org>

	* ms-formula-read.c (ms_excel_parse_formula): Elucidate
	error messages.
	(ms_excel_parse_formula): clean debug.
	(formula_func_data): Fix COUNT and BETADIST.

1999-06-01  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (write_sheet_bools): Added yet more
	magic numbers.
	(write_sheet_tail): Implemented WINDOW2, SELECTION as
	magic.
	(ms_excel_write_workbook): Fix silly big dimension block.

	* boot.c (excel_init): Put Excel 95 on by default.

	* ms-excel-write.c (write_bits): Added WINDOW1 bit.
	(write_fonts): Add slight difference in duplicate fonts.
	(write_xf_record): Added more fields.

1999-05-31  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c (biff_bof_write): Fixed _major_
	bug in BOF writing.
	(write_xf_record): Version fix.
	(write_bits): Lots of silly little records.
	(write_workbook): Write bits.
	(write_sheet_bools): Added lots of flags.
	(write_sheet): Added sheet_bools.

	* boot.c (excel_init): Changed 98->97 in text.

	* ms-excel-write.c (write_workbook): Fix serious list
	bug freeing list then using it !

1999-05-30  Michael Meeks  <michael@edenproject.org>

	* ms-excel-write.c: Changed to biff_put_commit
	throught.
	(write_fonts): Added more magic numbers.

	* ms-biff.c (ms_biff_put_commit): Added, and made
	other commits static.

	* ms-excel-write.c: Indenting fixes.
	(write_constants): CODEPAGE support.
	(write_workbook): Added missing write_xf call.

1999-05-30  Nick Lamb <njl98r@ecs.soton.ac.uk>

	* ms-formula-read.c (getRefV8, getRefV7): Fix shared
	formulae absolute references.

1999-05-28  Michael Meeks  <michael@imaginator.com>

	* ms-excel-write.c: Minimal Pallete / XF writing.
	Basic font writing.
	(biff_put_text): Horrendous bug fixed.
	(write_magic_interface): Magic...

1999-05-26  Michael Meeks  <michael@imaginator.com>

	* biff-types.h: Fleshed out defines, now the 'compatible'
	staroffice file is dumped nicely.

	* ole.c (read_types): Added fudge in case files are nearby.

	* ms-excel-write.c (ms_excel_write_workbook): Force Big
	Block file.
	(write_value): Set vesion on biff_put_text for RSTRING to V7.

1999-05-24  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Added 'debug' option to dump allocation.

1999-05-21  Nick Lamb <njl98r@ecs.soton.ac.uk>

	* ms-formula-read.c: Lots of new formulae translations.

1999-05-20  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Change ole_new to ole_open.
	(list_files): Added assertion.

	* boot.c (excel_load): Same.

1999-05-19  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Add New OLE file creation support.

	* ms-excel-read.c (ms_excel_set_cell_xf): Cleaned silly
	debug.

1999-05-19  Jukka-Pekka Iivonen  <iivonen@iki.fi>

	* ms-formula-read.c (formula_func_data): LOGNORMDIST and NORMSDIST
 	fixed.

1999-05-17  Michael Meeks  <michael@imaginator.com>

	* ms-formula-read.c (formula_func_data): Function data from
	Luke Plant.

	* ms-biff.h: Add biff_setdouble prototype.

	* ms-excel-read.c: Updated commenting.

	* ms-biff.c (ms_bug_get_padding): Quietened.
	Implemented 'tell' throught
	(ms_biff_put_var_commit): Fixed seeking over end.

1999-05-16  Michael Meeks  <michael@imaginator.com>

	* ms-excel-write.c (biff_put_text): Fix silly assertion.

	* ms-excel-read.c: Added debug to reading side,
	Cleaned conditional debug to use #defines

	* ms-excel-write.c (write_sheet): Save a number in each
	sheet to stop their destruction.

	* ms-excel-biff.h: Added helper set row,col,xf macros.

	* ms-biff.c (ms_biff_put_var_commit): Fixed.
	Added streamPos setting on commit.

	* ms-excel-write.c: Large updates.

1999-05-16  Michael Meeks  <michael@imaginator.com>

	* ms-formula-read.c (make_function): Allow fn_idx == 0
	add translation for RANK.

1999-05-15  Michael Meeks  <michael@imaginator.com>

	* ms-excel.[ch] -> ms-excel-read.[ch],

	* ms-formula.[ch] -> ms-formual-read.[ch]

	* All files incldes updated to obey above.
	
	* ms-biff.c (ms_biff_put_new): Implemented,
	(ms_biff_put_destroy): Implemented.
	Various other functions updated / fixed.

	* ms-excel-write.c (ms_excel_write_workbook): Change stream name
	depending on the version.
	Close streams / directory entries correctly.
	(write_workbook): Created.

1999-05-15  Michael Meeks  <michael@imaginator.com>

	* Makefile.am: stop 'ole' being installed.

1999-05-15  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Cleaned debug.

	* boot.c (excel_init): Added write hooks.
	(excel_save_95, excel_save_98, excel_save): Created.

1999-05-14  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Finaly got the ARRAY
	docs sorted, deciphered inconsistancies etc.

1999-05-14  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Implemented V7. 3D refs
	and 3D Area references.
	(make_inter_sheet_ref_v7): Created to deal with V7 references.

	* ole.c (really_put): Changed to ms_ole_get_root.

	* ms-excel-biff.h: moved biff_version to 'excel.h'.

	* *.c: Re-ordered includes.

	* ms-excel-write.c (ms_excel_write_workbook): Fleshed out.

	* ms-biff.c (biff_put*): Fleshed out.

	* ms-biff.h (BIFF_SET_GUINT*): Added BIFF setting macros.

1999-05-13  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Updated Array support.

	* ms-excel.c (ms_excel_set_cell_colors): Kills colors where
	backgnd & foregnd are same, needs pattern stuff to work
	before it can be fixed.
	(ms_excel_palette_get): Sorted special idx=64 color & added
	sanity check.

1999-05-13  Michael Meeks  <michael@imaginator.com>

	* ms-biff.h (ms_biff_query_next): Macrofied.

	* ms-biff.c (ms_bug_get_padding): Routine to overcome
	nastiness in MS' flawed implementation of CONTINUE records.
	(ms_biff_query_next_merge, ms_biff_merge_continues),
	(ms_biff_query_unmerge): Add padding corrective.

1999-05-12  Michael Meeks  <michael@imaginator.com>

	* ms-biff.h: Major overhaul, added some fields to be implemented.
	Added stubs for new BIFF write-side.

	* ms-biff.c (biff_setdouble): Implemented.

	* ms-excel.c (ms_excel_read_cell): BIFF_NUMBER: Removed last
	vestige of nasty number->text->number sillyness.

	* Makefile.am (libexcel_a_SOURCES): Added excel.h,
	ms-excel-write.[ch].

	* boot.c (excel_load): Updated name & headers.

	* ms-excel.c (ms_excel_write_workbook): Stubbed.

	* ms-excel.h: Split out excel specifics into smaller header.
	Renamed functions to remove nasty mixed case.

1999-05-12  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Add check on ptr to fix NULL pointers getting
	to strcasecmp.
	(do_copyin): Added mass-copy in/out function.

1999-05-10  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_sheet): Added new
	workbook_focus_sheet stuff.

1999-05-10  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>

	* Makefile.am (INCLUDES): Use -I$(srcdir)/libole2 instead of
	-Ilibole2 to allow srcdir!=builddir.

1999-05-09  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (make_function): More useful debug.
	Added Database function translation.

1999-05-08  Michael Meeks  <michael@imaginator.com>

	* ole.c (do_get, do_put): Sill fread/write no brainer.
	(main): Less verbose.

	* README: Updated to list more useful options.

1999-05-08  Michael Meeks  <michael@imaginator.com>

	* ms-biff.c (ms_biff_query_copy): Updated to use new
	global ms_ole_stream_copy.

	* Makefile.am: Split out 'ole' program, added libole2
	subdir. Added ms-biff.c.

	* libole2/ Created, moved ole.c, ms-ole.[ch] there.
	
1999-05-08  Michael Meeks  <michael@imaginator.com>

	* ole.c (main): Large re-structure, split out into smaller
	functions.

	* ms-formula.c (ms_excel_parse_formula): Hack at ARRAY
	functionality...

	* ms-excel.c (ms_excel_sheet_set_comment): Fix for setting
	comments on blank cells; was fatal.

1999-05-07  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Fixed horrible bug
	in PTG_ATTR, not stopping on duff attr.

	* ms-excel.c (ms_excel_read_cell): Cleans to ARRAY_FORMULA.

1999-05-06  Michael Meeks  <michael@imaginator.com>

	* ms-ole.c (ms_biff_query_new, ms_biff_merge_continues)
	Better merge support.

	* ms-biff.h (_BIFF_QUERY): Added merge count

1999-05-06  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excelReadWorkbook): Added freeze /
	thaw redraws for speed.

	* ms-escher.c (OPT_new): Expanded.
	(BStoreContainer_destroy): Added debug.

	* ole.c: Updated functions from ms-escher.c
	(main): Correctly skip over previously merged stuff.

1999-05-05  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (parse_list_push_raw): Cleaned debug.
	(parse_list_push): Added (different) debug.
	(formula_func_data): Fixed comments.
	(duplicate_formula): Removed.

1999-05-05  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_cell): Updated debug.
	(ms_excel_sheet_insert_val): Fixed prototype.

	* ms-formula.c (expr_tree_unary): Added helper fn.
	(ms_excel_parse_formula): Added +/- unary op. loading.
	Remove redundant guff from formula_op_data.

	* ms-formula.h: Removed FORMULA_ARRAY_DATA: redundant.
	Added PTG_U_PLUS, PTG_U_MINUS.

1999-05-04  Morten Welinder  <terra@diku.dk>

	* ms-excel.c (ms_excel_workbook_new): Fix argument list.

1999-05-02  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (biff_get_externsheet_name): Converted to return
	a Sheet *
	(ms_excel_sheet_shared_formula): Returns ExprTree.
	(biff_boundsheet_data_new): Added EXCEL_SHEET * to BOUNDSHEET_DATA
	this really needs rationalising !
	Fixed all things that use ms_formula stuff...

	* ms-formula.c: The most comprehensive re-write of the entire
	formula parsing structure. 80% + of code changed. Now smaller,
	cleaner, meaner, leaner ... and featuring all your favorite bugs.

1999-05-02  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (biff_xf_data_destroy): Changed prototype.
	(ms_excel_workbook_destroy, ms_excel_workbook_new),
	(ms_excel_set_cell_xf, biff_xf_data_new):
	Updated XF to GPtrArray, this saves a hash lookup per cell.
	(ms_excel_workbook_new): excel_sheets -> GPtrArray
	(ms_excel_workbook_attach): Drasticaly simplified
	(ms_excel_sheet_set_index): Removed.

	* ms-excel.h (_MS_EXCEL_WORKBOOK): Changed XF hashes
	to PtrArray's for speed & elegance.

1999-05-02  Michael Meeks  <michael@imaginator.com>
	
	* ms-excel.c (ms_excel_read_sheet): Add check before
	ms_excel_sheet_destroy.
	(ms_excel_read_sheet): Cleaned debug, and made it nicer.
	(ms_excel_workbook_detach): Fixed semantics of workbook_detach
	and plug large memory leak.

1999-05-02  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Removed annoying
	debug killing performance.

	* ms-excel.c (ms_excel_sheet_insert_val): Created.
	(biff_get_rk): Removed impossible clause.
	Returns a Value now for speed; also increases accuracy.
	(ms_excel_read_cell): BIFF_RK, BIFF_MULRK: Removed nasty
	buffer and ugly printf.
	(ms_excel_sheet_insert): Made static, & removed from .h

1999-04-29  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (ms_ole_new): Applied patch from Michael Meeks to allow
	opening of excel files in read-only mode.

1999-04-29  Michael Meeks  <michael@edenproject.org>

	* ms-ole.c (ms_ole_new): Revert to read-only mapping on failure.
	(MW: there has got to be a reason why we don't start that way.)

1999-04-29  Morten Welinder  <terra@diku.dk>

	* ms-excel.c (ms_excel_workbook_detach): Add new extra parameter
 	to workbook_detach_sheet.

1999-04-26  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-excel.c (ms_excel_workbook_detach): Check the return value of
	workbook_detach_sheet.
	(ms_excel_read_sheet): If detaching fails, there is a dependency.

Tue Apr 20 16:34:38 1999  Morten Welinder  <terra@diku.dk>

	* ms-obj.c (ms_obj_read_obj): Initialise type.
	
1999-04-19  Morten Welinder  <terra@diku.dk>

	* ms-excel.c (biff_get_rk): Fixed up mask on eIEEE.
	
1999-04-19  Michael Meeks  <michael@edenproject.org>

	* ms-escher.c (read_DgContainer): Removed redundant
	debug.

	* ms-ole.c (ms_biff_merge_continues): Silly ordering
	bug fix. And memory leak removed.

	* ms-excel.c (ms_excelReadWorkbook): Silly string table
	length bug. Wehn we truncate, cut the length as well.

	* ole.c (syntax_error): Updated help.
	(main): [old] added 'biffraw'
	
1999-04-19  Morten Welinder  <terra@diku.dk>

	* ms-formula.c (ms_excel_parse_formula): Fix for
	strings: use quotes.

	* ms-excel.c (ms_excel_sheet_append_comment): Fix.
	(biff_font_data_get_style_font): removed assert, and
	use g_snprintf
	(ms_excelReadWorkbook): Removed duff
	comments, and some debug.

1999-04-19  Michael Meeks  <michael@edenproject.org>

	* ms-biff.h (_BIFF_QUERY): Set length to guint32
	(BIFF_GETLONG): Added various casts.

	* ms-ole.c (ms_ole_read_ptr_bb, ms_ole_read_ptr_sb):
	Re-enabled, and fixed silly bug.
	(dump): the 'int' type behaves very strangely.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-ole.c: Rather important fixes. How did it ever
	work before !.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-ole.c, ms-ole.h: MASSIVE hack. invalidates
	pretty much all the previous ole changelog entries.
	(dump): Updated type.

	* ms-excel.c (ms_biff_bof_data_new): Removed assert.
	(biff_get_externsheet_name): Removed assert.
	(ms_excel_parse_formula): Commented out array support.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-excel.c (ms_excel_workbook_new): Added flag so
	only reads first group & merges rest.

	* ms-escher.c (biff_to_flat_data): Improved merge
	heuristic.

1999-04-18  Michael Meeks  <michael@edenproject.org>

	* ms-escher.c (bse_type_to_name): Created.
	(bse_type_to_name): Created.
	(BSE_new): Updated.
	(esh_header_contained): Moved duplicated code
	into this and added check.
	(esh_header_next): Added debug.
	(write_file): Writes a pixmap to disk.

1999-04-15  Michael Meeks  <michael@edenproject.org>

	* ms-excel.c (ms_excelReadWorkbook): Put PRECISION
	output conditional on debug.
	Put escher_hack_get_drawing on condition of --debug

	* ms-formula.c (ms_excel_parse_formula): Added
	'Optimised Choose' functionality.
	(formula_func_data): Inserted CHOOSE.
	(ms_excel_parse_formula): Patch for broken MS files.
	Updated 'Name' records.

1999-04-15  Michael Meeks  <michael@edenproject.org>

	* boot.c: Fixed includes to remove annoying warning.
	(excel_load): Add workbook_set_filename for style.

	* ms-excel.c (ms_excel_workbook_detach): Added debug
	if can't remove sheet for some reason.

	* ms-ole.c (pps_get_text): Hacked in some better
	unicode support. Might work cross-platform now.
	(ms_ole_new): Added name printout to help debug.
	(ms_ole_directory_next): Conditional'd debug.
	(directory_setup): clean debug.

	* ms-excel.c (ms_excel_set_cell_colors): Removed debug.

1999-04-15  Michael Meeks  <michael@edenproject.org>

	* ms-formula.c (ms_excel_parse_formula): PTG_AREAN added,
	and PTG_AREA updated to include 'shared' flag.
	(ms_excel_parse_formula): Added PTG_ARRAY code.

	* ms-formula.h (FORMULA_PTG_ARRAY): Added PTG_ARRAY

	* ms-excel.c (ms_excel_read_cell): Added more sensible
	floating point printing throught.

	* ms-excel.h (MS_EXCEL_DOUBLE_FORMAT): Created to
	standardise number transfer.

1999-04-14  Michael Meeks  <michael@edenproject.org>

	* ms-formula.h: Updated ms_excel_parse_formula prototype.

	* ms-excel.c (ms_excel_read_cell): Added 'shared' flag
	to all ms_excel_parse_formula instances.
	(biff_get_error_text): Set arg to const.
	(ms_excel_sheet_shared_formula): Removed debug.
	(ms_excel_read_cell): Removed debug.
	(ms_excel_sheet_insert): const text arg.

	* ms-excel.h: Updated prototypes.

	* ms-formula.c (ms_excel_parse_formula): RefN replaced.
	updated prototype & args. Updated optimised if call.
	(getRefV8, getRefV7): Attempt at shared formulae.
	Fairly brutal hack: seems to work :-)

1999-04-14  Michael Meeks  <michael@edenproject.org>

	* ms-excel.c (biff_get_text): Remove platform dependance.
	(biff_get_error_text): Changed type.
	(biff_boundsheet_data_new): s/int strlen/int slen/
	(biff_font_data_destroy): Free after last use.
	(biff_get_rk): Changed IEEEx10 to IEEEx100
	(ms_excel_read_cell): COL_INFO: Fixed width cast.
	Thanks to great bug reports by Morton Welinder.

	* ms-excel.h: Add const to biff_error_get_text.

	* ms-ole.c (SET_GUINT8): Fix GET_<TYPE> macros.

	* ms-biff.h (BIFF_GETWORD): Patch from Morten Welinder to
	improve GET<TYPE> macros.

1999-04-14  Michael Meeks  <michael@edenproject.org>

	* ole.c (dump_escher): Fatal Escher cockup removed, makes
	the problem look more complex and realistic.
	Indenting added.

	* ms-escher.c (read_DgContainer): Created.
	(SpgrContainer_new): Created.
	(ms_escher_hack_get_drawing): Add debug.
	(SpContainer_new): Created.
	There must be a good way of doing this recursively.

1999-04-13  Michael Meeks <michael@imaginator.com>

	* ms-escher.c (esh_header_next): Fixedup to use correct lengths.
	Various major bits of work, started parsing the heirarchical
	bitstream. Escher looks better than BIFF, 32bit clean seemingly.
	
	* ole.c: Copied in updates.
	(dump_escher): Recursive dump of structures.

1999-04-13  Michael Meeks <michael@imaginator.com>

	* ms-ole.c(ms_biff_query_copy): Fix nasty bug: duplicate
	stream pos record too.

	* escher-types.h: Created to hold the drawing layer types.

	* ole.c (read_types): Expanded to cope with escher types.
	(get_opcode_name): Duplicated into:
	(get_biff_opcode_name, get_escher_opcode_name): Created.
	(main): Updated biff section.
	Added 'draw' = search for drawings and dump section.

	* README: Updated to doc. 'draw'
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* ms-objc.c/h renamed ms_obj_read_graphic to
	ms_obj_read_obj, the real graphic lurks elsewhere...

	* ms-escher.c/h: Created to handle the 'Office drawing layer'
	This is a hack and needs better OLE support code.

	* ms-ole.c (ms_ole_stream_duplicate): Created, not too bad a hack
	(ms_biff_query_data_to_stream): Nasty hack for ms-escher
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* ms-obj.c: Created to deal with the horrors of embedded graphic
	objects !

	* ms-obj.h: Include for the same

	* ms-excel.c: Include ms-obj.h
	(ms_excel_read_sheet): Add call to ms_obj_read_graphic.

	* biff-types.h: Update comments.

	* Makefile.am: Add new files.

	* ole.c: Nice header.
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* biff-types.h: Fleshed out.

	* ms-excel.c (ms_excel_sheet_set_comment): Created
	(ms_excel_sheet_append_comment): Created
	(ms_excel_read_sheet): Added BIFF_NOTE support.
	(ms_excel_set_cell_xf): Fixed spurious debug, and made more
	robust.
	
1999-04-12  Michael Meeks <michael@imaginator.com>

	* ms-excel.c: Various unneeded BIFF tags implemented for
	completeness.

	* biff-types.h: The tag definitions.

	* ole.c (read_types): Improved.
	(main): Flag duplicates sensibly.

1999-04-12  Michael Meeks <michael@imaginator.com>

	* ole.c: Added 'biff' command.
	Added type file loader/parser and helper function.

	* biff-types.h: Created

	* ms-excel-biff.h: Moved types out.

1999-04-11  Michael Meeks <michael@imaginator.com>

	* ole.c: Major update, interactive mode, help, dump command
	etc.

1999-04-09  Michael Meeks <michael@imaginator.com>

	* ms-excel.c (ms_excel_workbook_detach): Paranoid NULLing
	of pointers.
	Fixed _silly_ bug with g_list_remove !
	(ms_excel_workbook_attach): Paranoia checking.
	(biff_get_text): Converted int lp to guint32 lp.
	(ms_excelReadWorkBook): BIFF_SST: Added overrun check,
	some idiot splits the SST table for seemingly no good reason.
	Cleaned debug.
	(ms_excel_read_cell): Cleaned debug.
	(ms_excel_palette_get): Added magic multiplying factor to get
	colors to work...
	(ms_excel_set_cell_font): Now returns font color
	(ms_excel_set_cell_xf): Updated to pass on foregnd col to:
	(ms_excel_set_cell_colors): Added priority foregnd col.
	BIFF_XF_DATA: Updated colours to pattern colours, and updated
	names throughout adding pal_ prefix.

	* ole.c: Added, basic OLE2/BIFF helper program

	* Makefile.am: Updated to include ole.c
	
1999-04-06  Michael Meeks <michael@imaginator.com>

	* ms-formula.h: Add PTG_AREAN, PTG_REFN.

	* ms-formula.c: Debug for these cases.
	(ms_excel_parse_formula): Added shared row/col.
	Updated ms_excel_sheet_shared_formula call.

	* ms-excel.c (ms_excel_sheet_shared_formula): Include
	new arguments.
	(ms_excel_read_cells): Update all parse_formula calls.
	(ms_excel_set_cell_xf): Set auto_return argument to 0 for
	cell_set_alignment.
	move cell_set_colors to last thing.
	
	* ms-excel.h: Update prototype.

1999-04-05  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (biff_getdouble): Move biff_getdouble here, and apply
	fix from Tung Nguyen (tung.nguyen@pgs.com)

1999-04-03  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_sheet): removed fixup_array_formulae.
	(ms_excel_read_cell): Large SHRFMLA / ARRAY fixups.
	(biff_share_formula_new,destroy,hash,equal): Implemented.
	(ms_excel_sheet_new): Removed GList array_formulae and insert
	shared formula hash table.
	(ms_excel_sheet_destroy): Deal with hash table.
	(ms_excel_sheet_shared_formula): Returns shared formula text
	(ms_excel_set_cell_xf): Cleaned unused variables.
	
	* ms-excel.h: Added ms_excel_sheet_shared_formula prototype
	
	* ms-formula.c (ms_excel_fixup_array_formula): Removed.
	(ms_excel_parse_formula): Sorted FORMULA_PTG_EXP.
	
	* ms-formula.h: Removed prototype.

1999-04-02  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): PTG_ATTR: corrected
	debug output semantics.
	Set IF to var-arg ( fn: 0x1 ).
	Various Debug bits made conditional.
	Implemented 'optimised' = 'hopelessly obfuscated' IF function.
	Ignored 'Volatile' PTG_ATTR.
	Added INT to table.

	* ms-excel.c (ms_excel_set_cell_xf): Made static for safety.
	(ms_excelReadWorkbook): BIFF_SST: fixed up a few types.
	(biff_get_text): Fixed types.
	
	* ms-excel.h: removed prototype for same.
	fixed biff_get_text type.
	
1999-04-01  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excelReadWorkbook): Major string table fix
	should now work internationally.
	(biff_get_text): Major arguments change, now returns the rather
	grim byte length field if needed through a guint32 *
	Changed all references to biff_get_text throughout.

	* ms-excel.h: Updated biff_get_text prototype.

	* ms-formula.c: Changed all references to biff_get_text throughout.

1999-03-31  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (ms_excel_read_sheet): Added SELECTION support.
	Added basic WINDOW2 support.
	(ms_excel_read_cell): COLINFO, fixed fatal bug in hidden column code.

	* ms-formula.c (ms_excel_parse_formula): Removed debug.
	
1999-03-30  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Rehashed function
	and operator search function so it uses a flat array instead
	of a linear search.
	fully populated formula_func_data array, and removed unused /
	constant fields.

	* ms-formula.h: Removed dead wood from OP_DATAa & FUNC_DATA
	structs.

1999-03-26  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c: Removed duplicate for fn 0x65
	
1999-03-24  Thomas Meeks  <thomas@imaginator.com>

	* ms-formula.c: Added mappings for Address, Area, Hyperlink,
	Offset, Column, Columns.
	
1999-03-12  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c (biff_name_data_new, biff_name_data_get_name),
	(biff_name_data_destroy, ms_excel_read_cell): Implemented
	the BIFF_EXTERNNAME case.
	(ms_excel_workbook_new, ms_excel_workbook_destroy):
	Name table hashing functions.
	(ms_excel_read_cell): Cleaned debug on BIFF_HEADER / FOOTER.
	
	* ms-formula.c (ms_excel_parse_formula): Large API change to
	simplify several cases, and clean dirty code.
	(make_function): Special 0xff case on functions. For use with 
	external functions, the names of which come in via:
	(_excel_parse_formula): FORMULA_PTG_NAME_X, hacked into
	rough shape.

	* ms-excel.c: All instances of ms_excel_parse_formula updated.
	
1999-03-11  Michael Meeks  <michael@imaginator.com>

	* ms-ole.c (ms_ole_destroy, ms_ole_new): Killed debug
	output before we are sure its an OLE file.

1999-03-11  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-excel.c (find_workbook): Use g_strncasecmp here.

1999-03-10  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c: Inserted all the statistics formulae from
	5.0a into the translation table.
	
1999-03-09  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c (ms_excel_parse_formula): Hacked out the
	bad array formula support. Moved most of it to ms-excel.c

	* ms-excel.c (ms_excel_read_cell): Updated BIFF_ARRAY and
	BIFF_FORMULA cases; splitting and adding array loop.
	BIFF_COLINFO, BIFF_ROW: Updated fudge factors in sizing
	and implemented column sizing.

1999-03-07  Michael Meeks  <michael@imaginator.com>

	* ms-formula.c: Changed FORMULA_PTG_STR to cope with both
	versions of string properly.
	Inserted innumerable time and text functions into the
	translation table.

1999-03-07  Michael Meeks  <michael@imaginator.com>

	* ms-excel.c: Changed to use cell_set_text_simple to save
	many redundant re-draws: big speedup.
	hacked up a set_row_height call

1999-03-05  Michael Meeks <michael@imaginator.com>

	* ms-ole.c: Variously made debug conditional on OLE_DEBUG
	* ms-excel.c: ditto for EXCEL_DEBUG

1999-02-22  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (ms_ole_write_sb): Do not use C++ comments.

1999-02-06  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (ms_ole_destroy): Free the correct pointer (we were
	releasing the same pointer twice).

1999-01-13  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* ms-ole.c (ms_ole_destroy): Free f->header_root_list if set.

1999-01-03  Jeff Garzik  <jgarzik@Pobox.com>

	* ms-excel.c, ms-formula.c:
	A printf fix.
	Warning fixes.

1998-12-28  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* boot.c (excel_init): New file, adds the excel booting
	mechanism. 

