[comp.sources.misc] v15i105: Patch to cardfile

djl@PacBell.COM (Dave Lampe) (12/18/90)

Posting-number: Volume 15, Issue 105
Submitted-by: Dave Lampe <dplace!djl@PacBell.COM>
Archive-name: cardfile/patch01

These are the first patches to "cardfile" posted to comp.sources.misc
in October.  See the file CHANGES for a detailed list of the changes,
but in summary there is one major bug fixed and an Imakefile is now
provided.

The Imakefile requires that the man page source be renamed.  You will
have to rename cardfile.man to manual.cpp by hand.

The bug is in the table definition. The field size for entering the
row and column position for the screen field is increased to 2 characters
and the #ifdef test for regular expressions is corrected.

If you ran into the bug and would like to change the way your database is
defined now, there are two ways to fix it. In either case the first thing
to do is backup your database files in case something goes wrong.
The easiest way to fix the problem, after compiling the new sources, is
to go to another directory and define the table again.  After the
definition is complete, copy the table.def file to the old directory.
If you all you have changed is the screen row and column and/or the input
validation, the data files do not need changing.
The second way is to edit the table.def file by hand.  The file should
look like this:
library.db:8			<-- database name and number of fields
Title:0:;:Y:65			<-- 8 db field definition lines, each has
Type:1::N:35				Field title
Author:2:;:Y:37				Index number or Not indexed
Keywords:3:,:N:130			Subfield separators (optional)
Publisher:N::N:20			Required or not
Date:N::N:10				Field length
Cost:N::N:6
Comments:N::N:250
4				<-- number of index fields
0:library.ak0			<-- for each index, the index number
1:library.ak1				and index file name
2:library.ak2
3:library.ak3
%%				<-- Start of screen layout
0:1:-1:-1:-1:-1:		<-- Screen layout for each field. Each line has
1:1:-1:-1:-1:-1:			Field number
2:1:-1:-1:-1:-1:			Title row/column (-1 is default)
3:1:-1:-1:-1:-1:			Data row/column (-1 is default)
4:1:-1:-1:-1:-1:			Regular expression to do validation
5:1:::::^1[89][0-9][0-9]$
6:1:::::^[0-9]*.[0-9][0-9]$
7:1:-1:-1:-1:-1:

-- 
Dave Lampe
{ames | lll-tis | sun | pyramid}!pacbell!dplace!djl
(415) 455-1571 (H)
(415) 462-7000 (W)
-------------------------------------------------------------------------------
*** old/CHANGES	Sun Dec  9 16:54:59 1990
--- CHANGES	Sun Dec  9 16:54:47 1990
***************
*** 0

--- 1,18 -----
+ 1)  Field definition screen (define.c) changed to allow two digit line and
+     column specifications.  Also the #ifdef for the format line was corrected.
+ 
+ 2)  Ambiguous assignment operator in cardfile.c clarified.
+ 
+ 3)  TERMIO switch added (Makefile, screen.c).
+ 
+ 4)  Unused variables in change.c and delete.c deleted.
+ 
+ 5)  Fix validation of required and key fields if BSD_STRINGS defined (define.c).
+ 
+ 6)  An Imakefile is now provided. I don't use Imake so it is untested.
+     Comments should go to Jonathan I. Kamens, jik@pit-manager.MIT.EDU
+ 
+ 7)  Cardfile.man renamed to manual.cpp because of Imake.
+     This must be done manually.
+ 
+ 8)  Support for the Sony News workstation added (Makefile, findrcds.c).
*** old/patchlevel.h	Sun Dec  9 16:30:58 1990
--- patchlevel.h	Sun Dec  9 16:38:26 1990
***************
*** 0

--- 1,5 -----
+ #ifndef lint
+ static char ID_patchlevel[] = "@(#)patchlevel.h	1.2   DeltaDate 12/9/90    ExtrDate 12/9/90";
+ #endif
+ 
+ #define VERSION	"1.2"
*** old/Makefile	Sun Dec  9 17:20:38 1990
--- Makefile	Sun Dec  9 16:41:56 1990
***************
*** 1,4
! # @(#)Makefile	3.2  DeltaDate 8/11/90   ExtrDate 10/6/90
  
  # Variables to define your environment:
  #   Define what kind of regular expression routines you have

--- 1,4 -----
! # @(#)Makefile	3.3  DeltaDate 12/9/90   ExtrDate 12/9/90
  
  # Variables to define your environment:
  #   Define what kind of regular expression routines you have
