2/8/2001: * First working versions of pkview and tfmview. * switched to autoconf, removed `machdeps.*'. 2/9/2001: * Now pkview supports GF fonts. * bitmap.c: bitmap_set_row(): rewritten to be more efficient and save redundant calculations. Now there is a much more efficient set of functions: bitmap_paint_bits()/bitmap_clear_bits(). * another theft from xdvi: gamma correction. 2/11/2001: * First DVI file rendered correctly! 2/14/2001: * Added support for virtual fonts (my test files look exactly the same before and after dvicopy, which is not true for xdvi!). * Improved rulers (but they still have problems -- e.g. they need to bee erased before scrolling the window or changing the page). * kpathsea is no longer optional. 2/21/2001: * Compiles without warnings with SUN's cc compiler! (although initially it did not link, it was not mdvi's fault: my kpathsea requires -lgcc. Anyway, ar x libgcc.a _eprintf.o did the trick). * Rules look a bit better now, but still not perfect. Incorporated many things from dvips. * Added mdvi_configure() * Added mdvi_reload() * Added independent horizontal and vertical resolutions (and shrinking factors!). * Now one can change any setting on the fly, and the program recomputes everything, reloads fonts, unloads unnecessary ones, etc. 2/22/2001: * Added all sorts of orientations (even seemingly useless ones). Now pages are correctly rendered in portrait, landscape, seascape, etc. It was surprising how easy it was to implement this. 2/23/2001: * Released 0.1 on sourceforge. 2/25/2001: * Fixed: empty glyphs crashed the reader. * Added more US paper types (actually, new aliases for old ones). * Added functions to query paper types in different classes (ISO, US). * Added the function mdvi_sort_pages() and --sort-pages option to mdvi. * Added a quite powerful page selection mechanism, and the --page-ranges option to mdvi. 2/26/2001: * Lost of changes to make part of MDVI a stand-alone library. * New file setup.c that implements `application' contexts. 2/28/2001: * Added generic support for specials, based on a prefix and a regular expression. Specials can be added and removed at run-time. * Added support for TkDVI's layers, as a test of the \special code. * Added support for TFM "fonts", used when nothing else is available. * Made MDVI more robust to missing fonts. * Now the file is reloaded automatically if modified behind our back. * Changed `specials' code to avoid duplicating strings so much. * Fixed: rule alignment, again (was placing rule at (hh,vv-height) instead of (hh,vv-height+1)). 3/1/2001: * Started working on EPSF specials. Now mdvi draws bounding boxes correctly. Still a lot of work ahead. * Added `associations', so now arbitrary data can be added to a DVI context and associated with a key. This will be used for specials. 3/5/2001: * Improved the TFM reader to get bounding boxes for missing glyphs. * TFM reading code rewritten from scratch again to support loading of TFM data in a generic object. Also added caching of TFM data. * Started working on support for Type 1 PostScript fonts, using T1lib as rasterizer. I need to understand the PostScript units to make the output correct, but the basic machinery works. 3/6/2001: * Finished the Type1 support code. Looks great. * Added debugging masks a-la dvips. * Implemented DviFontInfo, now fonts can be added in a much more generic way. * Implemented bitmap shriking with T1lib, for non-antialiased glyphs. Looks great! (well, at least MUCH better than for bitmapped fonts). * Added batch mode (-z and --batch), which will be useful for profiling. * Fixed: was not refreshing the DviFontChar pointer in t1_font_get_glyph/load_one_glyph after loading the font file (which may change the character array in the font). * Passed a `correctness' test: processes texbook.dvi in batch mode with ElectricFence without crashing! * font.c: Moved glyph transformation code from load_one_glyph() into a separate funtcion font_transform_glyph(), used by t1_font_shrink_glyph(). * Fixed: was trying to load glyphs for virtual fonts. Now if a font type does not declare a glyph loading function, load_one_glyph() does nothing. * config/endian.m4: new macro to detect the target byte order 3/7/2001: * Added scaling for bitmapped fonts. Now all fonts look fine when the horizontal and vertical resolutions differ. * Actually, the previous entry is a lie: it works as expected for scalable fonts (Type1/TrueType), but not so well for bitmapped fonts. 3/12/2001: * encoding.c: New file, to process dvips font maps and encodings. * Added support for TrueType fonts with the FreeType 1.x library. * Added two fields to DviFontChar: `missing' and `loaded' * Added builtin support for AFM files, with Adobe's `parseAFM' package, the same one used by T1lib. * New functions get_font_metrics()/free_font_metrics() to get metrics data for a font. The data may come from TFM or AFM files, and is always returned in raw (unscaled) TFM units. This makes it possible to share font metrics data between several fonts. These functions implement this feature. 3/13/2001: * tfmfile.c: Added support for OFMs (levels 0 and 1). * fontsrch.c: Started working on font priority classes. * New font search mechanism mostly working. Now MDVI supports the following font formats: PK, GF, VF, OVF, Type1, TrueType, TFM, OFM-0, OFM-1, AFM. 3/15/2001: * Started switching to gettext for messages. Still a lot of work ahead in this area. * config/nls.mk.in: new fragment to be used by `po' directories. * config/intl.m4: files with macros from `gettext' * fontmap.c: added support for Ghostscript's font maps. 3/16/2001: * tfmfile.c: fixed ofm_load_file, which was failing in some cases because of wrong checksums. This shows just how unstable Omega is at this time. Most of my .ofm files do not comply with the format specs. MDVI can try to check for this and load the file anyway. Not sure if this is the right thing to do, though. 3/19/2001: * configure: added checks for a `texmf' tree. * configure: --with-freetype is now --with-truetype-fonts * configure: now a summary of the configuration is printed at the end * Makefile: now data files and `mdvi.conf' are installed properly * separated the library from the viewer, moved headers to their own directory, etc.