==================== ghostview 1.5 HACKED (25 Jul 93) ===================== Hacked by tanmoy@qcd.lanl.gov to support pdfmarks (alpha release) ==================== ghostview 1.5 (25 Jul 93) ===================== 1. Minimize comparison is DSC scanner to further speed it up. 2. Modify MenuButton translations to popup menu under any combination of modifiers. 3. Change all occurances of .Translation to .translation to allow #augment and #override to work properly. 4. Rename ghostview widget "preload" resource to "arguments". 5. Add foreground and palette resources to Ghostview widget. Allow user to set the palette from the command line. Remove special visual and special cmap code. 6. Remove Standard Color Map installation code. 7. Sync the connection just after setting the properties to ensure they are set when gs starts. Flush the next page event to ensure ghostscript starts right away. 8. Fix up bug in pasting of arguments into exec() call. 9. Add safer resource and make it the default. 10. Apply HOME directory selfile fix from Erik van der Poel. 11. Invoke ad2c with sh, so it work properly with for people using VPATH. 12. Improve comment scanner. Avoid allocating 0 bytes when %%Pages: 0 is present. Blank lines are counted with the section that they follow. This is necessary one one decides that the current section being scanned belong somewhere else. 13. Various portability patches. (For Alpha-OSF/1 in particular.) ==================== ghostview 1.4.1 ( 2 Nov 92) ===================== 1. Fix a couple of bugs introduced into the PostScript comment scanner. - Change isblank() to blank() to avoid name clash. - Upgrade blank() to call not DSC comments blank lines. - Avoid core dump by guarding against garbage bewteen the %%EndSetup and first %%Page. - Collsaped sections (Documents, Files, ProcSets, etc.) are no longer returned as a comment line. They are now properly recognized. - Avoid looping by truncating line buffer at EOF. 2. Synchronize X connection before trying to force error associated with backing pixmap. 3. Add <Tab> as another keyboard accelerator for Next. ==================== ghostview 1.4 (11 Oct 92) ===================== 1. Merge in VMS support from Terry Poot <tp@mccall.com>. 2. Force the Alloc error to occur immediately after trying to allocate the backing pixmap. Deal with it as best as we can. 3. Withdraw unused function GhostviewGetInputFileDescriptor(). 4. Use XCOMM trick from X11R5 to make Imakefile more portable. 5. Renamed ghostview.h to gv.h and Ghostview.ad.h to app-defaults.h to avoid limitations in VMS file names. 6. Correct problem where ghostscript interpreter was not being killed when the popup zoom window was dismissed. 7. Propagate error messages about alloc failures and interpreter failures in both main and zoom windows back to the information window. 8. Catch X errors and gracefully die if one occurs. 9. Relayout ghostview whenever the document requests a new orientation or page media. 10. Allow for multipage encapsulated PostScript figures. 11. More upgrades to PostScript scanner. - Comment section now terminated by %X where X is unprintable. - Length of section is now properly computed when there is an included document. - Cleaned up misuse of global variables. - Ignore comments within %%Begin(End)Feature, %%Begin(End)File, %%Begin(End)Font, %%Begin(End)ProcSet, %%Begin(End)Resource. - Change enum {LLX, LLY, URX, URY} to #defines to avoid confusing some compilers. 12. Pay attention to ordinal number on %%Page comment to detect included figures without %%Begin(End)Document guards. 13. Added reopen button. 14. Small POSIX change in Dir.c 15. Make installStdCmap false by default. 16. Fix error where wrong pages were being saved or printed when descending page order is used. 17. Be sure to discard old backing pixmap if new alloc fails. ==================== ghostview 1.3-terry (30 May 92) ===================== 1. Rework the DSC comment scanner to return the length of the section as well as the start and end position. 2. Rework sending PostScript input down the pipe to eliminate a gross efficiency problem. I/O is done in 512 byte buffers rather than line by line. As many buffers as possible are sent before returning from routine. 3. Change Path.c to include <X11/Xos.h> to get <sys/types.h> and define getuid in terms of uid_t. 4. Added #defines for memset() and memcpy() for use when BSD4_2 is defined. ==================== ghostview 1.3 (12 May 92) ===================== 1. Fix bug where EPSF figures with a %%Page comment would cause ghostview to use garbage for the orientation or media. 2. Redid waiting for form to change size before reattaching the chains the X way. (Previous algorithm used a subsidiary event loop. It was prone to getting stuck with the wrong app-defaults.) The new algorithm uses timer events with exponential backoff. 3. Added Prior and Next keys to page back and forward. 4. Added GhostviewCheckFile action and bound it to MapNotify. Ghostview will now redraw the current page on deiconify when the file has changed. 5. Added application resource for the name of the PRINER environment variable. Default is LPDEST for SYSV and PRINTER for BSD. Also changed printer command to default to lp for SYSV and lpr for BSD. 6. Change Print Marked Pages to mark the current selection or current page when no pages are marked. It unmarks any page that it marked after sending output to the print command. Also, change Print Marked Pages to call print whole when there was no table of contents. This allows people to print a EPSF figure without having to press Shift P. 7. Automatically center page within viewport. autoCenter app-default or -nocenter can be used to disable this behavior. Add Center to Page menu and GhostviewCenter action and bind it to the C key. 8. Reworked the way that popup zoom windows work. The notify event contains both the window size desired and resolution desired. This allows much greater flexibility in the zoom windows. Changed the default zooms to be all 500x500 pixels at 200, 300, and 400 dpi. Popup zoom windows can be dismissed with the new dismiss button or pressing Q within the window. 9. Added -page <label> to start preview at a specific page. 10. Made minor change in Path.c for OCS88. (88open Object Compatibility Standard) 11. Disable interpreter earlier in setup_ghostview to avoid forking a new gs and then immediately killing it. 12. Correct generation of page numbers for documents without useful page labels and descending page order. 13. Coerce Magstep specified on command line in range. 14. Add U and D for scroll up and down. Moved unmark keyboard accelerator to N. 15. Add a couple of type casts to pacify some really picky compilers. 16. Use vfork() instead of fork(), except when SYSV or USG is defined. ==================== ghostview 1.2 (21 Apr 92) ===================== 1. Apply patch from Jonathan Stone <jonathan@isor.vuw.ac.nz> to explicitly call ./ad2c. 2. Fix problem with occasionally leaving an old file open. 3. Apply portability patches to SelFile widget for Interactive 2.2 from Karl Berry <karl@cs.umb.edu>. Also added .NOEXPORT to the Imakefile. 4. Apply portability patches to SelFile widget for SVR4 from Kimmo Suominen <Kimmo.Suominen@lut.fi>. 5. Fix error where wrong page(s) is(are) selected for printing in a document with Descending page order. 6. Added .defaultPrinter application resource. This string is used as the printer name if the PRINTER enviroment variable is not set. Also, allow the user to specify a NULL printername. 7. The Redisplay button was bound to the Next Page function. It is correct now. 8. It has been pointed out to me (repeatedly) that most users' screens are landscape orientation and the documents that they want to preview are portrait orientation placing a high value on sceen real estate in the vertical direction. I have changed the layout to use vertical space for the viewport alone. (Added undocumented action to <Key>Z to trigger relayout.) 9. Installed workaround for when form does not give me the sizes that I asked for. (Set all sizes, force relayout, request all sizes, if something different repeat.) Also, wait for shell resize before putting wm_size_hints in effect. 10. Tab stops adjusted in man page to work for both nroff and troff. 11. Added the following optimization: If reopening the same file and the prolog and setup are at the same place (byte position) in the file, assume that the prolog is identical and don't restart gs. 12. Move "*input: true" and "*allowShellResize: true" to the app-defaults file. 13. Mark values from the DSC comments with the "document" icon in the popup menus. 14. Since the title and date are sometimes truncated by the new layout, make them one item popup menus with the optional "document" icon. 15. Added two routines to the Ghostview widget that allows the application to query whether ghostscript is ready for new input, or if it is running. (It has to keep track of this already so why make the application do it as well.) 16. Avoid unnecessary restarting of ghostscript when user initiates changes that have no effect on the current page. 17. Don't rebuild the pagemedia menu on every document open. Just when the media list changes. 18. Added an option/application resource so that the user can control whether a standard colormap is installed. 19. Added an option/application resource so that the user can control whether a private colormap is used. ==================== ghostview 1.1 (25 Mar 92) ===================== 1. Remove HP-widget fluff from SelFile routines. 2. Remove pre-R4 fluff from SelFile routines. 3. Change "About..." popup to "Copyright..." 4. Added "Redisplay" menu button. 5. Changed name of topsy-turvy to seascape. 6. Added baseTranslations for X11R5. 7. Added F and B as synonyms for Next Page and Prev Page. 8. Added R and ctrl-L as synonyms for Redisplay Page. 9. Reworked NON_BLOCKING_IO to work with POSIX and SYSV. 10. Added margins to the Ghostview widget. This lets the popup zoom window "fool" tricky PostScript figure into thinking they have the whole page to draw on. 11. Added preload resource to ghostview widget. This allows on to preload fonts for instance. Real handy for drawings that like to load fonts over and over again. 12. Added GhostviewGetInputFileDescriptor convenience routine for other applications that might like to use the widget. 13. Fix XmuCvtStringToPageOrientation type converter. Used to just assume the it would allocate the storage. Now will write into preallocated storage. (This fixed command line orientation options.) 14. Adopt ad2c for generating fallback resources. Rework Imakefile to include that and streamline SIGNAL_DEFINES. 15. Two malloc mistakes fixed (Used 1 more byte than alloced.) 16. Include HOME_ON_DEMAND patch from Erik to reduce network load of SelFile widget when users home directories are NFS mounted. 17. Reworked SelFile widget to be a transient shell, and automatically place itself under the cursor. 18. Reworked SelFile widget to acutally open the requested file. Then it doesn't pop down and back up again when the user makes a mistake. 19. Changed overall size calculation to be precise. Add window manager horizontal and vertical margins for those who want to be as precise. 20. Added a work around for ncdwm users. Xt intrinsics put bogus information into size hints. Changing this slightly allows ncdwm to work right. 21. Fix bug when left bitmap of date or locator would be set when title was not realized. 22. Make dialog box a transient window for the main window. (This resource had to be set after both were realized.) 23. Delay mapping main window until after all geometry negotiation is done. 24. Fix bug (introduced in beta4) which would cause page numbers, rather then page labels to be used. 25. Don't replace the std cmap, just use what is there. 26. Man page included. 27. Always clear the window before starting interpreter. 28. Only popup the information window once. ==================== ghostview 1.0 beta 4 (05 Nov 91) ===================== 1. Changes for X11R5. - Fix up bogus function prototypes. - Type casts inserted where appropriate. 2. Added Delete Window protocol to SelFile widget. 3. Added chains within SelFile form widget. (Otherwise resizing would mess up its appearance.) 4. Correct problem with Text widget and useStringInPlace. 5. Moved setting of size hints to a separate routine. 6. Reset scroll bars of Viewport widget to 0 before resizing. (If Viewport goofs up it resize a nonzero scroll postion.) Scroll bars a set back to original location after the resize. 7. Change resize routine to accurate calculate new size when checking to make sure it isn't bigger than the screen. 8. Added two checks for exhausted dynamic memory after malloc. 9. Fixup parsing of comments when copying to a new file. 10.Fixup default pagemedia so that it is still in effect after viewing a document with a pagemedia specified in the PostScript comments. ==================== ghostview 1.0 beta 3 (07 Aug 91) ===================== 1. Ability to print whole file as well as selected pages. 2. Put locator within form widget rather than popping it up. 3. Send a message whenever the interpreter (ghostscript) fails (dumps core). 4. Add a convenience routine to Ghostview widget to return the backing pixmap. 5. Reworked the handling of dialog widgets. 6. Optionally include the SelFile file selector for open and save dialogs. 7. Corrected code that gave size hints to the window manager. Things now resize properly under motif. Also, set size hints via SetValues rather than directly. 8. Fixed up problem that could cause core dumps when switching files. 9. Removed hard coding of background to white and foreground to black when using the default colormap. If a special visual is used, you have to live with black and white. 10.Added check to make sure app-defaults were installed. 11.Made the display of title, date, and locator optional. 12.Rework command line options. 13.Allow input from stdin. 14.Ensure that orientation was set from app-defaults/command-line rather than individual Ghostview resources. 15.Made next button insensitive on last page and prev button insensitive on first page. 16.Correct problem where the files would appear to switch but the previous one would continue to be displayed. 17.Changed the type of "distance" from Dimension to int. (This would cause core dumps on some architectures.) 18.Changed pscopydoc to preserve the second argument to the %%Pages: comment. 19.Changed pscopydoc to not use the same FILE* as main. 20.added openwindows option/app-default to work-around openwindows bitmap bug. 21.Rewrote addr+enum_const expressions to &(addr[enum_const]) to pacify some compilers. ==================== ghostview 1.0 beta 2 (24 Jul 91) ===================== Portability: - include <fcntl.h> on all systems for O_NDELAY - set O_NDELAY = O_NONBLOCK for system V and POSIX systems - set EWOULDBLOCK = EAGAIN for system V and POSIX systems - include the free BSD sources for getenv, setenv, and strcasecmp for systems the don't have them. - Recoded XtSetFloatArg to be more portable. Bugs fixed: - PostScript Scanner properly handles nested documents (%%BeginDocument:) - Only one (correct) %%Pages: comment in saved or printed file. - Prevent dialog box components from getting squished. - GhostviewSetOrientation action works now. - GhostviewSetPageMedia action works now. - Documents with structuring comments, but no pages don't cause core dumps. - Bug in AsciiText widget was worked-around to avoid core dumps when switching to another document. - Documents with pages in Descending order now have the table of contents displayed in reverse order. Resource leaks plugged: - Input buffer and backing pixmap are now freed when widget is destroyed. - Input file descriptor is closed on zoom windows. Enhancements: (Thanks for the suggestions.) - When forcing a page media or orientation on a page, indicate that fact with a different marker on the orientation and/or page media menu. - Allow a forced page media to override the bounding box on epsf figures. - Added a locator which displays the coordinates in the default PostScript coordinate system while the mouse button is pressed in the main viewport. To avoid popping up a zoom window, leave the main viewport before releasing the mouse button. - All top level windows now understand WM_DELETE_WINDOW protocol. mwm users can use the close button. - If all the page labels are identical, use the ordinal page number instead. - Added popup dialog box to specify printer. The default is the contents of the PRINTER environment variable. - Added actions to allow scrolling of main viewport from keyboard. These are currently bound to h,j,k,l. - Enhanced PostScript scanner to accept real numbers on %%BoundingBox: comments. (Didn't anyone read the spec, it calls for integers!) - Added a limit check in increase/decrease magstep to prevent the magstep from being off the menu. (People objected to not being able to check the magstep.) - Added an option to the Ghostview widget to use backing store instead of a backing pixmap. (set "*Ghostview.useBackingPixmap: False" to use backing store.) ==================== ghostview 1.0 beta 1 (17 Jul 91) ===================== Original Release, No changes.