***************
*** 10,15
  #
  #   Define what flavor of curses you have
  #	TERMCAP		use the original (BSD) curses
  #	TERMINFO	use the SYSV rewrite of curses
  #
  #   Define what tty driver you have

--- 10,16 -----
  #
  #   Define what flavor of curses you have
  #	TERMCAP		use the original (BSD) curses
+ #	  TERMIO	include <termio.h> (normally true with termcap)
  #	TERMINFO	use the SYSV rewrite of curses
  #
  #   Define what tty driver you have
***************
*** 22,28
  #
  #   Define which signal library you have
  #	BSD_SIG		system calls are continued after interrupt
! #	SYSV_SIG	system call returns error if interrupted
  #
  # Pick one from each of the five lists above.
  #

--- 23,29 -----
  #
  #   Define which signal library you have
  #	BSD_SIG		system calls are continued after interrupt
! #	SYSV_SIG	system calls return error if interrupted
  #
  # Pick one from each of the five lists above.
  #
***************
*** 32,38
  
  # These are for compiling on the Sun 4.0
  #CC	=	cc
! #CCP	=	ccp
  #LINT	=	lint
  #DEFINES =	-DTERMCAP -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DBSD_SIG
  #CC	=	/usr/5bin/cc

--- 33,40 -----
  
  # These are for compiling on the Sun 4.0
  #CC	=	cc
! #CPP	=	cpp
! #CPPFLAG =	-C -P
  #LINT	=	lint
  #DEFINES =	-DTERMCAP -DTERMIO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DBSD_SIG
  #CC	=	/usr/5bin/cc
***************
*** 34,40
  #CC	=	cc
  #CCP	=	ccp
  #LINT	=	lint
! #DEFINES =	-DTERMCAP -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DBSD_SIG
  #CC	=	/usr/5bin/cc
  #CCP	=	/usr/5bin/ccp
  #LINT	=	/usr/5bin/lint

--- 36,42 -----
  #CPP	=	cpp
  #CPPFLAG =	-C -P
  #LINT	=	lint
! #DEFINES =	-DTERMCAP -DTERMIO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DBSD_SIG
  #CC	=	/usr/5bin/cc
  #CPP	=	/usr/5bin/cpp
  #CPPFLAG =	-C -P
***************
*** 36,42
  #LINT	=	lint
  #DEFINES =	-DTERMCAP -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DBSD_SIG
  #CC	=	/usr/5bin/cc
! #CCP	=	/usr/5bin/ccp
  #LINT	=	/usr/5bin/lint
  #DEFINES =	-DTERMINFO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DSYSV_SIG
  

--- 38,45 -----
  #LINT	=	lint
  #DEFINES =	-DTERMCAP -DTERMIO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DBSD_SIG
  #CC	=	/usr/5bin/cc
! #CPP	=	/usr/5bin/cpp
! #CPPFLAG =	-C -P
  #LINT	=	/usr/5bin/lint
  #DEFINES =	-DTERMINFO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DSYSV_SIG
  
***************
*** 40,45
  #LINT	=	/usr/5bin/lint
  #DEFINES =	-DTERMINFO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DSYSV_SIG
  
  # These are for System V
  CC	=	cc
  CPP	=	/lib/cpp

--- 43,55 -----
  #LINT	=	/usr/5bin/lint
  #DEFINES =	-DTERMINFO -DBSD_RE -DBSD_STRING -DSYSV_TTY -DSIGRTN=void -DSYSV_SIG
  
+ # These are for compileing on Sony/News 800 series
+ # CC	=	cc
+ # CPP	=	cc -E
+ # CPPFLAG =
+ # LINT	=	lint
+ # DEFINES =	-DTERMCAP -DTERMIO -DBSD_RE -DBSD_STRING -DBSD_TTY -DSIGRTN=int -DBSD_SIG -DNEWS
+ 
  # These are for System V
  CC	=	cc
  CPP	=	/lib/cpp
***************
*** 43,48
  # These are for System V
  CC	=	cc
  CPP	=	/lib/cpp
  LINT	=	lint
  DEFINES	=	-DTERMINFO -DSYSV_RE -DSYSV_STRING -DSYSV_TTY -DSIGRTN=int -DSYSV_SIG
  

--- 53,59 -----
  # These are for System V
  CC	=	cc
  CPP	=	/lib/cpp
