diff -urNP ../siag-3.3.7/ChangeLog ./ChangeLog --- ../siag-3.3.7/ChangeLog Thu May 18 11:13:28 2000 +++ ./ChangeLog Thu May 25 17:39:03 2000 @@ -1,5 +1,20 @@ -000517 Added siagrun which was missing from the distribution. +000525 common/common.c/spawn: close the child's stderr to avoid + popping up its error messages. + xcommon/fonts.c: new function ps_set_color to set the color + of postscript output. Fixes a bug which sometimes caused Siag to + display coloured cells in black. + PW, Siag: explicitly set header/footer colour to black. + Siag: explicitly set border colour to black. + +000520 Let wv convert Word documents into HTML using iso8859-15 + character set, which is almost identical to Latin1. + +000518 Made Richtext update the Ruler immediately when the timeout + is set, in addition to after redrawing itself. + +000518 Added siagrun which was missing from the distribution. + Siag: grey grid lines. Released 3.3.7. 000516 Replaced ~/.siag/applications.scm with ~/.siag/applications.sh, diff -urNP ../siag-3.3.7/README ./README --- ../siag-3.3.7/README Thu Apr 6 14:52:54 2000 +++ ./README Fri May 19 08:09:52 2000 @@ -5,7 +5,7 @@ and the Postscript viewer Gvu. Questions can be sent to ulric@siag.nu or the mailing list -siag@edu.stockholm.se. +siag@siag.nu. ========================================================= diff -urNP ../siag-3.3.7/common/common.c ./common/common.c --- ../siag-3.3.7/common/common.c Mon May 15 00:28:22 2000 +++ ./common/common.c Fri May 26 07:56:53 2000 @@ -47,9 +47,6 @@ char *libexecdir; /* where plugins are; default /usr/local/libexec/siag */ char *datadir; /* where Scheme files are; default /usr/local/share/siag */ char *docdir; /* where online docs are; default /usr/local/doc/siag */ -#if 0 -char *siaghelp; /* what displays html; default $bindir/siaghelp */ -#endif char *siag_basedir; /* $HOME/.siag */ char *siag_tmpdir; /* $HOME/.siag/tmp */ char *version; /* version string */ @@ -135,9 +132,6 @@ } else { docdir = DOCDIR; } -#if 0 - siaghelp = "siaghelp"; -#endif if (fmt) { sprintf(p, fmt, VERSION_NO); } else { @@ -516,6 +510,9 @@ pid = fork(); if (!pid) { /* this is the child */ + + close(2); /* don't display the child's messages */ + execvp(argv[0], argv); exit(0); } diff -urNP ../siag-3.3.7/common/common.h ./common/common.h --- ../siag-3.3.7/common/common.h Mon May 15 00:24:47 2000 +++ ./common/common.h Fri May 26 07:57:00 2000 @@ -26,9 +26,6 @@ extern char *libexecdir; extern char *datadir; extern char *docdir; -#if 0 -extern char *siaghelp; -#endif extern char *siag_basedir; extern char *siag_tmpdir; extern char *version; diff -urNP ../siag-3.3.7/common/fonts.h ./common/fonts.h --- ../siag-3.3.7/common/fonts.h Thu Apr 6 15:24:32 2000 +++ ./common/fonts.h Thu May 25 15:38:14 2000 @@ -150,6 +150,7 @@ extern char **color_list(int *); extern void ps_makefonts(FILE *); +extern void ps_set_color(FILE *, int, int, int); extern void ps_set_font(FILE *, int); extern int scale_set(int); diff -urNP ../siag-3.3.7/configure ./configure --- ../siag-3.3.7/configure Thu May 18 11:23:28 2000 +++ ./configure Tue May 23 11:14:33 2000 @@ -706,7 +706,7 @@ PACKAGE=siag -VERSION=3.3.7 +VERSION=3.3.8 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } diff -urNP ../siag-3.3.7/configure.in ./configure.in --- ../siag-3.3.7/configure.in Wed May 17 10:59:11 2000 +++ ./configure.in Fri May 19 08:01:55 2000 @@ -1,7 +1,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(README) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(siag, 3.3.7) +AM_INIT_AUTOMAKE(siag, 3.3.8) dnl Set of available languages dnl ALL_LINGUAS="" diff -urNP ../siag-3.3.7/egon/docs/intro.html ./egon/docs/intro.html --- ../siag-3.3.7/egon/docs/intro.html Thu Jan 27 13:56:00 2000 +++ ./egon/docs/intro.html Fri May 19 08:15:37 2000 @@ -12,28 +12,20 @@ me, Ulric Eriksson, but is free for use by anybody without paying me any money. Read the file COPYING for -more information. The latest version is 3.2.0. +more information. The latest version is 3.3.8.

Egon Animator is part of the Siag Office package, together with SIAG and PW.

Siag home page

-

