[comp.sources.misc] v19i002: jgraph - A filter for plotting postscript graphs, Patch04

jsp@Princeton.EDU (James Plank) (04/28/91)

Submitted-by: James Plank <jsp@Princeton.EDU>
Posting-number: Volume 19, Issue 2
Archive-name: jgraph/patch04
Patch-To: jgraph: Volume 16, Issue 20

Patch #4 deals with a whole bunch of bugs:

 - It makes patch #3 dealable from VMS.
 - It fixes bugs in token.c where EOF was unfindable on SGI machines
 - It fixes bugs in show.c where 'newstrings' were causing core dumps
 - It fixes bugs in jgraph.c where labels were getting bogus default
   values.

Thanks to hdavids@mswe1.dnet.ms.philips.nl, Michel Dansereau, Jim Service,
Mary Fernandez and Heather Booth for reporting and helping to fix these
bugs.  Please contact me with other bug reports.

Jim Plank
jsp@princeton.edu
-----
# To unbundle, "sed '1,/^# To unbundle/d' < thisfile | sh"
# Thu Apr 25 12:05:31 EDT 1991
echo PATCH.4.README 1>&2
sed 's/^-//' >'PATCH.4.README' <<'End of PATCH.4.README'
-Patch #4 deals with a whole bunch of bugs:
-
- - It makes patch #3 dealable from VMS.
- - It fixes bugs in token.c where EOF was unfindable on SGI machines
- - It fixes bugs in show.c where 'newstrings' were causing core dumps
- - It fixes bugs in jgraph.c where labels were getting bogus default
-   values.
-
-Thanks to hdavids@mswe1.dnet.ms.philips.nl, Michel Dansereau, Jim Service,
-Mary Fernandez and Heather Booth for reporting and helping to fix these
-bugs.  Please contact me with other bug reports.
-
-Install this patch with:
-
-patch < patch.4
-
-
-Finally, if you're having problems installing patches, or if you're 
-confused because you've changed the sources and patches no longer 
-work, send me email, and I can send you the most recent export.
-
-Jim Plank
-jsp@princeton.edu
End of PATCH.4.README
echo patch.4 1>&2
sed 's/^-//' >'patch.4' <<'End of patch.4'
-*** /dev/null	Thu Apr 25 11:44:19 1991
---- descrip.mms	Thu Apr 25 10:52:27 1991
-***************
-*** 0 ****
---- 1,44 ----
-+ CC = cc
-+ 
-+ .ifdef DEBUG
-+ CFLAGS=/noopt/debug
-+ LFLAGS=/debug
-+ .else
-+ CFLAGS=
-+ LFLAGS=
-+ .endif
-+ 
-+ OBJS = draw.obj, \
-+ 		edit.obj, \
-+ 		jgraph.obj, \
-+ 		list.obj, \
-+ 		printline.obj, \
-+ 		prio_list.obj, \
-+ 		process.obj, \
-+ 		show.obj, \
-+ 		token.obj
-+ 
-+ all :	jgraph.exe
-+ 	! done
-+ 
-+ .SUFFIXES : .jgr .jps .tex .dvi
-+ 
-+ .jgr.jps :
-+ 	jgraph < $*.jgr > *.jps
-+ 
-+ .tex.dvi :
-+ 	latex $*.tex
-+ 
-+ jgraph.exe : $(OBJS)
-+ 	link $(LFLAGS) /exe=jgraph $(OBJS)
-+ 
-+ ###
-+ draw.obj :	draw.c jgraph.h list.h prio_list.h
-+ edit.obj :	edit.c jgraph.h list.h prio_list.h
-+ jgraph.obj :	jgraph.c jgraph.h list.h prio_list.h
-+ list.obj :	list.c list.h
-+ printline.obj :	printline.c jgraph.h list.h prio_list.h
-+ prio_list.obj :	prio_list.c list.h prio_list.h
-+ process.obj :	process.c jgraph.h list.h prio_list.h
-+ show.obj :	show.c jgraph.h list.h prio_list.h
-+ token.obj :	token.c list.h
-*** ../patches/patch.3/work/jgraph.1	Thu Apr 25 11:44:25 1991
---- jgraph.1	Thu Apr 25 10:52:31 1991
-***************
-*** 130,139 ****
-  .TP
-  .B Shell\-include statements
-  Shell include statements are of the form ``shell'', ``:'', and then
-! a string.  The result of the statment is that the string is executed
-  (using popen, which passes the string to sh), and the standard
-  output is included at that point.  Shell-includes can be freely
-  nested within include-files and other shell-includes.
-  .TP
-  .B Notation
-  In the descriptions below: 
---- 130,140 ----
-  .TP
-  .B Shell\-include statements
-  Shell include statements are of the form ``shell'', ``:'', and then
-! a string.  The result of the statement is that the string is executed
-  (using popen, which passes the string to sh), and the standard
-  output is included at that point.  Shell-includes can be freely
-  nested within include-files and other shell-includes.
-+ The shell statement is not (yet) available on VMS.
-  .TP
-  .B Notation
-  In the descriptions below: 
-*** ../patches/patch.3/work/jgraph.c	Thu Apr 25 11:44:26 1991
---- jgraph.c	Thu Apr 25 10:52:28 1991
-***************
-*** 53,63 ****
-  
-    l = (Label) malloc (sizeof(struct label));
-    l->label = CNULL;
-!   l->hj = '!';
-!   l->vj = '!';
-!   l->font = CNULL;
-!   l->fontsize = FSIG;
-!   l->rotate = FSIG;
-  
-    return l;
-  }
---- 53,63 ----
-  
-    l = (Label) malloc (sizeof(struct label));
-    l->label = CNULL;
-!   l->hj = 'c';
-!   l->vj = 'b';
-!   l->font = "Times-Roman";	/* 3 lines excluded from patch3 */
-!   l->fontsize = 9.0;
-!   l->rotate = 0;
-  
-    return l;
-  }
-*** ../patches/patch.3/work/list.c	Thu Apr 25 11:44:28 1991
---- list.c	Thu Apr 25 10:52:28 1991
-***************
-*** 45,51 ****
-    item->flink = list;
-  }
-  
-! delete(item)		/* Deletes an arbitrary iterm */
-  List item;
-  {
-    item->flink->blink = item->blink;
---- 45,51 ----
-    item->flink = list;
-  }
-  
-! delete_item(item)		/* Deletes an arbitrary iterm */
-  List item;
-  {
-    item->flink->blink = item->blink;
-*** ../patches/patch.3/work/list.h	Thu Apr 25 11:44:29 1991
---- list.h	Thu Apr 25 10:52:29 1991
-***************
-*** 29,35 ****
-  /* These are the routines for manipluating lists */
-  
-  /* void insert(node list);     Inserts a node to the end of a list */
-! /* void delete(node);          Deletes an arbitrary node */
-  /* List make_list(node_size);  Creates a new list */
-  /* List get_node(list);        Allocates a node to be inserted into the list */
-  /* void free_node(node, list); Deallocates a node from the list */
---- 29,35 ----
-  /* These are the routines for manipluating lists */
-  
-  /* void insert(node list);     Inserts a node to the end of a list */
-! /* void delete_item(node);     Deletes an arbitrary node */
-  /* List make_list(node_size);  Creates a new list */
-  /* List get_node(list);        Allocates a node to be inserted into the list */
-  /* void free_node(node, list); Deallocates a node from the list */
-*** ../patches/patch.3/work/makefile	Thu Apr 25 11:44:29 1991
---- makefile	Thu Apr 25 10:52:31 1991
-***************
-*** 1,4 ****
-- LISTSOURCE = /u/jsp/src/list
-  CC = cc
-  
-  OBJS = draw.o \
---- 1,3 ----
-*** ../patches/patch.3/work/show.c	Thu Apr 25 11:44:32 1991
---- show.c	Thu Apr 25 10:52:30 1991
-***************
-*** 245,251 ****
-    for (s = first(g->strings); s != nil(g->strings); s = next(s)) {
-      spaces(nsp);
-      printf("string %d\n", s->num);
-!     show_label(s, nsp+2, g);
-    }
-  }
-  
---- 245,251 ----
-    for (s = first(g->strings); s != nil(g->strings); s = next(s)) {
-      spaces(nsp);
-      printf("string %d\n", s->num);
-!     show_label(s->s, nsp+2, g);
-    }
-  }
-  
-*** ../patches/patch.3/work/token.c	Thu Apr 25 11:44:39 1991
---- token.c	Thu Apr 25 10:52:30 1991
-***************
-*** 65,71 ****
-    char *filename;
-    FILE *stream;
-    int oldcharvalid;
-!   char oldchar;
-    char pipe;
-    int line;
-  } *Iostack;
---- 65,71 ----
-    char *filename;
-    FILE *stream;
-    int oldcharvalid;
-!   signed char oldchar;
-    char pipe;
-    int line;
-  } *Iostack;
-***************
-*** 72,78 ****
-  
-  static char INPUT[300];
-  static int getnew = 1;
-! static char oldchar = '\0';
-  static oldcharvalid = 0;
-  static char pipe = 0;
-  static int eof = 0;
---- 72,78 ----
-  
-  static char INPUT[300];
-  static int getnew = 1;
-! static signed char oldchar = '\0';
-  static oldcharvalid = 0;
-  static char pipe = 0;
-  static int eof = 0;
-***************
-*** 93,98 ****
---- 93,112 ----
-                            stack = (Iostack) make_list(sizeof(struct iostack)); \
-                            init = 1; }}
-  
-+ #ifdef VMS
-+ /* On VMS, there are no popen() and pclose(), so we provide dummies here. */
-+ FILE *popen(command, type)
-+ char *command, *type;
-+ {
-+     return(NULL);
-+ }
-+ int pclose(stream)
-+ FILE *stream;
-+ {
-+     return(-1);
-+ }
-+ #endif /*VMS*/
-+ 
-  error_header()
-  {
-    iostackinit();
-***************
-*** 117,123 ****
-  char *s;
-  {
-    int i;
-!   char c;
-  
-    for (c = gettokenchar(); 
-         c == ' ' || c == '\t' || c == '\n';
---- 131,137 ----
-  char *s;
-  {
-    int i;
-!   signed char c;
-  
-    for (c = gettokenchar(); 
-         c == ' ' || c == '\t' || c == '\n';
-***************
-*** 205,211 ****
-    line = n->line;
-    oldchar = n->oldchar;
-    oldcharvalid = n->oldcharvalid;
-!   delete(n);
-    free_node(n, stack);
-  }
-  
---- 219,225 ----
-    line = n->line;
-    oldchar = n->oldchar;
-    oldcharvalid = n->oldcharvalid;
-!   delete_item(n);
-    free_node(n, stack);
-  }
-  
-***************
-*** 235,240 ****
---- 249,258 ----
-          }
-        } else if (strcmp(INPUT, "shell") == 0) {
-          char *s, fn[30];
-+ #ifdef VMS 
-+         fprintf(stderr, "No shell option on VMS, sorry.\n");
-+         exit(1);
-+ #endif /*VMS*/	
-          if (gettoken(INPUT) == 0 || strcmp(INPUT, ":") != 0) {
-            error_header();
-            fprintf(stderr, "'shell' must be followed by ':'\n");
-***************
-*** 343,349 ****
-  
-  char *getlabel()
-  {
-!   char c;
-    int i;
-  
-    if (getnew == 0) return CNULL;
---- 361,367 ----
-  
-  char *getlabel()
-  {
-!   signed char c;
-    int i;
-  
-    if (getnew == 0) return CNULL;
-***************
-*** 364,370 ****
-  
-  int getsystemstring()
-  {
-!   char c;
-    int i;
-  
-    if (getnew == 0) return 0;
---- 382,388 ----
-  
-  int getsystemstring()
-  {
-!   signed char c;
-    int i;
-  
-    if (getnew == 0) return 0;
-***************
-*** 387,390 ****
-  {
-    getnew = 0;
-  }
-- 
---- 405,407 ----
End of patch.4

exit 0 # Just in case...
-- 
Kent Landfield                   INTERNET: kent@sparky.IMD.Sterling.COM
Sterling Software, IMD           UUCP:     uunet!sparky!kent
Phone:    (402) 291-8300         FAX:      (402) 291-4362
Please send comp.sources.misc-related mail to kent@uunet.uu.net.