+ CPPFLAG =	-C -P
  LINT	=	lint
  DEFINES	=	-DTERMINFO -DSYSV_RE -DSYSV_STRING -DSYSV_TTY -DSIGRTN=int -DSYSV_SIG
  
***************
*** 75,81
  SHARFLAGS =	-c -V -l62 -n cardfile -a -x -o cardfile
  
  DOC	=	cardfile.1
! DOCS	=	cardfile.man
  
  HDRS	=	ascii.h cardfile.h
  

--- 86,92 -----
  SHARFLAGS =	-c -V -l62 -n cardfile -a -x -o cardfile
  
  DOC	=	cardfile.1
! DOCS	=	manual.cpp
  
  HDRS	=	ascii.h cardfile.h
  
***************
*** 174,180
  		lp -o-v8 -o-t -o-h12
  
  prt_docs:	$(DOC)
! 		nroff -man cardfile.1 | lp -o-qc
  
  cardfile.1:	cardfile.man
  		$(CPP) -C -P cardfile.man | sed -e '/^$$/d' >cardfile.1

--- 185,191 -----
  		lp -o-v8 -o-t -o-h12
  
  prt_docs:	$(DOC)
! 		nroff -man $(DOC) | lp -o-qc
  
  cardfile.1:	manual.cpp
  		$(CPP) $(CPPFLAG) manual.cpp | sed -e '/^$$/d' >cardfile.1
***************
*** 176,183
  prt_docs:	$(DOC)
  		nroff -man cardfile.1 | lp -o-qc
  
! cardfile.1:	cardfile.man
! 		$(CPP) -C -P cardfile.man | sed -e '/^$$/d' >cardfile.1
  
  shar:		$(HDRS) $(SRC) $(DOCS) Makefile $(TESTDB)
  		$(SHAR) $(SHARFLAGS) README $(DOCS) Makefile \

--- 187,194 -----
  prt_docs:	$(DOC)
  		nroff -man $(DOC) | lp -o-qc
  
! cardfile.1:	manual.cpp
! 		$(CPP) $(CPPFLAG) manual.cpp | sed -e '/^$$/d' >cardfile.1
  
  shar:		$(HDRS) $(SRC) $(DOCS) Makefile $(TESTDB)
  		$(SHAR) $(SHARFLAGS) README $(DOCS) Makefile \
***************
*** 197,203
  change.o:	cardfile.h ascii.h
  common.o:	cardfile.h ascii.h
  compress.o:	cardfile.h
! define.o:	cardfile.h ascii.h
  delete.o:	cardfile.h ascii.h
  dumpdb.o:	cardfile.h ascii.h
  extract.o:	cardfile.h ascii.h

--- 208,214 -----
  change.o:	cardfile.h ascii.h
  common.o:	cardfile.h ascii.h
  compress.o:	cardfile.h
! define.o:	cardfile.h ascii.h patchlevel.h
  delete.o:	cardfile.h ascii.h
  dumpdb.o:	cardfile.h ascii.h
  extract.o:	cardfile.h ascii.h
*** old/cardfile.c	Sun Dec  9 17:19:00 1990
--- cardfile.c	Sun Dec  9 16:41:58 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)cardfile.c	3.1    DeltaDate 8/3/90    ExtrDate 10/6/90";
  #endif
  
  /*      CARDFILE.C      */

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)cardfile.c	3.2    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*      CARDFILE.C      */
***************
*** 117,123
      strcpy(fname, getfield(line_buf, ":"));
      num_flds = atoi(getfield(0, ":"));
  