-I can be reached at ulric@siag.nu. My Web page is -http://www.edu.stockholm.se/~ulric/. +I can be reached at ulric@siag.nu.
-
Ulric Eriksson - January 2000 - ulric@siag.nu
+
Ulric Eriksson - May 2000 - ulric@siag.nu
diff -urNP ../siag-3.3.7/egon/main.c ./egon/main.c --- ../siag-3.3.7/egon/main.c Mon May 15 00:25:14 2000 +++ ./egon/main.c Fri May 26 07:57:45 2000 @@ -126,9 +126,6 @@ setvar(cintern("libexecdir"), strcons(-1, libexecdir), NIL); setvar(cintern("datadir"), strcons(-1, datadir), NIL); setvar(cintern("docdir"), strcons(-1, docdir), NIL); -#if 0 - setvar(cintern("siaghelp"), strcons(-1, siaghelp), NIL); -#endif /* load runtime library */ sprintf(b, "(load \"%s/egon/egon.scm\")", datadir); diff -urNP ../siag-3.3.7/plugins/clipart.c ./plugins/clipart.c --- ../siag-3.3.7/plugins/clipart.c Thu Apr 6 14:53:17 2000 +++ ./plugins/clipart.c Wed May 24 05:36:05 2000 @@ -92,12 +92,6 @@ "Clipart*topbox.yLayout: 100%", "Clipart*input: True", "Clipart*allowShellResize: True", -"Clipart*SimpleMenu.translations: #replace \\n\ - : highlight() \\n\ - : unhighlight() \\n\ - : highlight() \\n\ - : MenuPopdown() GhostviewForce() notify() unhighlight() \\n\ - : MenuPopdown() GhostviewDefault() notify() unhighlight()", "Clipart*Ghostview.background: white", "Clipart.translations: #replace \\n\ : GhostviewCheckFile() \\n\ @@ -114,9 +108,8 @@ : notify(120 120 300 300) \\n\ : notify(90 90 400 400)", "Clipart*topbox.translations: #replace \\n\ - Q: GhostviewQuit() \\n\ - R: GhostviewReopen() \\n\ - period: GhostviewShow() \\n\ + Q: GhostviewQuit() \\n" + "period: GhostviewShow() \\n\ CtrlL: GhostviewShow()", NULL }; @@ -168,8 +161,6 @@ static String filename; static String oldfilename; static int current_page; -static int current_magstep; -static XtPageOrientation current_orientation; static int default_pagemedia; static int current_pagemedia; static Boolean force_document_media; @@ -179,10 +170,8 @@ static int current_urx; static int current_ury; static int base_papersize; -static Boolean info_up; static int toc_length; static int toc_entry_length; -static int info_length; static time_t mtime; static struct document *doc; static struct document *olddoc; @@ -201,30 +190,19 @@ static Widget toplevel; static Widget topbox; static Widget page; -/* Popup widgets */ -static Widget infopopup; -static Widget infoform; -static Widget infotext; -static Widget dialogpopup; static void add_actions(XtAppContext); /* Callbacks */ static void quit_ghostview(Widget, XtPointer, XtPointer); -static void reopen_file(Widget, XtPointer, XtPointer); static void this_page(Widget, XtPointer, XtPointer); static void message(Widget, XtPointer, XtPointer); -static void output(Widget, XtPointer, XtPointer); static void destroy_ghost(Widget, XtPointer, XtPointer); /* Misc */ static void show_page(int); static Boolean setup_ghostview(void); -static void magnify(float *, int); -static Boolean set_new_magstep(void); -static Boolean set_new_orientation(int); static Boolean set_new_pagemedia(int); -static void build_pagemedia_menu(void); static void new_file(int); /* Start application folding up by Destroying the top level widget. */ @@ -235,21 +213,6 @@ XtDestroyWidget(toplevel); } -/* Explicitly reopen the file. */ -static void reopen_file(Widget w, XtPointer client_data, XtPointer call_data) -{ - struct stat sbuf; - int number = current_page; - - fclose(psfile); - psfile = fopen(filename, "r"); - mtime = sbuf.st_mtime; - if (oldfilename) XtFree(oldfilename); - oldfilename = XtNewString(filename); - new_file(number); - show_page(number); -} - /* Get the selection, if no selection, get the insertion point. */ /* Show this page. */ static void this_page(Widget w, XtPointer client_data, XtPointer call_data) @@ -269,13 +232,11 @@ if ((Widget)client_data == page) { error = "Error: PostScript interpreter failed in main window.\n\n"; } - output(w, NULL, error); } else if (!strcmp((char *) call_data, "BadAlloc")) { if ((Widget)client_data == page) { error = "Warning: Could not allocate backing pixmap in main window.\n\n"; } - output(w, NULL, error); } else if (!strcmp((char *) call_data, "Refresh")) { GhostviewSendPS(w, psfile, doc->beginprolog, doc->lenprolog, False); @@ -290,32 +251,6 @@ } } -/* Take output from ghostscript and display it in the infotext popup window */ -static void output(Widget w, XtPointer client_data, XtPointer call_data) -{ - Arg args[2]; - XawTextBlock message_block; - - message_block.firstPos = 0; - message_block.length = strlen(call_data); - message_block.ptr = call_data; - message_block.format = FMT8BIT; - - XawTextDisableRedisplay(infotext); - - XtSetArg(args[0], XtNeditType, XawtextAppend); - XtSetValues(infotext, args, ONE); - XawTextReplace(infotext, info_length, info_length, &message_block); - info_length = info_length + message_block.length; - - XtSetArg(args[0], XtNeditType, XawtextRead); - XtSetArg(args[1], XtNinsertPosition, info_length); - XtSetValues(infotext, args, TWO); - XawTextEnableRedisplay(infotext); - if (!info_up) XtPopup(infopopup, XtGrabNone); - info_up = True; -} - /* destroy callback for Ghostview widgets. */ /* The disable interpreter call ensures that ghostscript is killed. */ /* One the count goes to 0, we are sure that all forked processes have */ @@ -339,13 +274,6 @@ if (!app_res.plugin) quit_ghostview(w, NULL, NULL); } -/* Popup the open file dialog box. */ -static void gv_reopen(Widget w, XEvent *event, - String *params, Cardinal *num_params) -{ - reopen_file(w, NULL, NULL); -} - /* Call the this_page callback */ static void gv_show(Widget w, XEvent *event, String *params, Cardinal *num_params) @@ -362,14 +290,6 @@ XtDestroyWidget(w); } -/* dismiss a popup window */ -static void gv_dismiss(Widget w, XEvent *event, - String *params, Cardinal *num_params) -{ - XtPopdown(w); - if (w == infopopup) info_up = False; -} - /* Check to see if file was updated */ static void gv_check_file(Widget w, XEvent *event, String *params, Cardinal *num_params) @@ -385,10 +305,8 @@ static XtActionsRec actions[] = { {"GhostviewQuit", gv_quit}, - {"GhostviewReopen", gv_reopen}, {"GhostviewShow", gv_show}, {"GhostviewDeleteWindow", gv_delete_window}, - {"GhostviewDismiss", gv_dismiss}, {"GhostviewCheckFile", gv_check_file}, }; @@ -614,10 +532,6 @@ fflush(stdout); } - -/* Popup children */ -static Widget infodismiss; - int main(int argc, char **argv) { struct stat sbuf; @@ -627,9 +541,6 @@ Cardinal num_args; int i; String s1; - XFontStruct *font; - Dimension bottomMargin, leftMargin, rightMargin, topMargin; - Dimension width, height; common_init("Clipart %s. No Warranty."); @@ -677,56 +588,6 @@ resources, XtNumber(resources), NULL, ZERO); if ((s1 = getenv(app_res.printer_variable))) app_res.default_printer = s1; - /* Instantiate Popup children */ - infopopup = XtCreatePopupShell("information", topLevelShellWidgetClass, - toplevel, NULL, ZERO); - - infoform = XtCreateManagedWidget("form", formWidgetClass, - infopopup, NULL, ZERO); - - num_args = 0; - XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++; - XtSetArg(args[num_args], XtNbottom, XtChainBottom); num_args++; - XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++; - XtSetArg(args[num_args], XtNright, XtChainRight); num_args++; - XtSetArg(args[num_args], XtNscrollHorizontal, XawtextScrollWhenNeeded); - num_args++; - XtSetArg(args[num_args], XtNscrollVertical, XawtextScrollWhenNeeded); - num_args++; - XtSetArg(args[num_args], XtNdisplayCaret, False); num_args++; - infotext = XtCreateManagedWidget("text", asciiTextWidgetClass, - infoform, args, num_args); - - num_args = 0; - XtSetArg(args[num_args], XtNfromVert, infotext); num_args++; - XtSetArg(args[num_args], XtNtop, XtChainBottom); num_args++; - XtSetArg(args[num_args], XtNbottom, XtChainBottom); num_args++; - XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++; - XtSetArg(args[num_args], XtNright, XtChainRight); num_args++; - infodismiss = XtCreateManagedWidget("dismiss", commandWidgetClass, - infoform, args, num_args); - num_args = 0; - XtSetArg(args[num_args], XtNfont, &font); num_args++; - XtSetArg(args[num_args], XtNbottomMargin, &bottomMargin);num_args++; - XtSetArg(args[num_args], XtNleftMargin, &leftMargin);num_args++; - XtSetArg(args[num_args], XtNrightMargin, &rightMargin);num_args++; - XtSetArg(args[num_args], XtNtopMargin, &topMargin); num_args++; - XtGetValues(infotext, args, num_args); - - width = font->max_bounds.width * 80 + leftMargin + rightMargin; - height = (font->ascent + font->descent) * ROWS + topMargin + bottomMargin; - - XtSetArg(args[0], XtNwidth, width); - XtSetArg(args[1], XtNheight, height); - XtSetValues(infotext, args, TWO); - XtSetValues(infodismiss, args, ONE); - XtRealizeWidget(infopopup); - XSetWMProtocols(dpy, XtWindow(infopopup), &wm_delete_window, 1); - - dialogpopup = XtCreatePopupShell("popup", transientShellWidgetClass, - toplevel, NULL, ZERO); - - /* Instantiate Widgets */ topbox = XtVaCreateManagedWidget("topbox", @@ -739,7 +600,6 @@ num_ghosts++; XtAddCallback(page, XtNdestroyCallback, destroy_ghost, (XtPointer)page); XtAddCallback(page, XtNmessageCallback, message, (XtPointer)page); - XtAddCallback(page, XtNoutputCallback, output, (XtPointer)0); num_args = 0; XtSetArg(args[num_args], XtNxdpi, &default_xdpi); num_args++; XtSetArg(args[num_args], XtNydpi, &default_ydpi); num_args++; @@ -757,15 +617,11 @@ app_res.magstep = app_res.minimum_magstep; if (app_res.magstep > app_res.maximum_magstep) app_res.magstep = app_res.maximum_magstep; - set_new_magstep(); - set_new_orientation(i); set_new_pagemedia(i); XtSetMappedWhenManaged(toplevel, False); XtRealizeWidget(toplevel); - XtSetArg(args[0], XtNtransientFor, toplevel); - XtSetValues(dialogpopup, args, ONE); XSetWMProtocols(dpy, XtWindow(toplevel), &wm_delete_window, 1); /* This sets the sizes on widget that were created during the realize. */ @@ -787,24 +643,6 @@ return 1; } - -/* Translate orientations defined by the enum in "ps.h" to - * XtPageOrientations defined in "Ghostview.h". - */ -static XtPageOrientation xorient(int psorient) -{ - switch (psorient) { - case PORTRAIT: return XtPageOrientationPortrait; - case LANDSCAPE: - if (app_res.swap_landscape) { - return XtPageOrientationSeascape; - } else { - return XtPageOrientationLandscape; - } - } - return XtPageOrientationPortrait; -} - static void reset_size_hints(void) { Arg args[4]; @@ -816,14 +654,6 @@ XtSetValues(toplevel, args, FOUR); } -static Boolean horiz_scroll_saved = False; -static Boolean vert_scroll_saved = False; - -static void reset_scroll_bars(void) -{ - if (horiz_scroll_saved || vert_scroll_saved) return; -} - /* Start rendering a new page */ static void show_page(int number) { @@ -849,7 +679,7 @@ /* Coerce page number to fall in range */ number = 0; - if (set_new_orientation(number) || set_new_pagemedia(number)) + if (/*set_new_orientation(number) ||*/ set_new_pagemedia(number)) ; if (1) { current_page = number; @@ -902,7 +732,6 @@ Arg args[20]; Cardinal num_args; int oldtoc_entry_length = 0; - XawTextBlock message_block; /* Reset to a known state. */ psfree(olddoc); @@ -913,8 +742,6 @@ /* Scan document and start setting things up */ if (psfile) doc = psscan(psfile); - build_pagemedia_menu(); - /* Reset ghostscript and output messages popup */ if (!doc || !olddoc || strcmp(oldfilename, filename) || @@ -924,16 +751,6 @@ olddoc->endsetup != doc->endsetup) { GhostviewDisableInterpreter(page); - XtPopdown(infopopup); - info_up = False; - XtSetArg(args[0], XtNeditType, XawtextEdit); - XtSetArg(args[1], XtNinsertPosition, 0); - XtSetValues(infotext, args, TWO); - message_block.length = 0; - XawTextReplace(infotext, 0, info_length, &message_block); - info_length = 0; - XtSetArg(args[0], XtNeditType, XawtextRead); - XtSetValues(infotext, args, ONE); } /* Build table of contents */ @@ -1012,18 +829,6 @@ } } -/* Compute new dpi from magstep */ -static void magnify(dpi, magstep) - float *dpi; - int magstep; -{ - if (magstep < 0) { - while (magstep++) *dpi /= 1.2; - } else { - while (magstep--) *dpi *= 1.2; - } -} - /* Attempt to open file, return error message string on failure */ String open_file(String name) { @@ -1084,74 +889,6 @@ } } -/* Set new magstep */ -Boolean set_new_magstep(void) -{ - int new_magstep; - Boolean changed = False; - Arg args[20]; - Cardinal num_args; - float xdpi, ydpi; - - new_magstep = app_res.magstep; - /* If magstep changed, stop interpreter and setup for new dpi. */ - if (new_magstep != current_magstep) { - GhostviewDisableInterpreter(page); - reset_size_hints(); - reset_scroll_bars(); - changed = True; - xdpi = default_xdpi; - ydpi = default_ydpi; - magnify(&xdpi, new_magstep); - magnify(&ydpi, new_magstep); - num_args = 0; - XtSetFloatArg(args[num_args], XtNxdpi, xdpi); num_args++; - XtSetFloatArg(args[num_args], XtNydpi, ydpi); num_args++; - XtSetValues(page, args, num_args); - current_magstep = new_magstep; - } - return changed; -} - -/* Set new orientation */ -Boolean set_new_orientation(int number) -{ - Boolean changed = False; - Boolean from_doc = False; - XtPageOrientation new_orientation; - - if (app_res.force_orientation) { - new_orientation = app_res.orientation; - } else { - if (doc) { - if (doc->default_page_orientation != NONE) { - new_orientation = xorient(doc->default_page_orientation); - from_doc = True; - } else if (doc->orientation != NONE) { - new_orientation = xorient(doc->orientation); - from_doc = True; - } else { - new_orientation = app_res.orientation; - } - } else { - new_orientation = app_res.orientation; - } - } - - /* If orientation changed, - * stop interpreter and setup for new orientation. */ - if (new_orientation != current_orientation) { - GhostviewDisableInterpreter(page); - reset_size_hints(); - reset_scroll_bars(); - changed = True; - current_orientation = new_orientation; - } - - /* mark forced orientation with tie fighter. ("Use the force, Luke") */ - return changed; -} - /* Set new pagemedia */ Boolean set_new_pagemedia(int number) { @@ -1212,7 +949,6 @@ (new_urx != current_urx) || (new_ury != current_ury)) { GhostviewDisableInterpreter(page); reset_size_hints(); - reset_scroll_bars(); changed = True; current_llx = new_llx; current_lly = new_lly; @@ -1228,20 +964,11 @@ return changed; } -static void build_pagemedia_menu(void) -{ - force_document_media = False; - - base_papersize = 0; - if (doc) base_papersize = doc->nummedia; -} - static void new_file(int number) { Boolean layout_changed = False; if (setup_ghostview()) layout_changed = True; - if (set_new_orientation(number)) layout_changed = True; if (set_new_pagemedia(number)) layout_changed = True; } diff -urNP ../siag-3.3.7/plugins/image.c ./plugins/image.c --- ../siag-3.3.7/plugins/image.c Thu Apr 6 14:53:18 2000 +++ ./plugins/image.c Fri May 26 07:57:55 2000 @@ -212,9 +212,6 @@ /* print postscript postblurb */ printf(" %%\n"); printf(" grestore\n"); -#if 0 - printf(" %%%%Trailer\n"); -#endif printf("END\n"); for (i = 0; i < ncolors; i++) cfree(cm[i].chars); diff -urNP ../siag-3.3.7/pw/docs/intro.html ./pw/docs/intro.html --- ../siag-3.3.7/pw/docs/intro.html Thu Jan 27 13:55:14 2000 +++ ./pw/docs/intro.html Fri May 19 08:16:24 2000 @@ -12,7 +12,7 @@ me, Ulric Eriksson, but is free for use by anybody without paying me any money. Read the file COPYING for -more information. The latest version is 3.2.0. +more information. The latest version is 3.3.8.

