v. 0.2.8.4 * 3 patches from Caolan at RedHat: remove unnecessary extra linked libs; remove some warnings; rh154813 which (same redhat issuzilla bug id) I theorize fixes some upsidedown wmfs. v. 0.2.8.3 * configure.ac: Don't use -lm on Windows. mingw has an (empty) dummy libm, but it confuses libtool.) [Tor Lillqvist ] * libwm-config.in: Make installation-location-independent when run in a Cygwin shell. [Tor Lillqvist ] * src/Makefile.am: Don't use -lm on Windows. Add libwmflite.la to io_wmf_la_LIBADD. [Tor Lillqvist ] * src/wmf.c: Don't use hardcoded path for WMF_FONTDIR on Windows. Instead, assume being built as a DLL, and look up the DLL location in a DllMain routine, and use that to build the font directory path at run-time. [Tor Lillqvist ] * src/font.c: Don't use hardcoded path for WMF_XTRA_FONTMAP either. (remap_font_file_name): On Windows, if a font file name starts with the build-time prefix, replace that with the run-time installation prefix. [Tor Lillqvist ] v. 0.2.8.2 * proper freetype header inclusion (c. "war") v. 0.2.8.1 * security fix (Artem Frolov) v. 0.2.8 * update wmf2x & wmf2gd to use wmf_display_size() (fjf) * ditch wmf_gd_image_free(); api_destroy takes care of the image (fjf) * add new wmf_display_size() function which returns integer size of image for display; io-wmf loader update (dom) * add two convenience functions to xgd device layer for manipulating GD image post-conversion (fjf) * give libwmflite its own interface/binary numbers (fjf) * change gd.c (add _tpixels member to gdImageStruct) - now allocates contiguous array for truecolor pixels (fjf) * gdk-pixbuf plugin added (dom); config update (fjf) v. 0.2.7-2 * fix updated Fontmap[.GS] detection (fjf) * add some more paranoia into the font loader (fjf) * change a couple of C++ comments to C comments; configure.ac|in corrections (c. Olav Kolbu) * fix non-XML case in wmf2x.c; simplify freetype2 detection (fjf) v. 0.2.7 v. 0.2.7-Darwin * update Fontmap[.GS] detection (guesswork, really) (fjf) * don't include trio.h when --disable-heavy is used (fjf) * remember to update both version numbers in configure.ac! * move player.h's defs into metadefs.h for recorder.c (fjf) * add some missing "extern"s (c. Jeremy Shane Sanders) * added recorder.h & libwmf/canvas.h; call it Canvas now (fjf) v. 0.2.6 * added recorder.c, first stab at a metafile writer (fjf) * new --disable-heavy configure option (fjf) * initialize default font user_data to 0 (c. Corby Wilson) * tidy docs/dox installation (fjf) * basic editing features w/ API_ENABLE_EDITING (fjf) * expat/libxml2 configuration updated (fjf) * wmf2x will read *.xml & *.XML as wmfxml (fjf) * some initial wmfxml import work (fjf) * option to write WMF as, er, WMF. or XML. (fjf) * bump version number; disallow plotutils (fjf) * remove MVG back-end v. 0.2.5 * use memset to handle varying size of libxml2's SAX struct (fjf) v. 0.2.4 (this is not a release) * fake polypolygon for devices that can't handle it (fjf) * docs update * add draw_polypolygon () callback to IPA - will default to old behaviour; initialize function reference entries to 0 (fjf) v. 0.2.3 (this is not a release) * config update - move acconfig to patches, etc. (fjf) * RPM spec file update (c. Michal Jaegermann) * gd: support for bitmap transparency (fjf) * new RPM spec file (fjf) * don't add libwmflite.la into libwmf.la (fjf) * config clean-up (fjf) * install font.h (Bob Friesenhahn) * remove wmf_api_destroy from api.c (Bob Friesenhahn) * configure.ac: define TRIO_REPLACE_STDIO (Masafumi Matsumura) close WMF file on exit, if opened via libwmf2 (Bob Friesenhahn) * config updates - no more lt trickery (fjf) * major internal reorganization to separate out libwmflite; move font engine behind user_data handles; addition of wmf_lite_create () & wmf_lite_destroy (); post libwmf-0.2.2 versioning (fjf) v. 0.2.2 * fix wmf2x arg detection bug (Bob Friesenhahn) * added --with-layers option (fjf) * de-necessitate GD, add libpng support (highly experimental); rename config.h* to wmfconfig.h*; libxml2 fix (fjf) * release builds: configure-time Darwin-detection & lt-patching; make magick device layer optional; rewrite xml2 detection (wv); make secondary IPA functions static (fjf) * change copyright on include/libwmf/magick.h * add paranoid check for xmlChar**attributes==NULL * add one of many missing consts (Bob Friesenhahn) * add check for vsnprintf in libdb (David C Sterratt) * add 'foreign' device layer for non-wmf stuff * x,gd: better placement of text * x,gd: beginnings of a ROP implementation * change gd-layer source file names to 'xgd' root * use X-layer style text drawing in gd-layer * yet more config updates (fun, fun, fun!) * update other config stuff to handle autoconf-2.52 * update config.sub/guess to libtool-1.4.1 * make building/inclusion of GD library optional (fjf) * acinclude fix (Tomasz Kłoczko) * up the version number (fjf) v. 0.2.1 * radical IPA fontmap rewrite; GS Fontmap used now also (fjf) * clean up GS fontmap parser (fjf) * add missing `%' signs in src/ipa/eps.c (Kees Zeelenberg) * x: flip arcs; added a new example (fjftest.wmf) (fjf) * added GS fontmap parser; GS font dir configure option (fjf) * update config.sub/guess to libtool-1.4b * beginnings of doxygen documentation; release FT library only after device end (fjf) * move ltmain.sh to libwmf2/patches; autogen fix; add 6 bytes to maximum record size (fjf) * configurable doc & font dirs (Matej Vela) update spec file; make $prefix/share/doc default doc dir (fjf) * reset clip properly on RESTOREDC (fjf) * fig: substitute patterns for bitmaps when filling (fjf) * move palette_create to meta; add oid/obj diagnostics in meta; tag invalid SELECTCLIP as non-fatal (fjf) * (empty) framework for ghostscript fontmap parser (fjf) * more macros; use in the interpreter as well (part 1 of ?) (fjf) * fig: 2 new options (--maxpect & --no-margins) to wmf2fig; make build of wmf2x and wmf2plot conditional (fjf) * isolate WMF_LDFLAGS in src/convert/Makefile (fjf) * make inclusion of libtrio conditional (fjf) * fig: use explicit image scaling (fjf) * if image has a set size then (new fn) wmf_size returns it (fjf) * magick: images now cropped automatically; fig: option (--image=) to save images as PNG or JPEG; * svg: sodipodi-friendly text support (fjf) * svg: option (--inline) to wmf2svg to inline (data URL) images; various rewiring in svg & ipa layers + base64 option (fjf) * added wmf_ztream (compressed stream) functions to API; svg: option (-z) to wmf2svg to output as svgz (fjf) * fig: re-enable BMP support, but w/ cropping (fjf) * svg: sodipodi-friendly image support (fjf) * fig: re-enable BMP support, but w/o cropping (fjf) * improved color table support in IPA; more DC macros defined; fig device layer: updates (macros & wmf_stream_*), minor fixes, eps code removal, general clean-up, BMP support disabled (fjf) * use of wmf_stream in magick device layer (fjf) * fix gd-clip-flood; use macros to access dc: updated x layer (fjf) * check for vfscanf; use of wmf_stream in eps device layer; added to-memory `sink' re-router in gd device layer; use macros to access dc: updated eps & gd layers (fjf) * fixed bug in wmf_[*]alloc to do with zero-sized requests (fjf); (thanks to Michael Cree for spotting & debugging this) * added functions: wmf_detach, wmf_stream* file/memory IO, & wmf_printf; also implemented internal string buffer (fjf) * switching to autogen.sh method (fjf) * added trio suite of string functions; minor config fixes; ==== fixes to enable building package in separate directory ==== update to autoconf 2.50, automake-1.4-p2, libtool-1.4; (fjf) v. 0.2.0 * updated to gd-2.0.1; refined arc bounding box; updated docs; added support for non-system XML fontmap to read in addition to system XML fontmap, and added libwmf-fontmap script (fjf) * added Magick layer & ditched (unnecessary) support in configure; clean-up, moved libwmf.m4 to acinclude.m4 - `make dist' works now; updated README, added BUILDING and libwmf.spec for RPM generation; added support for images and text to SVG device layer; (fjf) * added --wmf-diagnostics option, which is now distinct from debug mode - allows examination of metafiles for parameter-list lengths etc.; separated meta stuff out of src/player.c into src/player/meta.h; tidier & more seg-safe reimplementation of parameter access (fjf) * added SVG device layer; basic drawing support only (fjf) * Fix to the drawing direction of arcs (speculative); arcs added to FIG (fjf/mv) * added wmf_gd_image output type which creates a gd image rather than PNG/JPEG/etc.; added color indexing - wmf_scan now creates a list of colors (excluding bitmap colors) specified in metafile (fjf) * FIG functionality more or less complete (mv) * added FIG format support framework (copied from eps stuff) and got it to build with makefiles etc. (mv) * added ; added libxml2 support for reading XML fontmap; updated config.sub, config.guess; added checks for GNU plotutils & ImageMagick to configure.in; updates to documentation; other minor changes; (fjf) libwmf2 imported to cvs March 28th 2001 (fjf) * See README, TODO, etc. libwmf2 Branch Point: (some changes may be lost; cf. libwmf ChangeLog) * F.J. Franklin patch cleaning up header files (add common.h, region.h). * F.J. Franklin patch improves TTF config. * Bob Bell syntax fixes. v 0.1.20 * Bob Bell patch to remove ctime warning in wmftoeps. * Bob Bell patch to prevent buffer ovfl in wmftoeps. * Option scale-bmp to xwmf also. * Removed gdImageColorResolveRich again, and implemented a better solution in gdxpm.c based on gridding the colour cube. * MV: Improved routine gdImageColorResolve (introducing a gdImageColorResolveRich version) to better handle color rich XPM files. Could be improved still. * Added option scale-bmp to wmftopng. v 0.1.19 * Vivien: embedded bitmaps "stack" now handled (apparently) correctly. cell.wmf works, test.wmf appears to as well! * Lots and lots of fixes/development on .fig graphics elements output, line styles, colour use, etc etc. "Depth hack". * Added use of lpDx[i] (explicit char placement). * Better font finder/fallback routines in .fig, .eps and .png. * Fixed text output in wmftopng, especially placement. * Added rudimentary wmftoeps. * Extensive text support for wmftofig. v 0.1.18 * A beginning of text support for the wmftofig export. Badly broken still. Some cleanup and documentation in libxfig. * Fixed the function names clash of read_32ubit (...16...) with wvware. * Fixes to realclean in gd-1.7.3 directory in two Makefile.in's. v 0.1.17 * moved codebase over the gd-1.7.3, * sent some patches to gd maintainer, hopefully in a release or two I won't have to distribute my own patched version of gd. * wmftogif is now gone, and wmftopng is there instead, because of the changes in gd. TODO * extra space for XRot, probably should create an XRotDrawText. * underline and strike-through have to be done as well. * test Text Support for X & gd, with all the extras, like bold/italic/ extra space for chars and breaks/rotated letters/escarpment etc. * run purify over it again to fully debug clipping * internal resizing support, the ppm utils do bad things to the colors, and dont support xpm files with > 256 colors, and i might as well try and support the resizing flags of windows, so ill try and patch in wine source again. * 1 created a clipping wmf file that demoed that stuff. * 2 clean up so that bitblt has all the bitblt calls and patblt calls, give it a proper SetDIBits as well. Test the x and y src on both those types of call as well. * 3 create a single wmf file with the frame and fill etc regions. * 4 single wmf that demos all the pen stuff with rectangles. * 5 single wmf that demos all the brush stuff with rectangles. * 6 single wmf with all graphic drawing primitives. * 7 one awful wmf that does all the font and text stuff ? * bring gd up to speed with X binding. * patch in the wine handling for text for X, SetTextJustification etc. * extend gd rectangle pen and brush to all shapes. * fully support all dib depths. * im still not happy with the MAPMODE setting, out.wmf looks too small, but otherwise dancers.wmf and Eg.wmf become too huge, but it looks like the same set of opcodes. * fiddle with join styles and all the other pen things. * we need to get the docs for this ability of X11R6 to do rotated text, as i cant work it out fully from the wine source, implement that, look at wine for orientation as well. * do a better api for clipping in gd, see if the maintainer will take a patch for it, i dont really want to haul around a special version of gd with me. v 0.1.16 * Albert Chin-A-Young , noted that there was a few syntatical errors, missing include , unended comment block and an empty struct v 0.1.15 Sam Sirlin reports that -L. before the -l lines doesn't appear to guarantee that the new libs get linked, and that old ones do instead, so i added -L. to the beginning as well. v 0.1.14 * added patches from (Raj Manandhar) to fix gdttf to find symbol font, and to be able to zoom in with xwmf, use + to zoom in and - to zoom out v 0.1.13 * bugfix patch from Bob Van Valzah v 0.1.12 * David.Airlie@ul.ie began and implemented a large chunk of functionality to convert wmf files to fig format. I'd like to request aid to finish off this area. v 0.1.11 * added patched from Albert Chin-A-Young for configure file and a NULL check. v 0.1.10 * removed c++ comment * stripped ^M's out * cast a few things to void pointers before assigning them to userdata. v 0.1.9 * added more bullet proffing against the sort of nightmare wmf's that come out of mswordview. * some better error checking for missing fonts, (doh !) * broke tt, fixed tt * removd debugging messages. v 0.1.8 * trivial change to wmfapi.h to make life easier with blip handling in mswordview * made configure script get heroic when searching for components, checks for for includes and libs both below a --with-stuff dir, and also inside it as well. v 0.1.7 * added ability to gd to read xbm's from data, rather than file, changed source accordingly, dont need to carry xbm's around anymore. * changed configure script to agressively find the xpm header file, * tested to work under aix (of all things :-)) * tested to work under solaris. * checked that it reports lack of xpm lib, and fails to go any further. * fiddled a bit more, and libwmf now works cleanly with mswordview, all cheer. v 0.1.6 * fixed tendency to blank out the area underneath it, this is due to the attempt to paint the bgcolor underneath the text. * configure script check for freetype is in. * forced to move gd1.3 back into the main tree, as i need custom clipping. * made sure that realwidth and realheight are always in positive units. * added TOP/BOTTOM/BASELINE positioning to gd version. * added better handling of background color for rotated text. * added better handling of the two types of putting extra space between letters to the gd binding. * added text background color for gd for text that doesnt include a rect. * changed gd to xgd, make gd, gdextras and gdttf all into one lib called libxgd, then only require a client app to link against that + libdib + libXpm + libX11, and only to include the dib include * made libdib a self contained entity. * the wmfapi include file and the gdwmfapi file can be used from other apps now. * tidied things up so that it can be used as a library properly, added a make install for all the components. v 0.1.5 * patched in wines clipping for INTERSECTCLIP and OFFSETCLIP * patched in EXCLUDECLIP * added SelectClippingRgn, untested. * Added basic TEXTOUT support, * stuck in some sensible aliases for common windows fonts, still you're so much better off runnning xfsft over your windows fonts, i think they make most of them freely available if you dont have windows, check out http://www.freetype.org for links to them. * the gd stuff has to be told the location of the ttf font dir, get all the font names and fontfaces, and then for the moment use the ttftopnm thing. * set up the region handlers so that clipping doesnt affect them, which appears to be the right road to go down, i.e. for region based calls, save the clipping region, and then do the call, and then restore the clipping. * added paint rgn to gd. * added (broken) clipping to gd. * finished and fixed clipping for gd * the gd stuff can be told the location of the tt fonts, and it will find the correct font to use from the fontname. * added some code from xvertext to allow me to do rotated text, i probably should use the X11R6 stuff, but this code was available already. * sent off some patches to the gd maintainer on the clipping code. * put in the support for rotated text from Gdtclft, added extra space code for it, ttf support is now integrated into the gd binding. v 0.1.4 * purify run again. * implemeted FRAMEREGION, it might even be right, who knows. * do clipping ala wine, INTERSECT and EXCLUDE and MODE that'll give us everything except full font support and palettes, which we're going to ignore i think. * supported META_SETDIBTODEV, im pretty sure ive got it right, its a bit tricky, and win95 appears to ignore it so its hard to be sure ive got it right, on the other hand, its probably not used at all in the real world. * documented all the supported wmf operations, and they are available in the doc subdir, or on http://www.csn.ul.ie/~caolan/docs/libwmf.html Id ask for everyone's help in reading the docs and fixing metafile operations thatyou know to be wrong, or just to fix my grammer and give better explanations than what i have etc etc. v 0.1.3 * rats, my changelog got corrupted, would you believe that linux 2.2.2 still has a bug with vfat floppies, dammit. anyhow * added viewportorg, and viewportext, fiddled with a few things that should sort out the scaling correctly in these cases, but untested, and quite possibly never to be tested in reallife. * added offset and scale opcodes, all untested. * added META_SETMAPPERFLAGS to ignore. * added simple test for being a metafile or not, reran purify over xwmf, removed a few more leaks and dodginess. * added DIBBITBLT pretty much fully, figured out the silliness involved there. * added some ROPS for DIBBITBLT, extented the stretch ones to use them. * from my investigations patched wine to fix their dashed lines > 1 & floodfill & a patch for the other varient of DibBitBlt thats equivalent to PatBlt * src offset in DIB handling. * added some SETDIBTODEVICE handling. * patched in the wine CREATEREGION code. * added PAINTREGION & INVERTREGION, must test these 3. v 0.1.2 * fixed leaks and some bugs with purify. * added META_STRETCHDIB * changed the system call to netpbm to quantize the colors after a shrink if necessary. * fixed xpm importation into gif binding. * fixed gd binding in relation to non-placeable wmf files. * fixed crash under solaris, removed all mem leaks for X, cleaned up the gd binding substationally. * added PATBLT, same top parsing i believe. * added the PALETTE operands, but ignored them all, i think thats ok. * patched in some of the wine handling for ExtTextOut for X, i.e the spacing support for that op. * X polyline color issue. * settled opaque for text, not exactly perfect in the text box. * i went to all the hassle of putting in the wine text code coz i thought rotated text would work, and it doesnt ! (no in wine either, whats gives ?) * add X support for OPAQUE and Transparent handling for pens in the area of line drawing, brushes for stippled brushes and background for text (done). * added wine ROP support to X pen and brush, maybe it worksm who knows. * placed winding in the fillcode, dont know if it works though. * added SetPixel to X and gd. * successfully converted all of the win3.1 word 6 and msworks clipart files in X mode, and they all look right, my god !, this calls for a release v 0.1.1 * forgot to set gd binding to use new polygon filling code v 0.1.0 * renamed 0.1.0, uploaded to sunsite and announced it v 0.0.9 * moved out all but one reference to X stuff to the X bindings * create function pointers for all the graphic etc calls in wmfapi and * finish making size code indenpendant of X. remove X code into Xwmf1api.c * create void pointer in CSTRUCT for userdata i.e display and drawable in X, im_out etc in gd. * make gd load the image from DIBSTRETCH as well. * seperated X and gd. * configure script to get the right AR command and to search for gd * make the gd section more modular for this setup. v 0.0.8 * changed gd color alloc to the one in the tcl gdttf. * added some ROP support to gd and X. * make Xinit and gd_init into just init. * created void pointer in CSTRUCT for userdata i.e display and drawable in X, im_out etc in gd. v 0.0.7 * INSIDE and ellipse for X and gd completed. * polypolygon for X and gd completed. * added completely arbitrary switch between 1440 / 100 units per inch when given no other clues based upon the width in metafile units. * pies, arcs and chords done for X. * figured out the equation for gd arcs. * chords, arcs and pies for gd, implemented by using a temporary image and floodfill. v 0.0.6 * seperated dib code to a libdib library. * patch for gd for polygon fill. * quick and dirty patch for gd to to import xpms. * hacked in DibBrushes for gd lib. * added ExtTextOut support to X version. * added OPAQUE for ExtTextOut to gd version. * set vertical text align done. * X round rect completed. v 0.0.5 * pen becomes solid if we're using any of the dashes, but are > 1 in width. * primitive pen width implemented in gd. * implemented insideframe for X and gd rectangles. * implemented two of the hatching styles in both X and gd. * finished hatching styles for X and gd. * added 24,8,4 and 1 bit dib to xpm handling. v 0.0.4 * lineto,moveto and clipping regions done, dc saving and restoration minimally done, windoworg and ext done. * selecting & deleting objects done. * fixed it so it wont crash on non-placeable wmf files. * added the other objects to my lists to make sure i dont loose count of the various objects. * fixed which to use, pen vs brush. * pulled down wine, and began to compare and add according to wine. * added line width to pen calls. * added line styles, join styles, and dashing to pen, i think :-) i havent tested. * ellipses back in again. * added part imple of MAPMODE * support 1 pixel wide line for drawing in gd and X, dashing done. * all pen styles done in X, except for INSIDEFRAME which doesnt mean very much to me yet. all pen styles done in gd as well, except that lines wider than 1 pixel arent supported yet :-). * using flat joining for X rectangles as well. v 0.0.3 arcs and ellipses done. v 0.0.2 found a graphics lib that i can use instead of X for drawing, so that i can do it offline. began to seperate code up so that i can plugin X code or gd code easily to do one or the other. v 0.0.1 does something, parses standard wmf files, differenciates between placeable and nonplaceable. Can extract rectangle, SetText and polygon details. With a direct hook-up to X calls can draw then too. funnily enough with polygon implemented you can basically get the outline of nearly all the wmf example that came with the old win 3.1 version of word 6 that im stuck with out here at home for christmas. TODO & THOUGHTS * compile as a standalone gtk app. * divide into 2 portions, lib and frontend hooks for draw commands. * create straight X drawing commands for it. * maybe create straight -> xfig calls for it.