!     for (i=0, fp=&fields[0]; i<num_flds; i++, fp++) {	/* get definition of each field */
  	if (fgets(line_buf, 132, def_fp) == NULL) {
  	    printf("DEF file syntax error, field defs\n");
  	    sleep(5);

--- 117,124 -----
      strcpy(fname, getfield(line_buf, ":"));
      num_flds = atoi(getfield(0, ":"));
  
!     /* get definition of each field */
!     for (i = 0, fp = &fields[0]; i < num_flds; i++, fp++) {
  	if (fgets(line_buf, 132, def_fp) == NULL) {
  	    printf("DEF file syntax error, field defs\n");
  	    sleep(5);
*** old/change.c	Sun Dec  9 17:19:06 1990
--- change.c	Sun Dec  9 16:42:00 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)change.c	3.1    DeltaDate 8/3/90    ExtrDate 10/6/90";
  #endif
  
  /*      CHANGE.C		*/

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)change.c	3.2    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*      CHANGE.C		*/
***************
*** 74,81
      char	c, save[DBSIZE+1];
      long	offset, ftell();
      char	*strchr();
-     int 	fn;
-     struct      Fdata   *fp;
      struct      Sdata   *sp;
      char	*first = "Record to be CHANGED";
      char	*last = "RETURN for next, ESC to abort, Ctrl-C to Change, Ctrl-B to reverse";

--- 74,79 -----
      char	c, save[DBSIZE+1];
      long	offset, ftell();
      char	*strchr();
      struct      Sdata   *sp;
      char	*first = "Record to be CHANGED";
      char	*last = "RETURN for next, ESC to abort, Ctrl-C to Change, Ctrl-B to reverse";
*** old/define.c	Sun Dec  9 17:19:12 1990
--- define.c	Sun Dec  9 16:42:02 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)define.c	3.1    DeltaDate 8/3/90    ExtrDate 10/6/90";
  #endif
  
  /*      DEFINE.C	*/

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)define.c	3.2    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*      DEFINE.C	*/
***************
*** 15,20
  #include "cardfile.h"
  #include "stdio.h"
  #include "ascii.h"
  #include <ctype.h>
  
  #define	FNAME	0

--- 15,21 -----
  #include "cardfile.h"
  #include "stdio.h"
  #include "ascii.h"
+ #include "patchlevel.h"
  #include <ctype.h>
  
  #define	FNAME	0