Pathetic Writer is part of the Siag Office package, together with SIAG and Egon. @@ -20,15 +20,14 @@ Siag home page

-I can be reached at ulric@siag.nu. My Web page is -http://www.edu.stockholm.se/~ulric/. +I can be reached at ulric@siag.nu.
-
Ulric Eriksson - January 2000 - ulric@siag.nu
+
Ulric Eriksson - May 2000 - ulric@siag.nu
diff -urNP ../siag-3.3.7/pw/fileio_ps.c ./pw/fileio_ps.c --- ../siag-3.3.7/pw/fileio_ps.c Sun May 7 02:13:11 2000 +++ ./pw/fileio_ps.c Fri May 26 07:58:13 2000 @@ -127,6 +127,7 @@ text_height = ps_font_height(0); text_width = ps_text_width(0, b); fprintf(fp, "newpath\n"); + ps_set_color(fp, 0, 0, 0); fprintf(fp, "%d %d moveto\n", x - text_width/2, y - text_height/2); /* finally print the string */ @@ -257,11 +258,7 @@ fp = fopen(fn, "w"); -#if 0 - fprintf(fp, "%%!PS-Adobe-3.0 EPSF-3.0\n"); -#else fprintf(fp, "%%!PS-Adobe-2.0\n"); -#endif fprintf(fp, "%%%%Creator: %s\n", version); fprintf(fp, "%%%%Title: %s\n", buf->name); t = time(NULL); diff -urNP ../siag-3.3.7/pw/main.c ./pw/main.c --- ../siag-3.3.7/pw/main.c Mon May 15 00:25:50 2000 +++ ./pw/main.c Fri May 26 07:58:04 2000 @@ -112,9 +112,6 @@ setvar(cintern("libexecdir"), strcons(-1, libexecdir), NIL); setvar(cintern("datadir"), strcons(-1, datadir), NIL); setvar(cintern("docdir"), strcons(-1, docdir), NIL); -#if 0 - setvar(cintern("siaghelp"), strcons(-1, siaghelp), NIL); -#endif /* load runtime library */ sprintf(b, "(load \"%s/pw/pw.scm\")", datadir); diff -urNP ../siag-3.3.7/pw/pw.scm ./pw/pw.scm --- ../siag-3.3.7/pw/pw.scm Fri May 5 13:06:27 2000 +++ ./pw/pw.scm Sat May 20 14:47:27 2000 @@ -537,7 +537,7 @@ ; If wvHtml is available, use it for all Word versions (if (executable-file "wvHtml") (register-converter "MS Word (*.doc)" - "*.html" "wvHtml %s > %s" + "*.html" "wvHtml -c iso-8859-15 %s > %s" nil nil) ; otherwise look for catdoc and mswordview (begin diff -urNP ../siag-3.3.7/siag/docs/intro.html ./siag/docs/intro.html --- ../siag-3.3.7/siag/docs/intro.html Thu Jan 27 13:55:48 2000 +++ ./siag/docs/intro.html Fri May 19 08:17:13 2000 @@ -15,25 +15,16 @@ me, Ulric Eriksson, but is free for use by anybody without paying me any money. Read the file COPYING for -more information. The latest version is 3.2.0. -

