Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ghostview for VMS 08/14

0 views
Skip to first unread message

Terry Poot

unread,
Oct 29, 1992, 1:49:46 PM10/29/92
to
Submitted-by: Terry Poot <t...@mccall.com>
Posting-number: Volume 3, Issue 226
Archive-name: ghostview/part08

-+-+-+-+-+-+-+-+ START OF PART 8 -+-+-+-+-+-+-+-+
X int`09`09`09right_margin;
X int`09`09`09top_margin;
X /* private state */
X GC`09`09`09gc;`09`09/* GC used to clear window */
X Window`09`09mwin;`09`09/* destination of ghostsript messages */
X Boolean`09`09disable_start;`09/* whether to fork ghostscript */
X int`09`09`09interpreter_pid;/* pid of ghostscript, -1 if none */
X struct record_list`09*ps_input;`09/* pointer it gs input queue */
X char`09`09*input_buffer;`09/* pointer to input buffer */
X unsigned int`09bytes_left;`09/* bytes left in section */
X#ifndef VMS
X char`09`09*input_buffer_ptr; /* pointer into input buffer */
X unsigned int`09buffer_bytes_left; /* bytes left in buffer */
X#endif
X int`09`09`09interpreter_input; /* fd gs stdin, -1 if None */
X int`09`09`09interpreter_output; /* fd gs stdout, -1 if None */
X#ifndef VMS
X int`09`09`09interpreter_error; /* fd gs stderr, -1 if None */
X XtInputId`09`09interpreter_input_id; /* XtInputId for above */
X XtInputId`09`09interpreter_output_id; /* XtInputId for above */
X XtInputId`09`09interpreter_error_id; /* XtInputId for above */
X#else /* VMS */
X short`09`09interpreter_input_iosb`5B4`5D; /* I/O Status Blocks */
X short`09`09interpreter_output_iosb`5B4`5D; /* for each mailbox */
X char`09`09*output_buffer; /* pointer to output buffer */
X#endif /* VMS */
X Dimension`09`09gs_width;`09/* Width of window at last Setup() */
X Dimension`09`09gs_height;`09/* Height of window at last Setup() */
X Boolean`09`09busy;`09`09/* Is gs busy drawing? */
X Boolean`09`09changed;`09/* something changed since Setup()? */
X`7D GhostviewPart;
X
Xtypedef struct _GhostviewRec `7B
X CorePart`09`09core;
X GhostviewPart`09ghostview;
X`7D GhostviewRec;
X
X#endif /* _GhostviewP_h */
$ CALL UNPACK GHOSTVIEWP.H;1 558108461
$ create 'f'
X
XGhostview interface to ghostscript
X
XWhen the GHOSTVIEW environment variable is set, ghostscript draws on
Xan existing drawable rather than creating its own window. Ghostscript
Xcan be directed to draw on either a window or a pixmap.
X
XDrawing on a Window
X
XThe GHOSTVIEW environment variable contains the window id of the target
Xwindow. The window id is an integer. Ghostview will use the attributes
Xof the window to obtain the width, height, colormap, screen, and visual of
Xthe window. The remainder of the information is gotten from the GHOSTVIEW
Xproperty on that window.
X
X
XDrawing on a Pixmap
X
XThe GHOSTVIEW environment variable contains a window id and a pixmap id.
XThey are integers separated by white space. Ghostview will use the attribut
Ves
Xof the window to obtain the colormap, screen, and visual to use. The
Xremainder of the information, including the width and height of the pixmap,
Xis gotten from the GHOSTVIEW property on the window. In this case, the
Xproperty is deleted when read.
X
XThe GHOSTVIEW environment variable
X
Xparameters:`09window-id `5Bpixmap-id`5D
X
Xscanf format:`09"%d %d"
X
Xexplanation of parameters:
X
X`09window-id: tells ghostscript where to
X`09`09 - read the GHOSTVIEW property
X`09`09 - send events
X`09`09 If pixmap-id is not present,
X`09`09 ghostscript will draw on this window.
X
X`09pixmap-id: If present, tells ghostscript that a pixmap will be used
X`09`09 as the final destination for drawing. The window will
X`09`09 not be touched for drawing purposes.
X
XThe GHOSTVIEW property
X
Xtype:`09STRING
X
Xparameters:
X
X Drawing on a window:
X bpixmap orient llx lly urx ury xdpi ydpi `5Bleft bottom top right`5D
X
X Drawing on a pixmap:
X bpixmap orient llx lly urx ury xdpi ydpi left bottom top right width hei
Vght
X
Xscanf format: "%d %d %d %d %d %d %f %f %d %d %d %d %d %d"
X
Xexplanation of parameters:
X
X`09bpixmap: pixmap id of the backing pixmap for the window. If no
X`09`09pixmap is to be used, this parameter should be zero. This
X`09`09parameter must be zero when drawing on a pixmap.
X
X`09orient:`09orientation of the page. The number represents clockwise
X`09`09rotation of the paper in degrees. Permitted values are
X`09`090, 90, 180, 270.
X
X`09llx, lly, urx, ury: Bounding box of the drawable. The bounding box
X`09`09is specified in PostScript points in default user coordinates.
X
X`09xdpi, ydpi: Resolution of window. (This can be derived from the
X`09`09other parameters, but not without roundoff error. These
X`09`09values are included to avoid this error.)
X
X`09left, bottom, top, right: (optional when drawing on a window)
X`09`09Margins around the window. The margins extend the imageable
X`09`09area beyond the boundaries of the window. This is primarily
X`09`09used for popup zoom windows. I have encountered several
X`09`09instances of PostScript program that position themselves
X`09`09with respect to the imageable area. The margins are specified
X`09`09in PostScript points. If omitted, the margins are assumed to
X`09`09be 0.
X
X`09width, height: (Only specified when drawing on Pixmap)
X`09`09The width and height of the pixmap. (Too bad that we can't
X`09`09just query the server.)
X
XEvents from ghostscript
X
XIf the final destination is a pixmap, the client will get a property notify
Xevent when ghostscript reads the GHOSTVIEW property causing it to be deleted
V.
X
XGhostscript sends events to the window where it read the GHOSTVIEW property.
XThese events are of type ClientMessage. The message_type is set to
Xeither PAGE or DONE. The first long data value gives the window to be used
Xto send replies to ghostscript. The second long data value gives the primar
Vy
Xdrawable. If rendering to a pixmap, it is the primary drawable. If renderi
Vng
Xto a window, the backing pixmap is the primary drawable. If no backing pixm
Vap
Xis employed, then the window is the primary drawable. This field is necessa
Vry
Xto distinguish multiple ghostscripts rendering to separate pixmaps where the
XGHOSTVIEW property was placed on the same window.
X
XThe PAGE message indicates that a "page" has completed. Ghostscript will
Xwait until it receives a ClientMessage whose message_type is NEXT before
Xcontinuing.
X
XThe DONE message indicates that ghostscript has finished processing.
X
$ CALL UNPACK GS.INTERFACE;1 1903788157
$ create 'f'
X/*
X * gv.h -- Main include file for ghostview.
X * Copyright (C) 1992 Timothy O. Theisen
X *
X * This program is free software; you can redistribute it and/or modify
X * it under the terms of the GNU General Public License as published by
X * the Free Software Foundation; either version 2 of the License, or
X * (at your option) any later version.
X *
X * This program is distributed in the hope that it will be useful,
X * but WITHOUT ANY WARRANTY; without even the implied warranty of
X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X * GNU General Public License for more details.
X *
X * You should have received a copy of the GNU General Public License
X * along with this program; if not, write to the Free Software
X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X *
X * Author: Tim Theisen Systems Programmer
X * Internet: t...@cs.wisc.edu Department of Computer Sciences
X * UUCP: uwvax!tim University of Wisconsin-Madison
X * Phone: (608)262-0438 1210 West Dayton Street
X * FAX: (608)262-9777 Madison, WI 53706
X */
X
X#include <stdio.h>
X#include <X11/Xos.h>
X#include <sys/stat.h>
X#include <X11/Intrinsic.h>
X#define XtSetFloatArg(arg, n, d) \
X if (sizeof(float) > sizeof(XtArgVal)) `7B \
X`09XtSetArg(arg, n, &(d)); \
X `7D else `7B \
X`09XtArgVal *ld = (XtArgVal *)&(d); \
X`09XtSetArg(arg, n, *ld); \
X `7D
X#include "Ghostview.h"
X
X/* Application resources */
Xtypedef struct _AppResources `7B
X Boolean show_title;`09`09/* whether to show title */
X Boolean show_date;`09`09/* whether to show date */
X Boolean show_locator;`09/* whether to show locator */
X Boolean install_std_cmap;`09/* whether to install standard colormap */
X Boolean retain_std_cmap;`09/* whether to retain standard colormap */
X Boolean private_cmap;`09/* whether to use private colormap */
X Boolean auto_center;`09/* whether to automatically center the page */
X int wm_horiz_margin;`09/* Space taken by window manager */
X int wm_vert_margin;`09`09/* Space taken by window manager */
X int minimum_magstep;`09/* smallest magstep allowed */
X int maximum_magstep;`09/* largest magstep allowed */
X int magstep;`09`09/* default magstep */
X XtPageOrientation orientation;`09/* default orientation */
X String page;`09`09/* first page to show */
X String pagemedia;`09`09/* default page media */
X Boolean force_orientation;`09/* use default to override document comment
Vs */
X Boolean force_pagemedia;`09/* use default to override document comments
V */
X Boolean swap_landscape;`09/* Landscape comment maps to Seascape */
X String print_command;`09/* command used to print doc, usually "lpr" */
X String printer_variable;`09/* env varaible to use, usually "PRINTER" */
X String default_printer;`09/* printer to use if no PRINTER is not set*/
X String print_prompt;`09/* string to prompt user for printer name */
X String print_fail;`09`09/* string to inform user that print failed */
X String open_prompt;`09`09/* string to prompt for file name to open */
X String open_fail;`09`09/* string to inform user that open failed */
X String save_prompt;`09`09/* string to prompt for file name to save */
X String save_fail;`09`09/* string to inform user that save failed */
X /* Work arounds for others' bugs */
X Boolean openwindows;`09/* whether to work around openwindow bug */
X Boolean ncdwm;`09`09/* whether to work around ncdwm bug */
X`7D AppResources;
X
Xextern float`09default_xdpi;
Xextern float`09default_ydpi;
X
Xextern int`09num_ghosts;
Xextern FILE`09*psfile;
Xextern String`09filename;
Xextern String`09oldfilename;
Xextern int`09current_page;
Xextern int`09current_magstep;
Xextern XtPageOrientation`09current_orientation;
Xextern int`09default_pagemedia;
Xextern int`09current_pagemedia;
Xextern Boolean`09force_document_media;
Xextern int`09document_media;
Xextern int`09current_llx;
Xextern int`09current_lly;
Xextern int`09current_urx;
Xextern int`09current_ury;
Xextern int`09base_papersize;
Xextern Boolean`09info_up;
Xextern int`09force_setting;
Xextern Pixmap`09dot_bitmap;
Xextern Pixmap`09menu16_bitmap;
Xextern Pixmap`09tie_fighter_bitmap;
Xextern String`09toc_text;
Xextern int`09toc_length;
Xextern int`09toc_entry_length;
Xextern int`09info_length;
Xextern time_t`09mtime;
Xextern struct document *doc;
Xextern struct document *olddoc;
Xextern Colormap`09cmap;
Xextern Boolean`09special_cmap;
Xextern Pixel`09white;
Xextern Pixel`09black;
Xextern Atom`09wm_delete_window;
Xextern int`09catch_Xerror();
Xextern XErrorHandler`09old_Xerror;
Xextern Boolean`09dying;
Xextern XErrorEvent`09bomb;
X
Xenum `7BOPEN, PRINT_WHOLE, PRINT_MARKED, SAVE`7D;
Xextern int`09mode;
X
Xextern XtAppContext app_con;
Xextern AppResources app_res;
X
X/* Widgets */
Xextern Widget toplevel;
Xextern Widget form;
Xextern Widget titlebutton;
Xextern Widget titlemenu;
Xextern Widget datebutton;
Xextern Widget datemenu;
Xextern Widget locator;
Xextern Widget box;
Xextern Widget filebutton;
Xextern Widget filemenu;
Xextern Widget openbutton;
Xextern Widget reopenbutton;
Xextern Widget printwholebutton;
Xextern Widget printmarkedbutton;
Xextern Widget savebutton;
Xextern Widget copyrightbutton;
Xextern Widget quitbutton;
Xextern Widget pagebutton;
Xextern Widget pagemenu;
Xextern Widget nextbutton;
Xextern Widget showbutton;
Xextern Widget prevbutton;
Xextern Widget centerbutton;
Xextern Widget markbutton;
Xextern Widget unmarkbutton;
Xextern Widget magstepbutton;
Xextern Widget magstepmenu;
Xextern Widget *magstepentry;
Xextern Widget orientationbutton;
Xextern Widget orientationmenu;
Xextern Widget portraitbutton;
Xextern Widget landscapebutton;
Xextern Widget upsidedownbutton;
Xextern Widget seascapebutton;
Xextern Widget swapbutton;
Xextern Widget pagemediabutton;
Xextern Widget pagemediamenu;
Xextern Widget *pagemediaentry;
Xextern Widget toc;
Xextern Widget pageview;
Xextern Widget page;
X
X/* Popup widgets */
Xextern Widget infopopup;
Xextern Widget infoform;
Xextern Widget infotext;
Xextern Widget infobutton;
Xextern Widget copyrightpopup;
Xextern Widget copyrightform;
Xextern Widget copyrighttext;
Xextern Widget copyrightbutton;
Xextern Widget dialogpopup;
Xextern Widget dialog;
X
X/* Dialogs */
Xextern Widget CreateDialog();
Xextern String GetDialogPrompt();
Xextern void SetDialogPrompt();
Xextern String GetDialogResponse();
Xextern void SetDialogResponse();
Xextern void ClearDialogResponse();
X
X/* Callbacks */
Xextern void quit_ghostview();
Xextern void popup();
Xextern void popup_dialog();
Xextern void reopen_file();
Xextern void prev_page();
Xextern void this_page();
Xextern void next_page();
Xextern void center_page();
Xextern void mark_page();
Xextern void unmark_page();
Xextern void set_magstep();
Xextern void set_orientation();
Xextern void swap_landscape();
Xextern void set_pagemedia();
Xextern void track_and_zoom();
Xextern void message();
Xextern void output();
Xextern void okay();
Xextern void dismiss();
Xextern void destroy();
Xextern void destroy_ghost();
X
X/* Actions */
Xextern void gv_copyright();
Xextern void gv_quit();
Xextern void gv_open();
Xextern void gv_reopen();
Xextern void gv_save();
Xextern void gv_print_whole();
Xextern void gv_print_marked();
Xextern void gv_prev();
Xextern void gv_show();
Xextern void gv_next();
Xextern void gv_center();
Xextern void gv_mark();
Xextern void gv_unmark();
Xextern void gv_set_magstep();
Xextern void gv_increase_magstep();
Xextern void gv_decrease_magstep();
Xextern void gv_set_orientation();
Xextern void gv_swap_landscape();
Xextern void gv_set_pagemedia();
Xextern void gv_default();
Xextern void gv_force();
Xextern void gv_delete_window();
Xextern void gv_delete_zoom();
Xextern void gv_dismiss();
Xextern void gv_scroll_up();
Xextern void gv_scroll_down();
Xextern void gv_scroll_left();
Xextern void gv_scroll_right();
Xextern void gv_erase_locator();
Xextern void gv_check_file();
X
X/* Misc */
Xextern void show_page();
Xextern Boolean setup_ghostview();
Xextern void layout_ghostview();
Xextern void SetStandardColormap();
Xextern void magnify();
Xextern String open_file();
Xextern String save_file();
Xextern String print_file();
Xextern void pscopydoc();
Xextern void positionpopup();
Xextern Boolean set_new_magstep();
Xextern Boolean set_new_orientation();
Xextern Boolean set_new_pagemedia();
Xextern void build_pagemedia_menu();
Xextern Widget build_label_menu();
Xextern void new_file();
$ CALL UNPACK GV.H;1 1567284586
$ create 'f'
X==================== ghostview 1.4 (11 Oct 92) =====================
X
X 1. Merge in VMS support from Terry Poot <t...@mccall.com>.
X
X 2. Force the Alloc error to occur immediately after trying to allocate
X the backing pixmap. Deal with it as best as we can.
X
X 3. Withdraw unused function GhostviewGetInputFileDescriptor().
X
X 4. Use XCOMM trick from X11R5 to make Imakefile more portable.
X
X 5. Renamed ghostview.h to gv.h and Ghostview.ad.h to app-defaults.h to
X avoid limitations in VMS file names.
X
X 6. Correct problem where ghostscript interpreter was not being killed
X when the popup zoom window was dismissed.
X
X 7. Propagate error messages about alloc failures and interpreter failures
X in both main and zoom windows back to the information window.
X
X 8. Catch X errors and gracefully die if one occurs.
X
X 9. Relayout ghostview whenever the document requests a new orientation or
X page media.
X
X10. Allow for multipage encapsulated PostScript figures.
X
X11. More upgrades to PostScript scanner.
X - Comment section now terminated by %X where X is unprintable.
X - Length of section is now properly computed when there is an
X included document.
X - Cleaned up misuse of global variables.
X - Ignore comments within %%Begin(End)Feature, %%Begin(End)File,
X %%Begin(End)Font, %%Begin(End)ProcSet, %%Begin(End)Resource.
X - Change enum `7BLLX, LLY, URX, URY`7D to #defines to avoid confusing so
Vme
X compilers.
X
X12. Pay attention to ordinal number on %%Page comment to detect included
X figures without %%Begin(End)Document guards.
X
X13. Added reopen button.
X
X14. Small POSIX change in Dir.c
X
X15. Make installStdCmap false by default.
X
X16. Fix error where wrong pages were being saved or printed when descending
X page order is used.
X
X17. Be sure to discard old backing pixmap if new alloc fails.
X
X==================== ghostview 1.3-terry (30 May 92) =====================
X
X 1. Rework the DSC comment scanner to return the length of the section as
X well as the start and end position.
X
X 2. Rework sending PostScript input down the pipe to eliminate a gross
X efficiency problem. I/O is done in 512 byte buffers rather than
X line by line. As many buffers as possible are sent before returning
X from routine.
X
X 3. Change Path.c to include <X11/Xos.h> to get <sys/types.h> and define
X getuid in terms of uid_t.
X
X 4. Added #defines for memset() and memcpy() for use when BSD4_2 is defined.
X
X==================== ghostview 1.3 (12 May 92) =====================
X
X 1. Fix bug where EPSF figures with a %%Page comment would cause ghostview
X to use garbage for the orientation or media.
X
X 2. Redid waiting for form to change size before reattaching the chains the
V X
X way. (Previous algorithm used a subsidiary event loop. It was prone
X to getting stuck with the wrong app-defaults.) The new algorithm uses
X timer events with exponential backoff.
X
X 3. Added Prior and Next keys to page back and forward.
X
X 4. Added GhostviewCheckFile action and bound it to MapNotify. Ghostview wi
Vll
X now redraw the current page on deiconify when the file has changed.
X
X 5. Added application resource for the name of the PRINER environment variab
Vle.
X Default is LPDEST for SYSV and PRINTER for BSD. Also changed printer
X command to default to lp for SYSV and lpr for BSD.
X
X 6. Change Print Marked Pages to mark the current selection or current page
X when no pages are marked. It unmarks any page that it marked after send
Ving
X output to the print command. Also, change Print Marked Pages to call
X print whole when there was no table of contents. This allows people to
X print a EPSF figure without having to press Shift P.
X
X 7. Automatically center page within viewport. autoCenter app-default or
X -nocenter can be used to disable this behavior. Add Center to Page menu
X and GhostviewCenter action and bind it to the C key.
X
X 8. Reworked the way that popup zoom windows work. The notify event contain
Vs
X both the window size desired and resolution desired. This allows much
X greater flexibility in the zoom windows. Changed the default zooms to
X be all 500x500 pixels at 200, 300, and 400 dpi. Popup zoom windows can
X be dismissed with the new dismiss button or pressing Q within the window
V.
X
X 9. Added -page <label> to start preview at a specific page.
X
X10. Made minor change in Path.c for OCS88.
X (88open Object Compatibility Standard)
X
X11. Disable interpreter earlier in setup_ghostview to avoid forking a new
X gs and then immediately killing it.
X
X12. Correct generation of page numbers for documents without useful page lab
Vels
X and descending page order.
X
X13. Coerce Magstep specified on command line in range.
X
X14. Add U and D for scroll up and down. Moved unmark keyboard accelerator
X to N.
X
X15. Add a couple of type casts to pacify some really picky compilers.
X
X16. Use vfork() instead of fork(), except when SYSV or USG is defined.
X
X==================== ghostview 1.2 (21 Apr 92) =====================
X
X 1. Apply patch from Jonathan Stone <jona...@isor.vuw.ac.nz> to
X explicitly call ./ad2c.
X
X 2. Fix problem with occasionally leaving an old file open.
X
X 3. Apply portability patches to SelFile widget for Interactive 2.2 from
X Karl Berry <ka...@cs.umb.edu>. Also added .NOEXPORT to the Imakefile.
X
X 4. Apply portability patches to SelFile widget for SVR4 from Kimmo Suominen
X <Kimmo.S...@lut.fi>.
X
X 5. Fix error where wrong page(s) is(are) selected for printing in a
X document with Descending page order.
X
X 6. Added .defaultPrinter application resource. This string is used as
X the printer name if the PRINTER enviroment variable is not set. Also,
X allow the user to specify a NULL printername.
X
X 7. The Redisplay button was bound to the Next Page function. It is correct
X now.
X
X 8. It has been pointed out to me (repeatedly) that most users' screens are
X landscape orientation and the documents that they want to preview are
X portrait orientation placing a high value on sceen real estate in the
X vertical direction. I have changed the layout to use vertical space for
X the viewport alone. (Added undocumented action to <Key>Z to trigger
X relayout.)
X
X 9. Installed workaround for when form does not give me the sizes that I
X asked for. (Set all sizes, force relayout, request all sizes, if someth
Ving
X different repeat.) Also, wait for shell resize before putting
X wm_size_hints in effect.
X
X10. Tab stops adjusted in man page to work for both nroff and troff.
X
X11. Added the following optimization: If reopening the same file and the
X prolog and setup are at the same place (byte position) in the file,
X assume that the prolog is identical and don't restart gs.
X
X12. Move "*input: true" and "*allowShellResize: true" to the app-defaults fi
Vle.
X
X13. Mark values from the DSC comments with the "document" icon in the popup
X menus.
X
X14. Since the title and date are sometimes truncated by the new layout, make
X them one item popup menus with the optional "document" icon.
X
X15. Added two routines to the Ghostview widget that allows the application t
Vo
X query whether ghostscript is ready for new input, or if it is running.
X (It has to keep track of this already so why make the application do it
V as
X well.)
X
X16. Avoid unnecessary restarting of ghostscript when user initiates changes
X that have no effect on the current page.
X
X17. Don't rebuild the pagemedia menu on every document open. Just when the
X media list changes.
X
X18. Added an option/application resource so that the user can control whethe
Vr
X a standard colormap is installed.
X
X19. Added an option/application resource so that the user can control whethe
Vr
X a private colormap is used.
X
X==================== ghostview 1.1 (25 Mar 92) =====================
X
X 1. Remove HP-widget fluff from SelFile routines.
X
X 2. Remove pre-R4 fluff from SelFile routines.
X
X 3. Change "About..." popup to "Copyright..."
X
X 4. Added "Redisplay" menu button.
X
X 5. Changed name of topsy-turvy to seascape.
X
X 6. Added baseTranslations for X11R5.
X
X 7. Added F and B as synonyms for Next Page and Prev Page.
X
X 8. Added R and ctrl-L as synonyms for Redisplay Page.
X
X 9. Reworked NON_BLOCKING_IO to work with POSIX and SYSV.
X
X10. Added margins to the Ghostview widget. This lets the popup zoom
X window "fool" tricky PostScript figure into thinking they have the
X whole page to draw on.
X
X11. Added preload resource to ghostview widget. This allows on to preload
X fonts for instance. Real handy for drawings that like to load fonts
X over and over again.
X
X12. Added GhostviewGetInputFileDescriptor convenience routine for other
X applications that might like to use the widget.
X
X13. Fix XmuCvtStringToPageOrientation type converter. Used to just assume
X the it would allocate the storage. Now will write into preallocated
X storage. (This fixed command line orientation options.)
X
X14. Adopt ad2c for generating fallback resources. Rework Imakefile to
X include that and streamline SIGNAL_DEFINES.
X
X15. Two malloc mistakes fixed (Used 1 more byte than alloced.)
X
X16. Include HOME_ON_DEMAND patch from Erik to reduce network load of
X SelFile widget when users home directories are NFS mounted.
X
X17. Reworked SelFile widget to be a transient shell, and automatically
X place itself under the cursor.
X
X18. Reworked SelFile widget to acutally open the requested file. Then
X it doesn't pop down and back up again when the user makes a mistake.
X
X19. Changed overall size calculation to be precise. Add window manager
X horizontal and vertical margins for those who want to be as precise.
X
X20. Added a work around for ncdwm users. Xt intrinsics put bogus informatio
Vn
X into size hints. Changing this slightly allows ncdwm to work right.
X
X21. Fix bug when left bitmap of date or locator would be set when title
X was not realized.
X
X22. Make dialog box a transient window for the main window. (This resource
X had to be set after both were realized.)
X
X23. Delay mapping main window until after all geometry negotiation is done.
X
X24. Fix bug (introduced in beta4) which would cause page numbers, rather
X then page labels to be used.
X
X25. Don't replace the std cmap, just use what is there.
X
X26. Man page included.
X
X27. Always clear the window before starting interpreter.
X
X28. Only popup the information window once.
X
X==================== ghostview 1.0 beta 4 (05 Nov 91) =====================
X
X1. Changes for X11R5.
X - Fix up bogus function prototypes.
X - Type casts inserted where appropriate.
X
X2. Added Delete Window protocol to SelFile widget.
X
X3. Added chains within SelFile form widget. (Otherwise resizing would
X mess up its appearance.)
X
X4. Correct problem with Text widget and useStringInPlace.
X
X5. Moved setting of size hints to a separate routine.
X
X6. Reset scroll bars of Viewport widget to 0 before resizing.
X (If Viewport goofs up it resize a nonzero scroll postion.)
X Scroll bars a set back to original location after the resize.
X
X7. Change resize routine to accurate calculate new size when checking to
X make sure it isn't bigger than the screen.
X
X8. Added two checks for exhausted dynamic memory after malloc.
X
X9. Fixup parsing of comments when copying to a new file.
X
X10.Fixup default pagemedia so that it is still in effect after viewing
X a document with a pagemedia specified in the PostScript comments.
X
X==================== ghostview 1.0 beta 3 (07 Aug 91) =====================
X
X1. Ability to print whole file as well as selected pages.
X
X2. Put locator within form widget rather than popping it up.
X
X3. Send a message whenever the interpreter (ghostscript) fails (dumps core).
X
X4. Add a convenience routine to Ghostview widget to return the backing pixma
Vp.
X
X5. Reworked the handling of dialog widgets.
X
X6. Optionally include the SelFile file selector for open and save dialogs.
X
X7. Corrected code that gave size hints to the window manager. Things
X now resize properly under motif. Also, set size hints via SetValues
X rather than directly.
X
X8. Fixed up problem that could cause core dumps when switching files.
X
X9. Removed hard coding of background to white and foreground to black
X when using the default colormap. If a special visual is used, you
X have to live with black and white.
X
X10.Added check to make sure app-defaults were installed.
X
X11.Made the display of title, date, and locator optional.
X
X12.Rework command line options.
X
X13.Allow input from stdin.
X
X14.Ensure that orientation was set from app-defaults/command-line rather
X than individual Ghostview resources.
X
X15.Made next button insensitive on last page and prev button insensitive
X on first page.
X
X16.Correct problem where the files would appear to switch but the previous
X one would continue to be displayed.
X
X17.Changed the type of "distance" from Dimension to int. (This would cause
X core dumps on some architectures.)
X
X18.Changed pscopydoc to preserve the second argument to the %%Pages: comment
V.
X
X19.Changed pscopydoc to not use the same FILE* as main.
X
X20.added openwindows option/app-default to work-around openwindows bitmap bu
Vg.
X
X21.Rewrote addr+enum_const expressions to &(addr`5Benum_const`5D) to pacify
V some
X compilers.
X
X==================== ghostview 1.0 beta 2 (24 Jul 91) =====================
X
XPortability:
X - include <fcntl.h> on all systems for O_NDELAY
X - set O_NDELAY = O_NONBLOCK for system V and POSIX systems
X - set EWOULDBLOCK = EAGAIN for system V and POSIX systems
X - include the free BSD sources for getenv, setenv, and strcasecmp
X for systems the don't have them.
X - Recoded XtSetFloatArg to be more portable.
X
XBugs fixed:
X - PostScript Scanner properly handles nested documents (%%BeginDocument:)
X - Only one (correct) %%Pages: comment in saved or printed file.
X - Prevent dialog box components from getting squished.
X - GhostviewSetOrientation action works now.
X - GhostviewSetPageMedia action works now.
X - Documents with structuring comments, but no pages don't cause core dumps
V.
X - Bug in AsciiText widget was worked-around to avoid core dumps when
X switching to another document.
X - Documents with pages in Descending order now have the table of contents
X displayed in reverse order.
X
XResource leaks plugged:
X - Input buffer and backing pixmap are now freed when widget is destroyed.
X - Input file descriptor is closed on zoom windows.
X
XEnhancements: (Thanks for the suggestions.)
X - When forcing a page media or orientation on a page, indicate that fact
X with a different marker on the orientation and/or page media menu.
X - Allow a forced page media to override the bounding box on epsf figures.
X - Added a locator which displays the coordinates in the default PostScript
X coordinate system while the mouse button is pressed in the main viewport
V.
X To avoid popping up a zoom window, leave the main viewport before releas
Ving
X the mouse button.
X - All top level windows now understand WM_DELETE_WINDOW protocol. mwm
X users can use the close button.
X - If all the page labels are identical, use the ordinal page number instea
Vd.
X - Added popup dialog box to specify printer. The default is the contents
X of the PRINTER environment variable.
X - Added actions to allow scrolling of main viewport from keyboard.
X These are currently bound to h,j,k,l.
X - Enhanced PostScript scanner to accept real numbers on %%BoundingBox:
X comments. (Didn't anyone read the spec, it calls for integers!)
X - Added a limit check in increase/decrease magstep to prevent the magstep
X from being off the menu. (People objected to not being able to check th
Ve
X magstep.)
X - Added an option to the Ghostview widget to use backing store instead
X of a backing pixmap. (set "*Ghostview.useBackingPixmap: False" to use
X backing store.)
X
X==================== ghostview 1.0 beta 1 (17 Jul 91) =====================
X
XOriginal Release, No changes.
$ CALL UNPACK HISTORY.;1 1014230752
$ create 'f'
X#ifndef XCOMM
X#define XCOMM #
X#endif
X
XXCOMM Imakefile -- Imakefile for ghostview.
XXCOMM Copyright (C) 1992 Timothy O. Theisen
XXCOMM`20
XXCOMM This program is free software; you can redistribute it and/or modify
XXCOMM it under the terms of the GNU General Public License as published by
XXCOMM the Free Software Foundation; either version 2 of the License, or
XXCOMM (at your option) any later version.
XXCOMM`20
XXCOMM This program is distributed in the hope that it will be useful,
XXCOMM but WITHOUT ANY WARRANTY; without even the implied warranty of
XXCOMM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
XXCOMM GNU General Public License for more details.
XXCOMM`20
XXCOMM You should have received a copy of the GNU General Public License
XXCOMM along with this program; if not, write to the Free Software
XXCOMM Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
XXCOMM`20
XXCOMM Author: Tim Theisen Systems Programmer
XXCOMM Internet: t...@cs.wisc.edu Department of Computer Sciences
XXCOMM UUCP: uwvax!tim University of Wisconsin-Madison
XXCOMM Phone: (608)262-0438 1210 West Dayton Street
XXCOMM FAX: (608)262-9777 Madison, WI 53706
X
X#define Use_SelFile
X
X#ifdef Use_SelFile
X SRCS = main.c misc.c callbacks.c actions.c dialogs.c \
X Ghostview.c ps.c getenv.c setenv.c strcasecmp.c \
X SelFile.c Dir.c Path.c Draw.c
X OBJS = main.o misc.o callbacks.o actions.o dialogs.o \
X Ghostview.o ps.o getenv.o setenv.o strcasecmp.o \
X SelFile.o Dir.o Path.o Draw.o
X SELFILE_DEFINE = -DSELFILE -DHOME_ON_DEMAND
X#else
X SRCS = main.c misc.c callbacks.c actions.c dialogs.c \
X Ghostview.c ps.c getenv.c setenv.c strcasecmp.c
X OBJS = main.o misc.o callbacks.o actions.o dialogs.o \
X Ghostview.o ps.o getenv.o setenv.o strcasecmp.o
X SELFILE_DEFINE =
X#endif
X
X DEPLIBS = XawClientDepLibs
XLOCAL_LIBRARIES = XawClientLibs
X SYS_LIBRARIES = -lm
X
XXCOMM Add -DBSD4_2 to DEFINES if you system does not have memset() and memcp
Vy()
X
X DEFINES = -DNON_BLOCKING_IO $(SIGNAL_DEFINES) $(SELFILE_DEFINE)
X
X.NOEXPORT:
X
XAllTarget(ghostview)
X
Xdepend:: app-defaults.h
X
XComplexProgramTarget(ghostview)
XInstallAppDefaults(Ghostview)
X
Xmain.o: app-defaults.h
X
Xapp-defaults.h: Ghostview.ad
X`09./ad2c Ghostview.ad > app-defaults.h
X
Xclean::
X`09$(RM) app-defaults.h
$ CALL UNPACK IMAKEFILE.;1 1359606544
$ create 'f'
X/*
X * main.c -- Main routine for ghostview.
X * Copyright (C) 1992 Timothy O. Theisen
X *
X * This program is free software; you can redistribute it and/or modify
X * it under the terms of the GNU General Public License as published by
X * the Free Software Foundation; either version 2 of the License, or
X * (at your option) any later version.
X *
X * This program is distributed in the hope that it will be useful,
X * but WITHOUT ANY WARRANTY; without even the implied warranty of
X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X * GNU General Public License for more details.
X *
X * You should have received a copy of the GNU General Public License
X * along with this program; if not, write to the Free Software
X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X *
X * Author: Tim Theisen Systems Programmer
X * Internet: t...@cs.wisc.edu Department of Computer Sciences
X * UUCP: uwvax!tim University of Wisconsin-Madison
X * Phone: (608)262-0438 1210 West Dayton Street
X * FAX: (608)262-9777 Madison, WI 53706
X */
X
X#include <X11/Intrinsic.h>
X#include <X11/cursorfont.h>
X#include <X11/StringDefs.h>
X#include <X11/Shell.h>
X#ifdef VMS
X#include <X11/bitmaps/dot.>
X#include <X11/bitmaps/menu16.>
X#include <X11/bitmaps/tie_fighter.>
X#else
X#include <X11/bitmaps/dot>
X#include <X11/bitmaps/menu16>
X#include <X11/bitmaps/tie_fighter>
X#endif
X
X#include <X11/Xaw/Cardinals.h>
X#include <X11/Xaw/Form.h>
X#include <X11/Xaw/Viewport.h>
X#include <X11/Xaw/Box.h>
X#include <X11/Xaw/MenuButton.h>
X#include <X11/Xaw/SimpleMenu.h>
X#include <X11/Xaw/SmeBSB.h>
X#include <X11/Xaw/SmeLine.h>
X#include <X11/Xaw/Label.h>
X#include <X11/Xaw/AsciiText.h>
X#include <X11/Xaw/Command.h>
X
X#include "Ghostview.h"
X#include "gv.h"
X#include "ps.h"
X
Xextern char *getenv();
X
Xstatic String version = "Ghostview, version 1.4";
X
Xstatic XtResource resources`5B`5D = `7B
X `7B"showTitle", "Labels", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, show_title), XtRImmediate, (XtPointer)True`7D,
X `7B"showDate", "Labels", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, show_date), XtRImmediate, (XtPointer)True`7D,
X `7B"showLocator", "Labels", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, show_locator), XtRImmediate, (XtPointer)True`7
VD,
X `7B"installStdCmap", "InstallStdCmap", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, install_std_cmap), XtRImmediate,
X (XtPointer)False`7D,
X `7B"retainStdCmap", "RetainStdCmap", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, retain_std_cmap), XtRImmediate, (XtPointer)Tru
Ve`7D,
X `7B"privateCmap", "PrivateCmap", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, private_cmap), XtRImmediate, (XtPointer)False`
V7D,
X `7B"autoCenter", "AutoCenter", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, auto_center), XtRImmediate, (XtPointer)True`7D
V,
X `7B"horizontalMargin", "Margin", XtRInt, sizeof(int),
X XtOffsetOf(AppResources, wm_horiz_margin), XtRImmediate, (XtPointer)20`
V7D,
X `7B"verticalMargin", "Margin", XtRInt, sizeof(int),
X XtOffsetOf(AppResources, wm_vert_margin), XtRImmediate, (XtPointer)44`7
VD,
X `7B"minimumMagstep", "Magstep", XtRInt, sizeof(int),
X XtOffsetOf(AppResources, minimum_magstep), XtRImmediate, (XtPointer)-5`
V7D,
X `7B"maximumMagstep", "Magstep", XtRInt, sizeof(int),
X XtOffsetOf(AppResources, maximum_magstep), XtRImmediate, (XtPointer)5`7
VD,
X `7B"magstep", "Magstep", XtRInt, sizeof(int),
X XtOffsetOf(AppResources, magstep), XtRImmediate, (XtPointer)0`7D,
X `7B"orientation", "Orientation", XtRPageOrientation,
X sizeof(XtPageOrientation), XtOffsetOf(AppResources, orientation),
X XtRImmediate, (XtPointer) XtPageOrientationPortrait`7D,
X `7B"page", "Page", XtRString, sizeof(String),
X XtOffsetOf(AppResources, page), XtRImmediate, NULL`7D,
X `7B"pageMedia", "PageMedia", XtRString, sizeof(String),
X XtOffsetOf(AppResources, pagemedia), XtRImmediate, "Letter"`7D,
X `7B"forceOrientation", "Force", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, force_orientation), XtRImmediate,
X (XtPointer)False`7D,
X `7B"forcePageMedia", "Force", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, force_pagemedia), XtRImmediate, (XtPointer)Fal
Vse`7D,
X `7B"swapLandscape", "SwapLandscape", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, swap_landscape), XtRImmediate, (XtPointer)Fals
Ve`7D,
X#ifndef VMS
X#if defined(SVR4) `7C`7C defined(SYSV) `7C`7C defined(USG)
X `7B"printCommand", "PrintCommand", XtRString, sizeof(String),
X XtOffsetOf(AppResources, print_command), XtRImmediate, "lp"`7D,
X `7B"printerVariable", "PrinterVariable", XtRString, sizeof(String),
X XtOffsetOf(AppResources, printer_variable), XtRImmediate, "LPDEST"`7D,
X#else
X `7B"printCommand", "PrintCommand", XtRString, sizeof(String),
X XtOffsetOf(AppResources, print_command), XtRImmediate, "lpr"`7D,
X `7B"printerVariable", "PrinterVariable", XtRString, sizeof(String),
X XtOffsetOf(AppResources, printer_variable), XtRImmediate, "PRINTER"`7D,
X#endif
X `7B"printPrompt", "PrintPrompt", XtRString, sizeof(String),
X XtOffsetOf(AppResources, print_prompt), XtRImmediate, "Printer Name:"`7
VD,
X#else /* VMS */
X `7B"printCommand", "PrintCommand", XtRString, sizeof(String),
X XtOffsetOf(AppResources, print_command), XtRImmediate, "Print_dcl/Delet
Ve"`7D,
X `7B"printerVariable", "PrinterVariable", XtRString, sizeof(String),
X XtOffsetOf(AppResources, printer_variable), XtRImmediate, "GV_PRINT_QUA
VL"`7D,
X `7B"printPrompt", "PrintPrompt", XtRString, sizeof(String),
X XtOffsetOf(AppResources, print_prompt), XtRImmediate, "Print Qualifiers
V:"`7D,
X#endif /* VMS */
X `7B"defaultPrinter", "DefaultPrinter", XtRString, sizeof(String),
X XtOffsetOf(AppResources, default_printer), XtRImmediate, NULL`7D,
X `7B"printFail", "printFail", XtRString, sizeof(String),
X XtOffsetOf(AppResources, print_fail), XtRImmediate,
X "\"%s\" command failed."`7D,
X `7B"openPrompt", "OpenPrompt", XtRString, sizeof(String),
X XtOffsetOf(AppResources, open_prompt), XtRImmediate, "Open File:"`7D,
X `7B"openFail", "OpenFail", XtRString, sizeof(String),
X XtOffsetOf(AppResources, open_fail), XtRImmediate, "Cannot open file: "
V`7D,
X `7B"savePrompt", "SavePrompt", XtRString, sizeof(String),
X XtOffsetOf(AppResources, save_prompt), XtRImmediate, "Save File:"`7D,
X `7B"saveFail", "SaveFail", XtRString, sizeof(String),
X XtOffsetOf(AppResources, save_fail), XtRImmediate, "Cannot save file: "
V`7D,
X `7B"openWindows", "OpenWindows", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, openwindows), XtRImmediate, (XtPointer)False`7
VD,
X `7B"ncdwm", "Ncdwm", XtRBoolean, sizeof(Boolean),
X XtOffsetOf(AppResources, ncdwm), XtRImmediate, (XtPointer)False`7D,
X`7D;
X
Xstatic XrmOptionDescRec options`5B`5D = `7B
X `7B"-staticgray", "*Visual", XrmoptionNoArg, "StaticGray"`7D,
X `7B"-grayscale", "*Visual", XrmoptionNoArg, "GrayScale"`7D,
X `7B"-staticcolor", "*Visual", XrmoptionNoArg, "StaticColor"`7D,
X `7B"-pseudocolor", "*Visual", XrmoptionNoArg, "PseudoColor"`7D,
X `7B"-truecolor", "*Visual", XrmoptionNoArg, "TrueColor"`7D,
X `7B"-directcolor", "*Visual", XrmoptionNoArg, "DirectColor"`7D,
X `7B"-page", ".page", XrmoptionSepArg, NULL`7D,
X `7B"-title", ".showTitle", XrmoptionNoArg, "True"`7D,
X `7B"-notitle", ".showTitle", XrmoptionNoArg, "False"`7D,
X `7B"-date", ".showDate", XrmoptionNoArg, "True"`7D,
X `7B"-nodate", ".showDate", XrmoptionNoArg, "False"`7D,
X `7B"-locator", ".showLocator", XrmoptionNoArg, "True"`7D,
X `7B"-nolocator", ".showLocator", XrmoptionNoArg, "False"`7D,
X `7B"-center", ".autoCenter", XrmoptionNoArg, "True"`7D,
X `7B"-nocenter", ".autoCenter", XrmoptionNoArg, "False"`7D,
X `7B"-labels", ".Labels", XrmoptionNoArg, "True"`7D,
X `7B"-nolabels", ".Labels", XrmoptionNoArg, "False"`7D,
X `7B"-install", ".installStdCmap", XrmoptionNoArg, "True"`7D,
X `7B"-noinstall", ".installStdCmap", XrmoptionNoArg, "False"`7D,
X `7B"-retain", ".retainStdCmap", XrmoptionNoArg, "True"`7D,
X `7B"-noretain", ".retainStdCmap", XrmoptionNoArg, "False"`7D,
X `7B"-private", ".privateCmap", XrmoptionNoArg, "True"`7D,
X `7B"-noprivate", ".privateCmap", XrmoptionNoArg, "False"`7D,
X `7B"-quiet", "*Ghostview.quiet", XrmoptionNoArg, "True"`7D,
X `7B"-noquiet", "*Ghostview.quiet", XrmoptionNoArg, "False"`7D,
X `7B"-preload", "*Ghostview.preload", XrmoptionSepArg, NULL`7D,
X `7B"-xdpi", "*Ghostview.xdpi", XrmoptionSepArg, NULL`7D,
X `7B"-ydpi", "*Ghostview.ydpi", XrmoptionSepArg, NULL`7D,
X `7B"-dpi", "*Ghostview.Resolution", XrmoptionSepArg, NULL`7D,
X `7B"-resolution", "*Ghostview.Resolution", XrmoptionSepArg, NULL`7D,
X `7B"-magstep", ".magstep", XrmoptionSepArg, NULL`7D,
X `7B"-portrait", ".orientation", XrmoptionNoArg, "Portrait"`7D,
X `7B"-landscape", ".orientation", XrmoptionNoArg, "Landscape"`7D,
X `7B"-upsidedown", ".orientation", XrmoptionNoArg, "Upside-down"`7D,
X `7B"-seascape", ".orientation", XrmoptionNoArg, "Seascape"`7D,
X `7B"-forceorientation", ".forceOrientation", XrmoptionNoArg, "True"`7D,
X `7B"-letter", ".pageMedia", XrmoptionNoArg, "Letter"`7D,
X `7B"-tabloid", ".pageMedia", XrmoptionNoArg, "Tabloid"`7D,
X `7B"-ledger", ".pageMedia", XrmoptionNoArg, "Ledger"`7D,
X `7B"-legal", ".pageMedia", XrmoptionNoArg, "Legal"`7D,
X `7B"-statement", ".pageMedia", XrmoptionNoArg, "Statement"`7D,
X `7B"-executive", ".pageMedia", XrmoptionNoArg, "Executive"`7D,
X `7B"-a3", ".pageMedia", XrmoptionNoArg, "A3"`7D,
X `7B"-a4", ".pageMedia", XrmoptionNoArg, "A4"`7D,
X `7B"-a5", ".pageMedia", XrmoptionNoArg, "A5"`7D,
X `7B"-b4", ".pageMedia", XrmoptionNoArg, "B4"`7D,
X `7B"-b5", ".pageMedia", XrmoptionNoArg, "B5"`7D,
X `7B"-folio", ".pageMedia", XrmoptionNoArg, "Folio"`7D,
X `7B"-quarto", ".pageMedia", XrmoptionNoArg, "Quarto"`7D,
X `7B"-10x14", ".pageMedia", XrmoptionNoArg, "10x14"`7D,
X `7B"-forcemedia", ".forcePageMedia", XrmoptionNoArg, "True"`7D,
X `7B"-force", ".Force", XrmoptionNoArg, "True"`7D,
X `7B"-swap", ".swapLandscape", XrmoptionNoArg, "True"`7D,
X `7B"-noswap", ".swapLandscape", XrmoptionNoArg, "False"`7D,
X `7B"-openwindows", ".openWindows", XrmoptionNoArg, "True"`7D,
X `7B"-noopenwindows", ".openWindows", XrmoptionNoArg, "False"`7D,
X `7B"-ncdwm", ".ncdwm", XrmoptionNoArg, "True"`7D,
X `7B"-noncdwm", ".ncdwm", XrmoptionNoArg, "False"`7D,
X`7D;
X
Xstatic XtActionsRec actions`5B`5D = `7B
X `7B"GhostviewCopyright",`09gv_copyright`7D,
X `7B"GhostviewQuit",`09`09gv_quit`7D,
X `7B"GhostviewOpen",`09`09gv_open`7D,
X `7B"GhostviewReopen",`09`09gv_reopen`7D,
X `7B"GhostviewSave",`09`09gv_save`7D,
X `7B"GhostviewPrintWhole",`09gv_print_whole`7D,
X `7B"GhostviewPrintMarked",`09gv_print_marked`7D,
X `7B"GhostviewPrevious",`09gv_prev`7D,
X `7B"GhostviewShow",`09`09gv_show`7D,
X `7B"GhostviewNext",`09`09gv_next`7D,
X `7B"GhostviewCenter",`09`09gv_center`7D,
X `7B"GhostviewMark",`09`09gv_mark`7D,
X `7B"GhostviewUnmark",`09`09gv_unmark`7D,
X `7B"GhostviewSetMagstep",`09gv_set_magstep`7D,
X `7B"GhostviewIncreaseMagstep",gv_increase_magstep`7D,
X `7B"GhostviewDecreaseMagstep",gv_decrease_magstep`7D,
X `7B"GhostviewSetOrientation",`09gv_set_orientation`7D,
X `7B"GhostviewSwapLandscape",`09gv_swap_landscape`7D,
X `7B"GhostviewSetPageMedia",`09gv_set_pagemedia`7D,
X `7B"GhostviewDefault",`09gv_default`7D,
X `7B"GhostviewForce",`09`09gv_force`7D,
X `7B"GhostviewDeleteWindow",`09gv_delete_window`7D,
X `7B"GhostviewDeleteZoom",`09gv_delete_zoom`7D,
X `7B"GhostviewDismiss",`09gv_dismiss`7D,
X `7B"GhostviewScrollUp",`09gv_scroll_up`7D,
X `7B"GhostviewScrollDown",`09gv_scroll_down`7D,
X `7B"GhostviewScrollLeft",`09gv_scroll_left`7D,
X `7B"GhostviewScrollRight",`09gv_scroll_right`7D,
X `7B"GhostviewEraseLocator",`09gv_erase_locator`7D,
X `7B"GhostviewCheckFile",`09gv_check_file`7D,
X`7D;
X
XString fallback_resources`5B`5D = `7B
X# include "app-defaults.h"
X NULL
X`7D;
X
X#define ROWS 22
X#define COLS 68
Xstatic String copyright = "\
XGhostview -- An X11 user interface for ghostscript.\n\
XCopyright (C) 1992 Timothy O. Theisen\n\
X\n\
XThis program is free software; you can redistribute it and/or modify\n\
Xit under the terms of the GNU General Public License as published by\n\
Xthe Free Software Foundation; either version 2 of the License, or\n\
X(at your option) any later version.\n\
X\n\
XThis program is distributed in the hope that it will be useful,\n\
Xbut WITHOUT ANY WARRANTY; without even the implied warranty of\n\
XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
XGNU General Public License for more details.\n\
X\n\
XYou should have received a copy of the GNU General Public License\n\
+-+-+-+-+-+-+-+- END OF PART 8 +-+-+-+-+-+-+-+-

0 new messages