***************
*** 61,67
  			{"FIELD PAGE", 1, page_res, " ",
  			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"LABEL LINE", 2, lline_res, "  ",
! 			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"LABEL COLUMN", 2, lcol_res, "  ",
  			    -1, 12, 35, -1, -1, "^[-0-9]$"},
  			{"DATA FIELD LINE", 2, dline_res, "  ",

--- 62,68 -----
  			{"FIELD PAGE", 1, page_res, " ",
  			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"LABEL LINE", 2, lline_res, "  ",
! 			    -1, -1, -1, -1, -1, "^[-0-9][0-9]*$"},
  			{"LABEL COLUMN", 2, lcol_res, "  ",
  			    -1, 12, 35, -1, -1, "^[-0-9][0-9]*$"},
  			{"DATA FIELD LINE", 2, dline_res, "  ",
***************
*** 63,69
  			{"LABEL LINE", 2, lline_res, "  ",
  			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"LABEL COLUMN", 2, lcol_res, "  ",
! 			    -1, 12, 35, -1, -1, "^[-0-9]$"},
  			{"DATA FIELD LINE", 2, dline_res, "  ",
  			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"DATA FIELD COLUMN", 2, dcol_res, 0,

--- 64,70 -----
  			{"LABEL LINE", 2, lline_res, "  ",
  			    -1, -1, -1, -1, -1, "^[-0-9][0-9]*$"},
  			{"LABEL COLUMN", 2, lcol_res, "  ",
! 			    -1, 12, 35, -1, -1, "^[-0-9][0-9]*$"},
  			{"DATA FIELD LINE", 2, dline_res, "  ",
  			    -1, -1, -1, -1, -1, "^[-0-9][0-9]*$"},
  			{"DATA FIELD COLUMN", 2, dcol_res, 0,
***************
*** 65,71
  			{"LABEL COLUMN", 2, lcol_res, "  ",
  			    -1, 12, 35, -1, -1, "^[-0-9]$"},
  			{"DATA FIELD LINE", 2, dline_res, "  ",
! 			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"DATA FIELD COLUMN", 2, dcol_res, 0,
  			    -1, 14, 35, -1, -1, "^[-0-9]$"},
  #ifdef RE

--- 66,72 -----
  			{"LABEL COLUMN", 2, lcol_res, "  ",
  			    -1, 12, 35, -1, -1, "^[-0-9][0-9]*$"},
  			{"DATA FIELD LINE", 2, dline_res, "  ",
! 			    -1, -1, -1, -1, -1, "^[-0-9][0-9]*$"},
  			{"DATA FIELD COLUMN", 2, dcol_res, 0,
  			    -1, 14, 35, -1, -1, "^[-0-9][0-9]*$"},
  #ifndef NO_RE
***************
*** 67,74
  			{"DATA FIELD LINE", 2, dline_res, "  ",
  			    -1, -1, -1, -1, -1, "^[-0-9]$"},
  			{"DATA FIELD COLUMN", 2, dcol_res, 0,
! 			    -1, 14, 35, -1, -1, "^[-0-9]$"},
! #ifdef RE
  			{"FORMAT", MAXFMT, fmt_res, 0,
  			    -1, -1, -1, -1, -1, ""},
  #endif

--- 68,75 -----
  			{"DATA FIELD LINE", 2, dline_res, "  ",
  			    -1, -1, -1, -1, -1, "^[-0-9][0-9]*$"},
  			{"DATA FIELD COLUMN", 2, dcol_res, 0,
! 			    -1, 14, 35, -1, -1, "^[-0-9][0-9]*$"},
! #ifndef NO_RE
  			{"FORMAT", MAXFMT, fmt_res, 0,
  			    -1, -1, -1, -1, -1, ""},
  #endif
***************
*** 91,97
      int 	tsize;
      int		opt_out;
  
!     sprintf(first,"DEFINING %s DATA BASE", basename);
      if (access((*datadir ? datadir : "."), 06) != 0) {
  	printf("Cannot write into %s\n", (*datadir ? datadir : "."));
  	sleep(5);

--- 92,99 -----
      int 	tsize;
      int		opt_out;
  
!     sprintf(first,"DEFINING %s DATA BASE  -- Cardfile Version %s",
! 	basename, VERSION);
      if (access((*datadir ? datadir : "."), 06) != 0) {
  	printf("Cannot write into %s\n", (*datadir ? datadir : "."));
  	sleep(5);
***************
*** 133,138
  #ifdef BSD_STRING
  	if (islower(def_screen[REQD].S_result[0]))
  	    fp->F_required = toupper(def_screen[REQD].S_result[0]);
  #else
  	fp->F_required = toupper(def_screen[REQD].S_result[0]);
  #endif

--- 135,142 -----
  #ifdef BSD_STRING
  	if (islower(def_screen[REQD].S_result[0]))
  	    fp->F_required = toupper(def_screen[REQD].S_result[0]);
+ 	else
+ 	    fp->F_required = def_screen[REQD].S_result[0];
  #else
  	fp->F_required = toupper(def_screen[REQD].S_result[0]);
  #endif
***************
*** 144,149
  #ifdef BSD_STRING
  	if (islower(def_screen[SRCH].S_result[0]))
  	    fp->F_key = toupper(def_screen[SRCH].S_result[0]);
  #else
  	fp->F_key = toupper(def_screen[SRCH].S_result[0]);
  #endif

--- 148,155 -----
  #ifdef BSD_STRING
  	if (islower(def_screen[SRCH].S_result[0]))
  	    fp->F_key = toupper(def_screen[SRCH].S_result[0]);
+ 	else
+ 	    fp->F_key = def_screen[SRCH].S_result[0];
  #else
  	fp->F_key = toupper(def_screen[SRCH].S_result[0]);
  #endif
***************
*** 174,180
  	} else {
  	    fp->F_Lrow = atoi(def_screen[LLINE].S_result);
  	    if (fp->F_Lrow < 2 || fp->F_Lrow >= MSGLINE) {
! 		msg("LABEL ROW field must be less than 22");
  		++err;
  	    }
  	}

--- 180,186 -----
  	} else {
  	    fp->F_Lrow = atoi(def_screen[LLINE].S_result);
  	    if (fp->F_Lrow < 2 || fp->F_Lrow >= MSGLINE) {
! 		msg("LABEL LINE field must be less than 22");
  		++err;
  	    }
  	}
***************
*** 194,200
  	} else {
  	    fp->F_Drow = atoi(def_screen[DLINE].S_result);
  	    if (fp->F_Drow < 2 || fp->F_Drow >= MSGLINE) {
! 		msg("DATA ROW field must be less than 22");
  		++err;
  	    }
  	}

--- 200,206 -----
  	} else {
  	    fp->F_Drow = atoi(def_screen[DLINE].S_result);
  	    if (fp->F_Drow < 2 || fp->F_Drow >= MSGLINE) {
! 		msg("DATA LINE field must be less than 22");
  		++err;
  	    }
  	}
*** old/delete.c	Sun Dec  9 17:19:17 1990
--- delete.c	Sun Dec  9 16:42:03 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)delete.c	3.1    DeltaDate 8/3/90    ExtrDate 10/6/90";
  #endif
  
  /*	DELETE.C		*/

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)delete.c	3.2    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*	DELETE.C		*/
***************
*** 71,79
  char	*dummy;
  {
      char	c, save[DBSIZE+1];
-     static      char    fmt[256];
-     int 	fn;
-     struct      Fdata   *fp;
      struct      Sdata   *sp;
      char	*first = "Record to be DELETED";
      char	*last = "RETURN for next, ESC to abort, CTL-D to DELETE, CTL-B to reverse";

--- 71,76 -----
  char	*dummy;
  {
      char	c, save[DBSIZE+1];
      struct      Sdata   *sp;
      char	*first = "Record to be DELETED";
      char	*last = "RETURN for next, ESC to abort, CTL-D to DELETE, CTL-B to reverse";
*** old/extract.c	Sun Dec  9 17:19:22 1990
--- extract.c	Sun Dec  9 16:42:04 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)extract.c	3.1    DeltaDate 8/3/90    ExtrDate 10/6/90";
  #endif
  
  /*      EXTRACT.C       */

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)extract.c	3.2    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*      EXTRACT.C       */
***************
*** 15,21
  char    ext_fname[FNSIZE];
  int     rec_cnt;
  struct Sdata    fn_screen[] = {
! 		    {"File Name", FNSIZE, ext_fname, NULL},
  		    {0, 0, 0, 0}
  		};
  