-Siag is distributed in parts, of which only the first is absolutely -necessary. The rest can be left out at the cost of reduced functionality. +more information. The latest version is 3.3.8.

Siag home page

-I can be reached at ulric@siag.nu. My Web page is -http://www.edu.stockholm.se/~ulric/. +I can be reached at ulric@siag.nu.
Ulric Eriksson - January 2000 - ulric@siag.nu
diff -urNP ../siag-3.3.7/siag/fileio_ps.c ./siag/fileio_ps.c --- ../siag-3.3.7/siag/fileio_ps.c Tue May 2 23:09:05 2000 +++ ./siag/fileio_ps.c Thu May 25 22:43:14 2000 @@ -98,6 +98,7 @@ int text_height = ps_font_height(ret_font(buf, s, row, col)); if (f & BORDER_MASK) { + ps_set_color(fp, 0, 0, 0); fprintf(fp, "newpath\n"); if (f & BORDER_BOTTOM) { fprintf(fp, "%d %d moveto\n", x_base, y_base); @@ -177,8 +178,6 @@ } fprintf(fp, ")\n"); fprintf(fp, "show\n"); - fprintf(fp, "0 0 0 setrgbcolor\n"); - } } @@ -272,6 +271,7 @@ text_height = ps_font_height(0); text_width = ps_text_width(0, b); fprintf(fp, "newpath\n"); + ps_set_color(fp, 0, 0, 0); fprintf(fp, "%d %d moveto\n", x - text_width/2, y - text_height/2); /* finally print the string */ diff -urNP ../siag-3.3.7/siag/main.c ./siag/main.c --- ../siag-3.3.7/siag/main.c Mon May 15 00:26:01 2000 +++ ./siag/main.c Fri May 26 07:58:18 2000 @@ -134,9 +134,6 @@ setvar(cintern("libexecdir"), strcons(-1, libexecdir), NIL); setvar(cintern("datadir"), strcons(-1, datadir), NIL); setvar(cintern("docdir"), strcons(-1, docdir), NIL); -#if 0 - setvar(cintern("siaghelp"), strcons(-1, siaghelp), NIL); -#endif /* now load runtime library */ sprintf(b, "(load \"%s/siag/siag.scm\")", datadir); diff -urNP ../siag-3.3.7/siag/menu.scm ./siag/menu.scm --- ../siag-3.3.7/siag/menu.scm Fri May 5 12:38:34 2000 +++ ./siag/menu.scm Fri May 19 21:11:43 2000 @@ -77,6 +77,15 @@ (add-submenu "Edit" "Function G-L") (add-submenu "Edit" "Function M-S") (add-submenu "Edit" "Function T-Z") +;(define (function-menu grp fname) +; (add-submenu-entry "Edit" +; (string-append "Function " grp) +; (string-append fname "()") +; (string-append "(interpreter-test 'C " +; "\"" +; fname +; "(\"" +; ")"))) (define (function-menu grp fname) (add-submenu-entry "Edit" (string-append "Function " grp) diff -urNP ../siag-3.3.7/siod/Makefile.am ./siod/Makefile.am --- ../siag-3.3.7/siod/Makefile.am Wed Mar 17 14:07:53 1999 +++ ./siod/Makefile.am Wed May 24 18:55:19 2000 @@ -19,5 +19,5 @@ EXTRA_DIST = $(siod_DATA) siod: - $(CC) -o siod siod.c libsiod.a -lm + $(CC) -o siod siod.c libsiod.a -lm -lcrypt diff -urNP ../siag-3.3.7/siod/Makefile.in ./siod/Makefile.in --- ../siag-3.3.7/siod/Makefile.in Thu May 18 12:53:49 2000 +++ ./siod/Makefile.in Fri May 26 08:26:45 2000 @@ -403,7 +403,7 @@ siod: - $(CC) -o siod siod.c libsiod.a -lm + $(CC) -o siod siod.c libsiod.a -lm -lcrypt # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -urNP ../siag-3.3.7/tsiag/fonts.c ./tsiag/fonts.c --- ../siag-3.3.7/tsiag/fonts.c Fri May 5 11:38:02 2000 +++ ./tsiag/fonts.c Thu May 25 22:40:20 2000 @@ -651,6 +651,11 @@ } } +void ps_set_color(FILE *fp, int red, int green, int blue) +{ + ; +} + /* --- Set the font */ diff -urNP ../siag-3.3.7/xcommon/Richtext.c ./xcommon/Richtext.c --- ../siag-3.3.7/xcommon/Richtext.c Tue May 9 11:06:06 2000 +++ ./xcommon/Richtext.c Thu May 18 14:25:54 2000 @@ -998,6 +998,22 @@ return scribble; } +static void update_ruler(Widget w) +{ + RichtextWidget rtw = (RichtextWidget)w; + + if (rtw->richtext.ruler) { + XtVaSetValues(rtw->richtext.ruler, + XtNrulerTopCol, rtw->richtext.top_col, + XtNleftMargin, rtw->richtext.left_margin, + XtNrightMargin, rtw->richtext.right_margin, + XtNpaperWidth, rtw->richtext.paper_width, + XtNtabDistance, rtw->richtext.tab_distance, + (char *)0); + RulerSetZoom(rtw->richtext.ruler, rtw->richtext.zoom); + } +} + static void do_redisplay(XtPointer client_data, XtIntervalId *id) { Widget w = (Widget)client_data; @@ -1025,16 +1041,7 @@ /* clear the timeout */ rtw->richtext.timeout = None; - if (rtw->richtext.ruler) { - XtVaSetValues(rtw->richtext.ruler, - XtNrulerTopCol, rtw->richtext.top_col, - XtNleftMargin, rtw->richtext.left_margin, - XtNrightMargin, rtw->richtext.right_margin, - XtNpaperWidth, rtw->richtext.paper_width, - XtNtabDistance, rtw->richtext.tab_distance, - (char *)0); - RulerSetZoom(rtw->richtext.ruler, rtw->richtext.zoom); - } + update_ruler(w); } static void Redisplay(Widget w, XEvent *event, Region r) @@ -1045,6 +1052,7 @@ tw->richtext.timeout = XtAppAddTimeOut( XtWidgetToApplicationContext(w), tw->richtext.delay, do_redisplay, (XtPointer)w); + update_ruler(w); } else { do_redisplay((XtPointer)w, NULL); } diff -urNP ../siag-3.3.7/xcommon/Ruler.c ./xcommon/Ruler.c --- ../siag-3.3.7/xcommon/Ruler.c Fri May 12 09:25:31 2000 +++ ./xcommon/Ruler.c Fri May 19 08:22:43 2000 @@ -227,7 +227,7 @@ int nw; sprintf(num, "%d", in); nw = XTextWidth(aw->ruler.font, num, strlen(num)); - XDrawString(dpy, wi, gc, zoom*i+o-nw/2, h-9, num, strlen(num)); + XDrawString(dpy, wi, gc, zoom*i-nw/2, h-9, num, strlen(num)); } XDrawLine(dpy, wi, gc, zoom*tc, 0, zoom*tc, h-1); XDrawLine(dpy, wi, gc, zoom*(pw+tc-1), 0, zoom*(pw+tc-1), h-1); diff -urNP ../siag-3.3.7/xcommon/fonts.c ./xcommon/fonts.c --- ../siag-3.3.7/xcommon/fonts.c Thu May 18 12:53:35 2000 +++ ./xcommon/fonts.c Thu May 25 17:32:23 2000 @@ -781,6 +781,25 @@ } } +static siag_color lastcolor; + +void ps_set_color(FILE *fp, int red, int green, int blue) +{ + if (red == lastcolor.red + && green == lastcolor.green + && blue == lastcolor.blue) return; + lastcolor.red = red; + lastcolor.green = green; + lastcolor.blue = blue; + + if (red == -1) return; /* starter mark */ + + fprintf(fp, "%f %f %f setrgbcolor\n", + (float)red / 65535.0, + (float)green / 65535.0, + (float)blue / 65535.0); +} + /* --- Set the font */ @@ -788,20 +807,23 @@ void ps_set_font(FILE *fp, int newfont) { int name; + siag_color newcolor; + + /* always set color */ + if (newfont == -1) { + ps_set_color(fp, 0, 0, 0); + } else { + newcolor = color_table[format_table[newfont].fg]; + ps_set_color(fp, newcolor.red, newcolor.green, newcolor.blue); + } - if (newfont == lastfont) + if (newfont == lastfont) { return; + } lastfont = newfont; - if (newfont == -1) return; /* starter mark */ - - /* set color */ - name = color_table[format_table[newfont].fg].red; - fprintf(fp, "%f ", (float) name / 65535.0); - name = color_table[format_table[newfont].fg].green; - fprintf(fp, "%f ", (float) name / 65535.0); - name = color_table[format_table[newfont].fg].blue; - fprintf(fp, "%f ", (float) name / 65535.0); - fprintf(fp, "setrgbcolor\n"); + if (newfont == -1) { + return; /* starter mark */ + } name = font_table[newfont].name; fprintf(fp, "/%s%s findfont\n", diff -urNP ../siag-3.3.7/xed/special.c ./xed/special.c --- ../siag-3.3.7/xed/special.c Mon May 15 00:19:56 2000 +++ ./xed/special.c Fri May 26 07:59:31 2000 @@ -501,11 +501,7 @@ sprintf(b, "file:%s/xedplus/xedplus.html", docdir); if (!fork()) { -#if 0 - execlp(siaghelp, "Siaghelp", b, (char *) 0); -#else execlp("siagrun", "siagrun", "help", b, (char *)0); -#endif _exit(0); } } diff -urNP ../siag-3.3.7/xpw/Pw.ad ./xpw/Pw.ad --- ../siag-3.3.7/xpw/Pw.ad Fri May 12 09:06:03 2000 +++ ./xpw/Pw.ad Fri May 19 08:20:44 2000 @@ -78,7 +78,7 @@ Pw*ruler.gridWidth: 4 Pw*ruler.borderWidth: 0 -Pw*ruler.font: -*-helvetica-medium-r-*-8-* +Pw*ruler.font: -*-helvetica-medium-r-*-10-* Pw*grid.gridy: 1 Pw*grid.gridWidth: 4 diff -urNP ../siag-3.3.7/xpw/app-defaults.h ./xpw/app-defaults.h --- ../siag-3.3.7/xpw/app-defaults.h Fri May 12 09:06:04 2000 +++ ./xpw/app-defaults.h Fri May 19 08:20:51 2000 @@ -55,7 +55,7 @@ "Pw*viewport.yLayout: 25 100% 15", "Pw*ruler.gridWidth: 4", "Pw*ruler.borderWidth: 0", -"Pw*ruler.font: -*-helvetica-medium-r-*-8-*", +"Pw*ruler.font: -*-helvetica-medium-r-*-10-*", "Pw*grid.gridy: 1", "Pw*grid.gridWidth: 4", "Pw*grid.background: white", diff -urNP ../siag-3.3.7/xpw/window.c ./xpw/window.c --- ../siag-3.3.7/xpw/window.c Mon May 15 00:27:07 2000 +++ ./xpw/window.c Thu May 25 22:44:19 2000 @@ -177,22 +177,12 @@ } XtVaSetValues(w->ui->tab, XtNtabbingSelected, tab, (char *)0); XtVaSetValues(topLevel, XtNtitle, b, (char *)0); -#if 0 - XtVaSetValues(w->ui->ruler, - XtNleftMargin, w->buf->left_margin, - XtNrightMargin, w->buf->right_margin, - XtNpaperWidth, w->buf->paper_width, - XtNtabDistance, w->buf->tab_distance, - (char *)0); -#endif XtVaSetValues(w->ui->grid, XtNrichtextData, w, -#if 1 XtNleftMargin, w->buf->left_margin, XtNrightMargin, w->buf->right_margin, XtNpaperWidth, w->buf->paper_width, XtNtabDistance, w->buf->tab_distance, -#endif (char *)0); XtSetKeyboardFocus(topLevel, w->ui->grid); /* plugins */ @@ -384,9 +374,6 @@ int s = w->sht; sheet *st = w->buf->sht; RichtextSetZoom(w->ui->grid, zoom); -#if 0 - RulerSetZoom(w->ui->ruler, zoom); -#endif XtVaSetValues(w->ui->grid, XtNrichtextData, w, XtNrichtextTopRow, st[s].top.row, @@ -1820,11 +1807,6 @@ } draw_scrollbars(display, w); draw_buffer(display, w); -#if 0 - XtVaSetValues(w->ui->ruler, - XtNtabDistance, w->buf->tab_distance, - (char *)0); -#endif /* check for nondisplayed plugins */ b = w->buf; s = w->sht; diff -urNP ../siag-3.3.7/xpw/xpw.c ./xpw/xpw.c --- ../siag-3.3.7/xpw/xpw.c Tue May 16 11:35:10 2000 +++ ./xpw/xpw.c Sat May 20 15:09:01 2000 @@ -594,7 +594,7 @@ if (data == SPELL_HELP) { char b[256]; - sprintf(b, "file://localhost%s/pw/spell.html", docdir); + sprintf(b, "file:%s/pw/spell.html", docdir); if (!fork()) { execlp("siagrun", "siagrun", "help", b, (char *)0); exit(0); diff -urNP ../siag-3.3.7/xsiag/window.c ./xsiag/window.c --- ../siag-3.3.7/xsiag/window.c Mon May 15 00:27:47 2000 +++ ./xsiag/window.c Fri May 19 08:11:01 2000 @@ -1,6 +1,6 @@ /* Siag, Scheme In A Grid - Copyright (C) 1996-2000 Ulric Eriksson + Copyright (C) 1996-2000 Ulric Eriksson This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by