--- 15,22 -----
  char    ext_fname[FNSIZE];
  int     rec_cnt;
  struct Sdata    fn_screen[] = {
! 		    {"File Name", FNSIZE, ext_fname, NULL,
! 		     -1, -1, -1, -1, -1, ""},
  		    {0, 0, 0, 0}
  		};
  
*** old/findrcds.c	Sun Dec  9 17:19:32 1990
--- findrcds.c	Sun Dec  9 16:42:05 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)findrcds.c	3.1    DeltaDate 8/3/90    ExtrDate 10/6/90";
  #endif
  
  /*	FINDRCDS.C	*/

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)findrcds.c	3.2    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*	FINDRCDS.C	*/
***************
*** 19,24
  #include <errno.h>
  #include "ascii.h"
  #include "cardfile.h"
  
  extern	int	readonly;
  

--- 19,27 -----
  #include <errno.h>
  #include "ascii.h"
  #include "cardfile.h"
+ #ifdef NEWS
+ extern int	errno;
+ #endif
  
  extern	int	readonly;
  
*** old/screen.c	Sun Dec  9 17:19:40 1990
--- screen.c	Sun Dec  9 16:42:08 1990
***************
*** 1,5
  #ifndef lint
! static char Sccsid[] = "@(#)screen.c	3.2    DeltaDate 8/11/90    ExtrDate 10/6/90";
  #endif
  
  /*	SCREEN.C	*/

--- 1,5 -----
  #ifndef lint
! static char Sccsid[] = "@(#)screen.c	3.3    DeltaDate 12/9/90    ExtrDate 12/9/90";
  #endif
  
  /*	SCREEN.C	*/
***************
*** 51,56
  #include <ctype.h>
  #include <signal.h>
  #ifdef TERMCAP
  #include <termio.h>
  #define tparm(a, line, col)	tgoto(a, col, line)
  #define	putp(a)		tputs(a, 12, mputc)

--- 51,57 -----
  #include <ctype.h>
  #include <signal.h>
  #ifdef TERMCAP
+ # ifdef TERMIO
  #include <termio.h>
  # endif
  #define tparm(a, line, col)	tgoto(a, col, line)
***************
*** 52,57
  #include <signal.h>
  #ifdef TERMCAP
  #include <termio.h>
  #define tparm(a, line, col)	tgoto(a, col, line)
  #define	putp(a)		tputs(a, 12, mputc)
  #else

--- 53,59 -----
  #ifdef TERMCAP
  # ifdef TERMIO
  #include <termio.h>
+ # endif
  #define tparm(a, line, col)	tgoto(a, col, line)
  #define	putp(a)		tputs(a, 12, mputc)
  #else
***************
*** 377,383
  #ifdef BSD_SIG
      longjmp(jbuf, 1);
  #endif
-     return;
  }
  
  /*

--- 379,384 -----
  #ifdef BSD_SIG
      longjmp(jbuf, 1);
  #endif
  }
  
  /*


-- 
Dave Lampe
{ames | lll-tis | sun | pyramid}!pacbell!dplace!djl
(415) 455-1571 (H)
(415) 462-7000 (W)