home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
unix
/
volume26
/
maint
/
patch01
< prev
next >
Wrap
Text File
|
1993-05-01
|
69KB
|
2,096 lines
Newsgroups: comp.sources.unix
From: peirce@gw.wmich.edu (Leonard J. Peirce)
Subject: v26i201: maint - full-screen file and directory maintenance tool, Patch01
Sender: unix-sources-moderator@efficacy.home.vix.com
Approved: WhoAmI@efficacy.home.vix.com
Submitted-By: peirce@gw.wmich.edu (Leonard J. Peirce)
Posting-Number: Volume 26, Issue 201
Archive-Name: maint/patch01
Message-Id: <9210071829.AA06683@gumby.cc.wmich.edu>
From: peirce@gumby.cc.wmich.edu (Leonard J. Peirce)
Date: Wed, 7 Oct 1992 14:29:30 -0400
To: comp-sources-unix@uunet.uu.net
Subject: comp.sources.unix -- maint 1.0 patch #1
System: maint version 1.0
Patch #: 1
Priority: HIGH
Subject: Bug fixes and support for new UNIX platforms
From: peirce@gumby.cc.wmich.edu
Description:
Lots of stuff in this first patch (see README and CHANGES for
more info).
Sorry it took so long to get this out. Sometimes real work
gets in the way. ;-}
Fix:
Change to the directory where you have the 1.0 source and say
patch -p0 <thisarticle
Index: patchlevel.h
*** ../D.maint.1.0/CHANGES Wed Oct 7 13:53:49 1992
--- CHANGES Wed Oct 7 13:41:51 1992
***************
*** 0 ****
--- 1,17 ----
+ 1.0
+ ---
+
+ Initial version. we haven't found any bugs yet! ;-}
+
+ 1.0 PL0
+ -------
+
+ - Support for lots of new UNIX platforms (see README)
+
+ - -F actually works
+
+ - screen refresh after a returning from a subprocess works
+
+ - ^W works
+
+ - lots of little bug fixes to numerous to mention
*** ../D.maint.1.0/Makefile.dist Wed Oct 7 13:52:47 1992
--- Makefile.dist Wed Oct 7 13:09:01 1992
***************
*** 38,42 ****
#CC = /usr/5bin/cc
#DEBUGOPT = -O4
! #CFLAGS = $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/maint.help\"
#LIBS = -lcurses -ltermcap
#
--- 38,42 ----
#CC = /usr/5bin/cc
#DEBUGOPT = -O4
! #CFLAGS = $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
#LIBS = -lcurses -ltermcap
#
***************
*** 45,52 ****
#CC = gcc
#DEBUGOPT = -O
! #CFLAGS = -I/usr/5include $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/maint.help\"
#LIBS = /usr/5lib/libcurses.a /usr/5lib/libtermcap.a
-
# ULTRIX:
# ULTRIX needs -lcursesX; realize that maint will only build for ULTRIX 3.0+;
--- 45,51 ----
#CC = gcc
#DEBUGOPT = -O
! #CFLAGS = -I/usr/5include $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
#LIBS = /usr/5lib/libcurses.a /usr/5lib/libtermcap.a
# ULTRIX:
# ULTRIX needs -lcursesX; realize that maint will only build for ULTRIX 3.0+;
***************
*** 55,61 ****
CC = cc
DEBUGOPT = -O
! CFLAGS = $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/maint.help\"
LIBS = -lcursesX -ltermcap
# System V:
# Haven't done much testing in this environment. It worked fine the last
--- 54,66 ----
CC = cc
DEBUGOPT = -O
! CFLAGS = -Olimit 810 $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
LIBS = -lcursesX -ltermcap
+ # IBM RS/6000 AIX 3.0
+ #CC = cc
+ #DEBUGOPT = -O
+ #CFLAGS = -DAIX $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
+ #LIBS = -lcurses -ltermcap
+
# System V:
# Haven't done much testing in this environment. It worked fine the last
***************
*** 63,69 ****
#CC = cc
#DEBUGOPT = -O
! #CFLAGS = -DMAXPATHLEN=1024 -DSYSV $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/maint.help\"
#LIBS = -lcurses -ltermcap
# Set these if you want to use the Makefile to install maint for you
#
--- 68,111 ----
#CC = cc
#DEBUGOPT = -O
! #CFLAGS = -DMAXPATHLEN=1024 -DSYSV $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
#LIBS = -lcurses -ltermcap
+ # IRIX:
+ # Tested on 4.0.1
+ #CC = cc
+ #DEBUGOPT = -O
+ #CFLAGS = $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\" -DSYSV -D"st_blocks=st_size" -cckr
+ #LIB = -lcurses -ltermcap
+
+ # Pyramid:
+ #CC = att cc
+ #DEBUGOPT = -O
+ #CFLAGS = -DSYSV $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
+ #LIBS = -lcurses -ltermcap
+
+ # Interactive (ISC) SVR3 release 2.2 with gcc 2.1 on a 386
+ #CC = gcc
+ #DEBUGOPT = -O
+ #CFLAGS = -traditional -Disc -DMAXPATHLEN=1024 -DSYSV ${DEBUGOPT} -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
+ #LIBS = -lcurses -ltermcap
+
+ # HP/UX
+ # I *think* this will work. I received patches from people running various
+ # versions of HP/UX on various pieces of hardware.
+ #
+ #CC = cc
+ #DEBUGOPT = -O
+ #CFLAGS = -DMAXPATHLEN=1024 $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
+ #LIBS = -lcurses -ltermcap
+
+ # SCO Unix
+ # SCO Unix 3.2v4 and ODT 2.0 build with a few warnings in screen.c and
+ # xecute.c but appears to work correctly. SCO Unix 3.2 and ODT 1.1 will
+ # build cleanly and run correctly.
+ #CC = cc
+ #DEBUGOPT = -O
+ #CFLAGS = -DMAXPATHLEN=1024 -DSCO $(DEBUGOPT) -c -DHELPFILE=\"${HELPDIR}/${HELPFILE}\"
+ #LIBS = -lcurses -ltermcap
+
# Set these if you want to use the Makefile to install maint for you
#
***************
*** 74,77 ****
--- 116,120 ----
# HELPDIR - where the on-line help file will live
# HELPMODE - protection mode for help file
+ # HELPFILE - name of extended on-line help file (not the man page)
# OWNER - of executable, the man page, and the help file
# GROUP - ditto
***************
*** 83,86 ****
--- 126,130 ----
HELPDIR = /usr/local/lib
HELPMODE = 644
+ HELPFILE = maint.help
OWNER = root
GROUP = daemon
***************
*** 121,123 ****
install -c -m ${BINMODE} -o ${OWNER} -g ${GROUP} maint ${BINDIR}
install -c -m ${MANMODE} -o ${OWNER} -g ${GROUP} maint.1 ${MANDIR}
! install -c -m ${HELPMODE} -o ${OWNER} -g ${GROUP} maint.hlp ${HELPDIR}
--- 165,167 ----
install -c -m ${BINMODE} -o ${OWNER} -g ${GROUP} maint ${BINDIR}
install -c -m ${MANMODE} -o ${OWNER} -g ${GROUP} maint.1 ${MANDIR}
! install -c -m ${HELPMODE} -o ${OWNER} -g ${GROUP} ${HELPFILE} ${HELPDIR}
*** ../D.maint.1.0/README Wed Oct 7 13:52:47 1992
--- README Wed Oct 7 13:34:58 1992
***************
*** 47,55 ****
o System V Release 3
! I would like to say that maint will work on HP/UX, AIX, etc., but I
! can't because I don't have access to them. If you make it work on a system
! not listed above, let me know what you had to do and I'll see what I can do
! about including your fixes in the next release.
I'm also pretty anxious to get it ported to Xenix. If anyone out there
wants to take the time to port it and send me the diffs, I'll be more than
--- 47,66 ----
o System V Release 3
! o SCO UNIX 3.2.2
+ o HP-UX
+
+ o IRIX
+
+ o Apollo Domain
+
+ o Pyramid
+
+ o AIX 3.0
+
+ If you make maint work on a system not listed above, let me know what you
+ had to do and I'll see what I can do about including your fixes in the next
+ release.
+
I'm also pretty anxious to get it ported to Xenix. If anyone out there
wants to take the time to port it and send me the diffs, I'll be more than
***************
*** 80,83 ****
--- 91,100 ----
running SunOS 3.X; this turns on a few typedefs that maint needs.
+ If you aren't running nroff there is a preformatted version of the
+ man page in maint.man.uu. It needs to be uudecoded and then copied
+ out to the appropriate manual page directory. You can change the
+ install line for the manual page in the Makefile if you like or you
+ could just copy it by hand.
+
4. Type "make" to build maint.
***************
*** 106,109 ****
--- 123,132 ----
code improvements.
+ To the maint test group, for their invaluable and much appreciated efforts
+ and time in testing maint on a number of different platforms: William Silvert,
+ Karl Vogel, Valter Cavecchia, Stefan Posthuma, Christian Posse, Gordon
+ Berkley, Kiron D. Bondale, and Minh Tran. (Sorry if I missed someone in
+ there).
+
CONCLUSION
I put a lot of work into maint and I would appreciate any comments/
***************
*** 126,130 ****
If you have a suggestion feel free to send me e-mail.
! While I'm sure maint doesn't do everything that everyone could ever want,
I still feel that you will find it useful. At any rate, I use it quite a
bit, even if no one else does. :-)
--- 149,153 ----
If you have a suggestion feel free to send me e-mail.
! While I'm sure maint doesn't do everything that everyone could ever want,
I still feel that you will find it useful. At any rate, I use it quite a
bit, even if no one else does. :-)
***************
*** 133,136 ****
Leonard J. Peirce Internet: peirce@mickey.acs.wmich.edu
Western Michigan University peirce@gw.wmich.edu
! Academic Computing Services
Kalamazoo, MI 49008 Voice: (616) 387-5469
--- 156,159 ----
Leonard J. Peirce Internet: peirce@mickey.acs.wmich.edu
Western Michigan University peirce@gw.wmich.edu
! University Computing Services
Kalamazoo, MI 49008 Voice: (616) 387-5469
*** ../D.maint.1.0/args.c Wed Oct 7 13:52:48 1992
--- args.c Wed Oct 7 13:39:53 1992
***************
*** 10,14 ****
Version=01 Level=00 01/24/92 Leonard J. Peirce
! Purpose: Routine(s) for parsing run-time arguments.
Arguments: See individual routine(s).
--- 10,14 ----
Version=01 Level=00 01/24/92 Leonard J. Peirce
! Purpose: Miscellaneous updates.
Arguments: See individual routine(s).
***************
*** 41,47 ****
/******************************************************************************/
#include <stdio.h>
#include <string.h>
- #include "maint.h"
/******************************************************************************/
--- 41,47 ----
/******************************************************************************/
+ #include "maint.h"
#include <stdio.h>
#include <string.h>
/******************************************************************************/
*** ../D.maint.1.0/edit.c Wed Oct 7 13:52:49 1992
--- edit.c Wed Oct 7 13:39:58 1992
***************
*** 42,51 ****
/******************************************************************************/
#include <stdio.h>
#include <string.h>
! #if !defined(SYSV) || defined(sun)
#include <sys/wait.h>
#endif
- #include "maint.h"
/******************************************************************************/
--- 42,51 ----
/******************************************************************************/
+ #include "maint.h"
#include <stdio.h>
#include <string.h>
! #if (!defined(SYSV) && !defined(SCO)) || defined(sun)
#include <sys/wait.h>
#endif
/******************************************************************************/
***************
*** 117,121 ****
int child, /* pid of child process */
i; /* loop and return value */
! #if !defined(SYSV) || defined(sun)
union wait status; /* exit status for child process */
#else
--- 117,121 ----
int child, /* pid of child process */
i; /* loop and return value */
! #if (!defined(SYSV) || defined(sun)) && !defined(SCO) && !defined(AIX)
union wait status; /* exit status for child process */
#else
***************
*** 138,141 ****
--- 138,143 ----
tptr++;
+ endwin();
+
if((child = vfork()) == 0)
{
***************
*** 142,146 ****
/* we're in the child */
- endwin();
execlp(editor,tptr,filename,NULL);
return(FAILURE); /* execlp failed if we get here */
--- 144,147 ----
***************
*** 156,159 ****
--- 157,161 ----
return(FAILURE);
+ doupdate();
return(SUCCESS);
*** ../D.maint.1.0/help.c Wed Oct 7 13:52:49 1992
--- help.c Wed Oct 7 13:43:15 1992
***************
*** 41,44 ****
--- 41,45 ----
/******************************************************************************/
+ #include "maint.h"
#ifdef ultrix
#include <cursesX.h>
***************
*** 46,50 ****
#include <curses.h>
#endif
- #include "maint.h"
/******************************************************************************/
--- 47,50 ----
***************
*** 148,151 ****
--- 148,152 ----
case(CARRIAGE_RETURN):
+ case(KEY_ENTER):
info_mess("Down and Left -- Move down one row, left of screen");
***************
*** 273,288 ****
info_mess("^Goto -- Goto specific page in directory");
- break;
-
- case('W'):
- case('w'):
-
- info_mess("Who -- Display name of author");
- break;
-
- case('V'):
- case('v'):
-
- info_mess("Version -- Display current version");
break;
--- 274,277 ----
*** ../D.maint.1.0/info.c Wed Oct 7 13:52:55 1992
--- info.c Wed Oct 7 13:40:05 1992
***************
*** 43,46 ****
--- 43,47 ----
/******************************************************************************/
+ #include "maint.h"
#if !defined(SYSV) || defined(sun)
#include <sys/types.h>
***************
*** 55,61 ****
#include <errno.h>
#include <time.h>
- #include "maint.h"
#include <sys/stat.h>
/******************************************************************************/
/* */
--- 56,65 ----
#include <errno.h>
#include <time.h>
#include <sys/stat.h>
+ #if defined(sgi) || defined(SYSV) || defined(sun) || defined(isc)
+ #include <sys/sysmacros.h> /* get major/minor macros */
+ #endif
+
/******************************************************************************/
/* */
***************
*** 243,248 ****
case(S_IFCHR):
put_buf(window,"This file represents a character device.",&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
! sprintf(buf," The major device number is %d, minor number %d.",statbuf.st_size,
! statbuf.st_blocks);
put_buf(window,buf,&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
break;
--- 247,255 ----
case(S_IFCHR):
put_buf(window,"This file represents a character device.",&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
! #if defined(major) || defined(sgi) || defined(isc)
! sprintf(buf," The major device number is %d, minor number %d.",major(statbuf.st_rdev), minor(statbuf.st_rdev));
! #else
! sprintf(buf," The major device number is %d, minor number %d.",statbuf.st_size,statbuf.st_blocks);
! #endif
put_buf(window,buf,&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
break;
***************
*** 249,254 ****
case(S_IFBLK):
put_buf(window,"This file represents a block device.",&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
! sprintf(buf," The major device number is %d, minor number %d.",statbuf.st_size,
! statbuf.st_blocks);
put_buf(window,buf,&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
break;
--- 256,264 ----
case(S_IFBLK):
put_buf(window,"This file represents a block device.",&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
! #if defined(major) || defined(sgi) || defined(isc)
! sprintf(buf," The major device number is %d, minor number %d.",major(statbuf.st_rdev), minor(statbuf.st_rdev));
! #else
! sprintf(buf," The major device number is %d, minor number %d.",statbuf.st_size,statbuf.st_blocks);
! #endif
put_buf(window,buf,&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
break;
***************
*** 261,264 ****
--- 271,279 ----
case(S_IFLNK):
put_buf(window,"This file is a symbolic link.",&row,max_row,0,A_NORMAL,FALSE,' ',FALSE) ;
+ break;
+ #endif
+ #if defined(S_IFSOCK)
+ case(S_IFSOCK):
+ put_buf(window,"This file is a socket.",&row,max_row,0,A_NORMAL,FALSE,' ',FALSE);
break;
#endif
*** ../D.maint.1.0/locate.c Wed Oct 7 13:52:50 1992
--- locate.c Wed Oct 7 13:40:10 1992
***************
*** 42,45 ****
--- 42,46 ----
/******************************************************************************/
+ #include "maint.h"
#ifdef ultrix
#include <cursesX.h>
***************
*** 48,52 ****
#endif
#include <ctype.h>
- #include "maint.h"
/******************************************************************************/
--- 49,52 ----
*** ../D.maint.1.0/main.c Wed Oct 7 13:53:12 1992
--- main.c Wed Oct 7 13:40:15 1992
***************
*** 142,145 ****
--- 142,146 ----
/******************************************************************************/
+ #include "maint.h" /* our very own header file */
#ifdef ultrix
#include <cursesX.h>
***************
*** 147,152 ****
--- 148,156 ----
#else
#include <curses.h>
+ #ifndef apollo
#include <sys/file.h>
#endif
+ #endif
+ #include <sys/types.h>
#include <sys/param.h>
#include <sys/stat.h>
***************
*** 238,242 ****
give_help();
! #if defined(SYSV) && !defined(sun)
extern char *getcwd();
--- 242,246 ----
give_help();
! #if (defined(SYSV) || defined(hpux)) && !defined(sun)
extern char *getcwd();
***************
*** 262,266 ****
u_short node_row_max, /* max. # of rows in nodes array */
node_col_max, /* max. # of columns in nodes array */
! cont_flag; /* set if continuing after suspend */
ARG_DEF args; /* run-time argument flags */
--- 266,271 ----
u_short node_row_max, /* max. # of rows in nodes array */
node_col_max, /* max. # of columns in nodes array */
! cont_flag, /* set if continuing after suspend */
! was_stopped; /* TRUE if coming back from a ^Z */
ARG_DEF args; /* run-time argument flags */
***************
*** 480,484 ****
dir_name = (char *) malloc(MAXPATHLEN+3);
! #if defined(SYSV) && !defined(sun)
getcwd(dir_name,MAXPATHLEN+2);
#else
--- 485,489 ----
dir_name = (char *) malloc(MAXPATHLEN+3);
! #if (defined(SYSV) || defined(hpux)) && !defined(sun)
getcwd(dir_name,MAXPATHLEN+2);
#else
***************
*** 652,655 ****
--- 657,677 ----
term_code = wgetch(main_win);
+ if(was_stopped)
+ {
+ term_code = 0; /* coming back after being stopped */
+ was_stopped = 0; /* make sure it's clear */
+ nonl();
+ cbreak();
+ noecho();
+ cursor_flag++;
+ clearok(main_win,TRUE);
+ touchwin(spec_win);
+ touchwin(main_win);
+ touchwin(stat_win);
+ wnoutrefresh(spec_win);
+ wnoutrefresh(main_win);
+ wnoutrefresh(stat_win);
+ }
+
if(mess_flag) /* was a message on the screen? */
{
***************
*** 751,755 ****
case(CARRIAGE_RETURN): /**************************************/
! /* carriage return */
/**************************************/
--- 773,777 ----
case(CARRIAGE_RETURN): /**************************************/
! case(KEY_ENTER): /* carriage return */
/**************************************/
***************
*** 1003,1006 ****
--- 1025,1029 ----
status = file_select(entptr->filename);
+ clearok(main_win,TRUE);
touchwin(main_win);
touchwin(spec_win);
***************
*** 1577,1580 ****
--- 1600,1604 ----
status = edit(entptr->filename);
+ clearok(main_win,TRUE);
touchwin(main_win);
touchwin(spec_win);
***************
*** 1636,1639 ****
--- 1660,1665 ----
}
+ clearok(main_win,TRUE);
+ clearok(stat_win,TRUE);
touchwin(main_win); /* to force it to be refreshed */
wnoutrefresh(main_win);
***************
*** 2045,2048 ****
--- 2071,2075 ----
put_options(stat_win);
+ clearok(main_win,TRUE);
touchwin(main_win);
touchwin(spec_win);
***************
*** 2057,2060 ****
--- 2084,2088 ----
/**************************************/
+ clearok(main_win,TRUE);
touchwin(spec_win);
touchwin(main_win);
***************
*** 2244,2247 ****
--- 2272,2276 ----
/* refresh the stat window because we overwrote it */
+ clearok(stat_win,TRUE);
touchwin(stat_win);
wrefresh(stat_win);
***************
*** 2327,2331 ****
put_pagnum(spec_win,curr_screen,num_screen);
! set_nodes(nodes,node_row_max,&scr_file,num_screen,new_screen,
num_file,slot_width,num_col);
--- 2356,2360 ----
put_pagnum(spec_win,curr_screen,num_screen);
! set_nodes(nodes,node_row_max,&scr_file,num_screen,curr_screen,
num_file,slot_width,num_col);
*** ../D.maint.1.0/maint.h.dist Wed Oct 7 13:52:56 1992
--- maint.h.dist Wed Sep 23 10:29:14 1992
***************
*** 58,63 ****
--- 58,69 ----
/* the following stuff you probably won't want to touch */
+ #if !defined(TRUE)
#define TRUE (1)
+ #endif
+
+ #if !defined(FALSE)
#define FALSE (0)
+ #endif
+
#define NULLPTR (char *) 0
***************
*** 222,227 ****
#define xmess(message,prefix_len) write_mess(message,A_REVERSE,prefix_len)
! #if defined(SYSV) && !defined(sun)
/* stuff that needs to be defined for System V */
--- 228,242 ----
#define xmess(message,prefix_len) write_mess(message,A_REVERSE,prefix_len)
! /* HPUX - in screen.c, DEV_BSHIFT remains undefined if dirent.h is included
! * before sys/param.h (which it is, since this header included dirent.h
! * and it is included in screen.c before sys/param.h
! */
+ #if defined(hpux) && !defined(DEV_BSHIFT)
+ #define DEV_BSHIFT 10
+ #endif
+
+ #if !defined(sun) && (defined(SYSV) || defined(SCO) || defined(AIX))
+
/* stuff that needs to be defined for System V */
***************
*** 228,232 ****
--- 243,250 ----
#define vfork fork /* no vfork() */
#define dbtob(db) ((unsigned)(db) << BSHIFT)
+
+ #if !defined(hpux)
#define R_OK 04 /* for access() */
+ #endif
#endif
***************
*** 238,242 ****
/******************************************************************************/
! #if defined(SYSV) && !defined(sun)
typedef unsigned long int u_long; /* I like underscores.... */
--- 256,260 ----
/******************************************************************************/
! #if defined(SYSV) && !defined(sun) && !defined(sgi) && !defined(hpux)
typedef unsigned long int u_long; /* I like underscores.... */
***************
*** 244,249 ****
--- 262,274 ----
typedef unsigned short int u_short;
typedef unsigned char u_char;
+
+ #if !defined(pyr) && (defined(apollo) && !defined(_TYPES_)) && !defined(isc)
typedef int gid_t,uid_t;
+ #endif
+ #endif
+
+ #if defined(hpux)
+ #define SIGWINCH SIGWINDOW
#endif
*** ../D.maint.1.0/maint.help Wed Oct 7 13:52:51 1992
--- maint.help Thu Sep 10 10:49:49 1992
***************
*** 19,24 ****
Sometimes there is more than one command to do the same thing. Multiple
commands are separated by commas. Upper and lower case are the same.
!
! Maint has a number of commands selecting the current file from those
on the screen. You may simply move around the screen by giving the
following motion commands.
--- 19,24 ----
Sometimes there is more than one command to do the same thing. Multiple
commands are separated by commas. Upper and lower case are the same.
!
! Maint has a number of commands for selecting the current file from those
on the screen. You may simply move around the screen by giving the
following motion commands.
***************
*** 40,44 ****
-,_ - go to next page of files (if you have more files
than can be printed in a single screenful)
!
Maint offers you a number of ways of moving from directory to directory:
--- 40,44 ----
-,_ - go to next page of files (if you have more files
than can be printed in a single screenful)
!
Maint offers you a number of ways of moving from directory to directory:
***************
*** 47,51 ****
s - SELECT current file to become the new directory.
If the file is not a directory, it is viewed instead.
!
The maint commands for changing individual files are:
--- 47,51 ----
s - SELECT current file to become the new directory.
If the file is not a directory, it is viewed instead.
!
The maint commands for changing individual files are:
***************
*** 56,60 ****
same directory only.
d - mark the current file for DELETE.
!
Maint allow you to change various characteristics of a file:
--- 56,60 ----
same directory only.
d - mark the current file for DELETE.
!
Maint allow you to change various characteristics of a file:
***************
*** 67,71 ****
bits (eg, 755) or by mimicing the permission string
(eg `rw-r--r--', etc.)
!
Commands which mark a file are not executed immediately. The marks
be marked
--- 67,71 ----
bits (eg, 755) or by mimicing the permission string
(eg `rw-r--r--', etc.)
!
Commands which mark a file are not executed immediately. The marks
be marked
***************
*** 76,80 ****
control-r - REBUILD the current directory. This
cancels all pending marks.
!
Maint will let you get various information and views of a file:
--- 76,80 ----
control-r - REBUILD the current directory. This
cancels all pending marks.
!
Maint will let you get various information and views of a file:
***************
*** 88,92 ****
PAGER environment, or the system default (less). If
the file is a directory, it is BRANCHED to (see 'b')
!
Maint will let you assign descriptive text to a file or directory.
The 't' command functions as follows:
--- 88,92 ----
PAGER environment, or the system default (less). If
the file is a directory, it is BRANCHED to (see 'b')
!
Maint will let you assign descriptive text to a file or directory.
The 't' command functions as follows:
***************
*** 100,104 ****
characters of description for any file in the directory. Select the
file with the motion commands, then type 't'.
!
Misc maint commands:
--- 100,104 ----
characters of description for any file in the directory. Select the
file with the motion commands, then type 't'.
!
Misc maint commands:
*** ../D.maint.1.0/maint.man.uu Wed Oct 7 13:53:52 1992
--- maint.man.uu Wed Oct 7 13:21:27 1992
***************
*** 0 ****
--- 1,300 ----
+ begin 644 maint.man
+ M"@H*(" @,2!*86X@,3DY,B @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @34%)3E0H,2D*"@H*(" @3D%-
+ M10H@(" @(&UA:6YT("T@1G5L;"US8W)E96X@9FEL92]D:7)E8W1O<GD@;6%I
+ M;G1E;F%N8V4*"B @(%-93D]04TE3"B @(" @;6%I;G0@6RUA8V1F9V]P<W1=
+ M(%LM4R!;7PAS7PAO7PAR7PAT+5\(9E\(:5\(95\(;%\(9%U="@H@("!$15-#
+ M4DE05$E/3@H@(" @(%\(;5\(85\(:5\(;E\(="!I<R!A(&9I;&4O9&ER96-T
+ M;W)Y(&UA:6YT96YA;F-E('5T:6QI='D@=&AA=" @8V]M8FEN97,@('1H92 @
+ M9G5N8RT*(" @("!T:6]N86QI='D@;V8@;6%N>2!W96QL+6MN;W=N(%5N:7@@
+ M=71I;&ET:65S+"!A9&1S('-O;64@;F5W(&-A<&%B:6QI=&EE<RP*(" @("!A
+ M;F0@<&%C:V%G97,@=&AE;2!I;G1O(&$@9G5L;"US8W)E96X@:6YT97)F86-E
+ M('1H870@9VEV97,@>6]U('1H92 @8V%P82T*(" @("!B:6QI='D@;V8@=V]R
+ M:VEN9R!W:71H(&5N=&ER92!D:7)E8W1O<FEE<R!A="!O;F4@=&EM92!I;G-T
+ M96%D(&]F('=O<FMI;F<*(" @("!W:71H(&$@9F5W(&9I;&5S(&%N9"!H879I
+ M;F<@=&\@<G5N(%\(;%\(<R@Q*2!T;R!S964@=&AE(&-U<G)E;G0@<W1A=&4@
+ M;V8@=&AE"B @(" @9&ER96-T;W)Y+@H*(" @("!$:7)E8W1O<FEE<R!A<F4@
+ M<')E<V5N=&5D(&%S(&$@<V5R:65S(&]F(&]N92!O<B!M;W)E('-C<F5E;G,L
+ M(&UA:VEN9R @:70*(" @("!P;W-S:6)L92 @=&\@(&%S<V]C:6%T92 @:6YD
+ M:79I9'5A;" @8V]M;6%N9',@('=I=&@@96%C:"!F:6QE+V1I<F5C=&]R>2X*
+ M(" @("!4:&5S92!C;VUM86YD<R!A<F4@;F]T(&%C='5A;&QY('!E<F9O<FUE
+ M9"!U;G1I;"!T:&4@9&ER96-T;W)Y("!I<R @(F5X92T*(" @("!C=71E9"(@
+ M(&%N9"!T:&5N(&%L;"!O9B!T:&4@8V]M;6%N9',@:6X@=&AE(&1I<F5C=&]R
+ M>2!W:6QL(&)E('!E<F9O<FUE9"X*(" @("!4:&ES(&%L;&]W<R!P;&5N='D@
+ M;V8@=&EM92!T;R!C:&%N9V4@;W(@8V%N8V5L(&-O;6UA;F1S('=I=&@@(&EN
+ M9&EV:61U86P*(" @("!F:6QE<R!B969O<F4@82!P;W-S:6)L92!C871A<W1R
+ M;W!H92X*"B @(" @3W1H97(@8V%P86)I;&ET:65S+"!S=6-H(&%S(&)R;W=S
+ M:6YG(&%N9"!E9&ET:6YG(&9I;&5S+"!C:&%N9VEN9R @9&ER96,M"B @(" @
+ M=&]R:65S+" @86YD("!A<W-O8VEA=&EN9R @(G1E>'0@9&5S8W)I<'1O<G,B
+ M('=I=&@@9FEL97,@86YD(&1I<F5C=&]R:65S"B @(" @;6%K92!I="!P;W-S
+ M:6)L92!M86YA9V4@;75L=&EP;&4@9FEL97,O9&ER96-T;W)I97,@<75I8VML
+ M>2P@96%S:6QY+" @86YD"B @(" @969F:6-I96YT;'DN"@H@("!/4%1)3TY3
+ M"@H@(" @("UA(" @26YC;'5D92!A;&P@9FEL97,L(&EN8VQU9&EN9R!T:&]S
+ M92!B96=I;FYI;F<@=VET:"!A('!E<FEO9" H+BDN"@H@(" @("UC(" @07-K
+ M(&9O<B!C;VYF:7)M871I;VX@8F5F;W)E(&5896-U=&EN9R!C;VUM86YD<R!I
+ M;B!A(&1I<F5C=&]R>2X*"B @(" @+60@("!);F-L=61E(&1A=&4@9FEE;&0@
+ M9F]R(&9I;&5S+@H*(" @(" M9B @($EN8VQU9&4@9G5L;"!I;F9O<FUA=&EO
+ M;B!F;W(@9FEL97,N("!);7!L:65S("UO9&=S<"X*"B @(" @+6<@("!);F-L
+ M=61E(&=R;W5P(&YA;64@9F]R(&9I;&5S+@H*(" @(" M;R @($EN8VQU9&4@
+ M;W=N97(@9FEE;&0@9F]R(&9I;&5S+@H*(" @(" M<" @($EN8VQU9&4@<')O
+ M=&5C=&EO;B H;6]D92D@9FEE;&0@9F]R(&9I;&5S+@H*(" @(" M<R @($EN
+ M8VQU9&4@<VEZ92 H:6X@8GET97,I(&9I96QD(&9O<B!F:6QE<RX*"B @(" @
+ M+70@("!3=&%R="!U<"!I;B!T97AT(&UO9&4N("!)9B!M86EN="YT9&8@(&1O
+ M97,@(&YO=" @97AI<W0@(&EN("!C=7)R96YT"B @(" @(" @("!D:7)E8W1O
+ M<GDL('1H:7,@9FQA9R!I<R!I9VYO<F5D+@H*(" @(" M02 @($%U=&\M861V
+ M86YC92!T:&4@8W5R<V]R(&]N($1E;&5T92!O<B!5;FUA<FL@8V]M;6%N9',N
+ M"@H@(" @("U&(" @36%R:W,@9&ER96-T;W)I97,@=VET:"!T<F%I;&EN9R!S
+ M;&%S:" H+RDL('-O8VME=',@=VET:"!A("!T<F%I;&EN9PH@(" @(" @(" @
+ M97%U86P@('-I9VX@("@]*2P@('-Y;6)O;&EC("!L:6YK<R!W:71H(&$@=')A
+ M:6QI;F<@870@<VEG;B H0"DL(&%N9 H@(" @(" @(" @97AE8W5T86)L92!F
+ M:6QE<R!W:71H(&$@=')A:6QI;F<@87-T97)I<VL@*"HI+@H*"@H@(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @,0H*"@H*"@H@("!-04E.5"@Q*2 @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @,2!*86X@,3DY,@H*"B @(" @+5-?"'-?"&]?"')?"'0M7PAF
+ M7PAI7PAE7PAL7PAD"B @(" @(" @4V]R="!F:6QE<R!B>2!S;W)T+69I96QD
+ M.R!L96=A;" @=F%L=64@(&%R93H@('-I>F4L("!D871E+" @9FEL96YA;64N
+ M"B @(" @(" @1&5F875L="!I<R!F:6QE;F%M92X*"B @($1)4U!,05D*(" @
+ M("!4:&4@<V-R965N(&ES(&1I=FED960@:6YT;R!T:')E92 @<F5G:6]N<RX@
+ M("!4:&4@(&9I<G-T("!R96=I;VX@(&ES("!T:&4*(" @("!D:7)E8W1O<GD@
+ M('-P96-I9FEC871I;VX@=VEN9&]W+"!A;&]N9R!T:&4@=&]P(&]F('1H92!S
+ M8W)E96XN("!4:&ES('=I;BT*(" @("!D;W<@:7,@='=O(&QI;F5S(&%N9"!C
+ M;VYT86EN<SH*"B @(" @;R @("!4:&4@8W5R<F5N="!D:7)E8W1O<GD@<W!E
+ M8VEF:6-A=&EO;BX@($EF('1H92!C=7)R96YT(&1I<F5C=&]R>2!I<R!A"B @
+ M(" @(" @("!D97-C96YD86YT("!O9B!Y;W5R(&AO;64@9&ER96-T;W)Y+"!T
+ M:&4@:&]M92!D:7)E8W1O<GD@<&]R=&EO;B!W:6QL"B @(" @(" @("!N;W0@
+ M8F4@<W!E8VEF:65D(&EN(&]R9&5R('1O('-A=F4@<W!A8V4N("!)9B!T:&4@
+ M8W5R<F5N=" @9&ER96-T;W)Y"B @(" @(" @("!I<R @>6]U<B @:&]M92 @
+ M9&ER96-T;W)Y+"!T:&4@9G5L;"!D:7)E8W1O<GD@<W!E8VEF:6-A=&EO;B!W
+ M:6QL(&)E"B @(" @(" @("!U<V5D+@H*(" @("!O(" @(%1H92!C=7)R96YT
+ M('!A9V4@86YD('1H92!T;W1A;"!N=6UB97(@;V8@<&%G97,@:6X@=&AE(&1I
+ M<F5C=&]R>2X*"B @(" @;R @("!4:&4@=&5X="!D97-C<FEP=&]R(&9O<B!T
+ M:&4@9&ER96-T;W)Y("AI9B!Y;W4@87)E(&EN(%1E>'0@;6]D92DN"@H@(" @
+ M(%1H92!M:61D;&4@<V5C=&EO;B!I<R!T:&4@;6%I;B @<V-R965N+" @86YD
+ M("!W:6QL("!C;VYT86EN("!I;F9O<FUA=&EO;@H@(" @(&%B;W5T("!T:&4@
+ M:6YD:79I9'5A;"!F:6QE<R!A;F0@9&ER96-T;W)I97,N("!%86-H(&9I;&4O
+ M9&ER96-T;W)Y(&]N('1H90H@(" @('-C<F5E;B!O8V-U<&EE<R!A(")S;&]T
+ M(BX@($5A8V@@9FEL92!S;&]T("!C86X@(&AA=F4@(&1I9F9E<F5N=" @8VAA
+ M<F%C+0H@(" @('1E<FES=&EC<RP@9&5P96YD:6YG(&]N(&9I;&5N86UE(&QE
+ M;F=T:"!A;F0@8V]M;6%N9',N"@H@(" @(&\@(" @268@9F]R(&%N>2!R96%S
+ M;VX@=&AE(&9U;&P@9FEL96YA;64@;V8@82!F:6QE('=O;B=T(&9I="!I;B @
+ M82 @9FEL90H@(" @(" @(" @<VQO="P@:70@=VEL;"!B92!F;&%G9V5D('=I
+ M=&@@86X@87-T97)I<VLN"@H@(" @(&\@(" @268@=&AE(&9I;&4@:&%S("!A
+ M;GD@(&-O;6UA;F1S("!A<W-O8VEA=&5D("!W:71H("!I="P@(&ET("!W:6QL
+ M("!B90H@(" @(" @(" @9&ES<&QA>65D("!I;B @8F]L9" @*&]R('!O<W-I
+ M8FQY(')E=F5R<V4L(&EF('EO=7(@=&5R;6EN86P@9&]E<VXG= H@(" @(" @
+ M(" @<W5P<&]R="!B;VQD:6YG*2X@($EF('1H92!F:6QE(&AA<R @8F5E;B @
+ M;6%R:V5D("!F;W(@(&1E;&5T:6]N+" @80H@(" @(" @(" @<W1R:6YG('-I
+ M9VYI9GEI;F<@<W5C:"!W:6QL(&%L<V\@87!P96%R+@H*(" @("!4:&4@8F]T
+ M=&]M('-E8W1I;VX@:7,@('1H92 @;W!T:6]N("!L:6YE("!T:&%T("!W:6QL
+ M("!D:7-P;&%Y("!T:&4@(&UO<W0*(" @("!C;VUM;VYL>2UU<V5D("!C;VUM
+ M86YD<R!W:71H('1H92!C:&%R86-T97(@=7-E9"!T;R!I;G9O:V4@=&AE;2!D
+ M:7-P;&%Y960*(" @("!I;B!B;VQD("AO<B!R979E<G-E*2X@(%1H92!N=6UB
+ M97(@;V8@(&9I;&5S("!A;F0@('1H92 @=&]T86P@(&YU;6)E<B @;V8*(" @
+ M("!B;&]C:W,@:6X@=&AE(&1I<F5C=&]R>2!A<F4@86QS;R!D:7-P;&%Y960N
+ M"@H@("!&14%455)%4PH@(" @($UO=FEN9R!!<F]U;F0N"@H@(" @(%1H97)E
+ M(&%R92!A(&YU;6)E<B!O9B!D:69F97)E;G0@=V%Y<R @=&\@(&UO=F4@(&%R
+ M;W5N9" @=&AE("!S8W)E96X@(&%N9 H@(" @(&-H86YG92!T:&4@8W5R<F5N
+ M="!S8W)E96XN("!4:&4@9F]L;&]W:6YG('1A8FQE(&1E<V-R:6)E<R!T:&4@
+ M:V5Y<W1R;VME<PH@(" @('1H870@8V%N(&)E('5S960[(&)E(&%W87)E('1H
+ M870@;F]T(&%L;"!K97ES(&UA>2 @8F4@(&1E9FEN960@(&]N("!E=F5R>0H@
+ M(" @('1E<FUI;F%L+B @268@=&AE<F4@:7,@82!K97D@=&AA="!L;V]K<R!L
+ M:6ME(&ET(&UI9VAT('=O<FLL('1R>2!I="X@.BTI"@H@(" @(')I9VAT("AM
+ M;W9E(')I9VAT(&]N92!C;VQU;6XI"B @(" @(" @("!L+"!2:6=H="!!<G)O
+ M=RP@4W!A8V4L(%1A8BP@1W)E871E<B!4:&%N(#X*"B @(" @;&5F=" H;6]V
+ M92!L969T(&]N92!C;VQU;6XI"B @(" @(" @("!H+"!,969T($%R<F]W+"!,
+ M97-S(%1H86X@/ H*(" @("!U<" H;6]V92!U<"!O;F4@<F]W*0H@(" @(" @
+ M(" @:RP@57 @07)R;W<L($-A<F5T(%X*"@H*(" @,@H*"@H*"@H@(" Q($IA
+ M;B Q.3DR(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @("!-04E.5"@Q*0H*"B @(" @9&]W;B H;6]V92!D
+ M;W=N(&]N92!R;W<I"B @(" @(" @("!J+"!$;W=N($%R<F]W"@H@(" @('!L
+ M=7,@<&%G92 H9V\@=&\@;F5X="!S8W)E96X@:6X@9&ER96-T;W)Y*0H@(" @
+ M(" @(" @*RP@/2P@3F5X="!38W)E96XL(&-O;G1R;VPM1@H*(" @("!M:6YU
+ M<R!P86=E("AG;R!T;R!P<F5V:6]U<R!S8W)E96X@:6X@9&ER96-T;W)Y*0H@
+ M(" @(" @(" @+2P@7RP@4')E=FEO=7,@4V-R965N+"!C;VYT<F]L+4(*"B @
+ M(" @9V\@=&\@<&%G92 H9V\@=&\@82!S<&5C:69I8R!S8W)E96X@:6X@9&ER
+ M96-T;W)Y*0H@(" @(" @(" @8V]N=')O;"U'.R!P<F]M<'0@=VEL;"!A<'!E
+ M87(@9F]R('-P96-I9FEC('!A9V4@;G5M8F5R+@H*(" @("!&:6QE($-O;6UA
+ M;F1S+@H*(" @("!%86-H(&9I;&4O9&ER96-T;W)Y(&-A;B!O;F4@;W(@;6]R
+ M92!I;F1I=FED=6%L(&-O;6UA;F1S(&%S<V]C:6%T960@('=I=&@*(" @("!I
+ M="X@("!4:&5S92 @8V]M;6%N9',@=VEL;"!N;W0@8F4@<&5R9F]R;65D('5N
+ M=&EL('EO=2!A8W1U86QL>2 B97AE8W5T92(*(" @("!T:&5M('=I=&@@=&AE
+ M(%AE8W5T92!C;VUM86YD(" H<V5E("!B96QO=RDN(" @5&\@(&%D9" @82 @
+ M8V]M;6%N9" @=&\@(&$*(" @("!F:6QE+V1I<F5C=&]R>2P@<&]S:71I;VX@
+ M=&AE(&-U<G-O<B!N97AT('1O(&ET(&%N9"!P<F5S<R!T:&4@87!P<F]P<FEA
+ M=&4*(" @("!K97DN("!9;W4@=VEL;"!B92!P<F]M<'1E9"!F;W(@86YY(&YE
+ M8V5S<V%R>2!I;F9O<FUA=&EO;BX*"B @(" @5&\@<V5E('=H870@8V]M;6%N
+ M9',@87)E("!A<W-O8VEA=&5D("!W:71H("!A("!F:6QE+V1I<F5C=&]R>2P@
+ M('5S92 @=&AE"B @(" @26YF;W)M871I;VX@8V]M;6%N9"X*"B @(" @5&AE
+ M(&EN9&EV:61U86P@8V]M;6%N9',@86YD(&%P<')O<')I871E(&ME>7-T<F]K
+ M97,@87)E.@H*(" @("!#;W!Y(&9I;&4@*$,@;W(@8RD*(" @(" @(" @($-O
+ M<'D@9FEL92!T;R!A;F]T:&5R(&9I;&4N("!);G9A;&ED(&9O<B!D:7)E8W1O
+ M<FEE<RX*"B @(" @1&5L971E(&9I;&4@*$0L(&0L(%)E;6]V92D*(" @(" @
+ M(" @($1E;&5T92!F:6QE+V1I<F5C=&]R>2X*"B @(" @4F5N86UE(&9I;&4@
+ M*%(@;W(@<BD*(" @(" @(" @(%)E;F%M92!T:&4@9FEL92!T;R!A(&YE=R!F
+ M:6QE;F%M92X*"B @(" @0VAA;F=E(&=R;W5P("A'(&]R(&<I"B @(" @(" @
+ M("!#:&%N9V4@9W)O=7 @;V8@9FEL92]D:7)E8W1O<GDN("!5<W5A;&QY(&]N
+ M;'D@=V]R:W,@(&9O<B @<W5P97)U<V5R"B @(" @(" @("!O;B!N;VXM4WES
+ M=&5M(%8@;6%C:&EN97,N"@H@(" @($-H86YG92!O=VYE<B H;RD*(" @(" @
+ M(" @($-H86YG92!O=VYE<B!O9B!F:6QE+V1I<F5C=&]R>2X@(%5S=6%L;'D@
+ M;VYL>2!W;W)K<R @9F]R("!S=7!E<G5S97(*(" @(" @(" @(&]N(&YO;BU3
+ M>7-T96T@5B!M86-H:6YE<RX*"B @(" @0VAA;F=E('!R;W1E8W1I;VX@*% @
+ M;W(@<"D*(" @(" @(" @($-H86YG92!T:&4@<')O=&5C=&EO;B H;6]D92D@
+ M;V8@82!F:6QE+V1I<F5C=&]R>2X@(%1H92!M;V1E(&-A;B @8F4*(" @(" @
+ M(" @('-P96-I9FEE9" @:6X@(&]N92 @;V8@='=O(&9O<FUS.B @,2D@=&AE
+ M('=A>2!I="!A<'!E87)S(&]N('-C<F5E;BP*(" @(" @(" @(&DN92X@<G<M
+ M<BTM<BTM+"!O<B R*2!O8W1A;"!F;W)M870L(&DN92X@-S4U+@H*(" @("!2
+ M97!E870@<')E=FEO=7,@9FEL92!C;VUM86YD("@N*0H@(" @(" @(" @4F5P
+ M96%T('1H92!L87-T(&9I;&4@8V]M;6%N9"!S<&5C:69I960@:6X@=&AE(&-U
+ M<G)E;G0@9&ER96-T;W)Y+@H*(" @("!497AT(&1E<V-R:7!T;W(@*%0@;W(@
+ M="D*(" @(" @(" @($%D9"]C:&%N9V4@82!T97AT(&1E<V-R:7!T;W(@9F]R
+ M(&$@9FEL92]D:7)E8W1O<GDN("!3964@(&)E;&]W("!F;W(*(" @(" @(" @
+ M(&UO<F4@:6YF;W)M871I;VX@86)O=70@=&5X="!D97-C<FEP=&]R<RX*"@H*
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(#,*"@H*"@H*(" @34%)
+ M3E0H,2D@(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @(#$@2F%N(#$Y.3(*"@H@(" @($]T:&5R($-O;6UA
+ M;F1S+@H*(" @("!/=&AE<B!C;VUM86YD<R!A;F0@;F]N+65896-U=&%B;&4@
+ M9FEL92!C;VUM86YD<R!A=F%I;&%B;&4@:6X@7PAM7PAA7PAI7PAN7PAT(&%R
+ M93H*"B @(" @17-C87!E('1O('-H96QL("@A*0H@(" @(" @(" @4W1A<G1S
+ M('5P(&$@<W5B<VAE;&PN("!%>&ET:6YG('1H92!S=6)S:&5L;"!W:6QL(&-A
+ M=7-E(&$@<F5T=7)N("!T;PH@(" @(" @(" @7PAM7PAA7PAI7PAN7PAT+@H*
+ M(" @("!396%R8V@@9F]R(&$@9FEL92 H+RD*(" @(" @(" @(%-E87)C:"!F
+ M;W(@82!F:6QE;F%M92!I;B!T:&4@8W5R<F5N="!D:7)E8W1O<GDN("!!('!R
+ M969I>"!S96%R8V@@:7,*(" @(" @(" @(&1O;F4@<V\@;VYL>2!E;F]U9V@@
+ M;V8@=&AE(&9I;&5N86UE('1O(&ED96YT:69Y(&ET(&ES(&YE8V5S<V%R>2X*
+ M"B @(" @4F5B=6EL9"!D:7)E8W1O<GD@*&-O;G1R;VPM4BD*(" @(" @(" @
+ M(%)E8G5I;&0@=&AE(&-U<G)E;G0@9&ER96-T;W)Y+"!D:7-C87)D:6YG(&%L
+ M;"!F:6QE(&-O;6UA;F1S(&9O<B!T:&4*(" @(" @(" @(&1I<F5C=&]R>2X@
+ M("!4:&ES("!I<R @<V]M971I;65S("!N96-E<W-A<GD@:6X@=F5R>2!V;VQA
+ M=&EL92!D:7)E8RT*(" @(" @(" @('1O<FEE<R!W:&5R92!T:&4@:6YF;W)M
+ M871I;VX@:6X@7PAM7PAA7PAI7PAN7PAT(&UI9VAT(&YO="!B92!I;B!S>6YC
+ M('=I=&@@=&AE"B @(" @(" @("!C=7)R96YT('-T871E(&]F('1H92!D:7)E
+ M8W1O<GDN"@H@(" @($5D:70@9FEL92 H12!O<B!E*0H@(" @(" @(" @161I
+ M="!T:&4@8W5R<F5N="!F:6QE+B @5&AE($5$251/4B @96YV:7)O;FUE;G0@
+ M('9A<FEA8FQE("!W:6QL("!B90H@(" @(" @(" @=7-E9"!F;W(@=&AE(&5D
+ M:71O<B!I9B!I="!I<R!D969I;F5D+B @5&AE(&1E9F%U;'0@:7,@=FDN"@H@
+ M(" @($9I;FES:"!D:7)E8W1O<GD@*$8@;W(@9BD*(" @(" @(" @($5X:70@
+ M=&AE(&-U<G)E;G0@9&ER96-T;W)Y(&%N9"!R971U<FX@=&\@<')E=FEO=7,@
+ M9&ER96-T;W)Y(&EF("!O;F4*(" @(" @(" @(&5X:7-T<RX@("!)9B!T:&4@
+ M8W5R<F5N="!D:7)E8W1O<GD@:7,@=&AE('1O<"UL979E;"!D:7)E8W1O<GDL
+ M('1H:7,*(" @(" @(" @(&ME>2!I<R!I;G9A;&ED+B @268@86YY(&-O;6UA
+ M;F1S(&5X:7-T(&EN("!T:&4@(&-U<G)E;G0@(&1I<F5C=&]R>2P*(" @(" @
+ M(" @(%\(;5\(85\(:5\(;E\(="!W:6QL(&%S:R!F;W(@8V]N9FER;6%T:6]N
+ M(&)E9F]R92!L96%V:6YG('1H92!D:7)E8W1O<GDN"@H@(" @(%%U:70@*%$@
+ M;W(@<2D*(" @(" @(" @($5X:70@7PAM7PAA7PAI7PAN7PAT(&EM;65D:6%T
+ M96QY+B @268@9FEL92!C;VUM86YD<R!E>&ES="!I;B @7PAA7PAN7PAY("!D
+ M:7)E8W1O<GDL"B @(" @(" @("!?"&U?"&%?"&E?"&Y?"'0@=VEL;"!A<VL@
+ M9F]R(&-O;F9I<FUA=&EO;B!B969O<F4@<75I='1I;F<N"@H@(" @($EN9F]R
+ M;6%T:6]N("A)(&]R(&DI"B @(" @(" @("!':79E(&9U;&P@(&EN9F]R;6%T
+ M:6]N("!O;B @9FEL92]D:7)E8W1O<GD@(&EN8VQU9&EN9R @<VEZ92P@(&UO
+ M9&4L"B @(" @(" @("!A8V-E<W,@(&1A=&4L("!M;V1I9FEC871I;VX@9&%T
+ M92P@8W)E871I;VX@9&%T92P@;W=N97(L(&=R;W5P+"!T97AT"B @(" @(" @
+ M("!D97-C<FEP=&]R("AI9B!A;GDI+"!A;F0@86YY(&9I;&4@8V]M;6%N9',N
+ M"@H@(" @(%5N;6%R:R!F:6QE("A5(&]R('4I"B @(" @(" @("!#86YC96P@
+ M86QL(&UA<FMS(&9O<B!T:&4@9FEL92]D:7)E8W1O<GDN"@H@(" @(%-E;&5C
+ M="!F:6QE+V1I<F5C=&]R>2 H4RP@<RP@4V5L96-T*0H@(" @(" @(" @268@
+ M4V5L96-T:6YG(&$@9FEL92P@:6YV;VME('1H92!A('!A9V5R(&]N(&ET('1O
+ M(&%L;&]W('1H92!F:6QE("!T;PH@(" @(" @(" @8F4@(&)R;W=S960N("!4
+ M:&4@4$%'15(@96YV:7)O;FUE;G0@=F%R:6%B;&4@:7,@8VAE8VME9"!F:7)S
+ M="X@("!)9@H@(" @(" @(" @4$%'15(@:7,@;F]T('-E="P@=&AE(&1E9F%U
+ M;'0@<&%G97(@9F]R('1H92!S>7-T96T@:7,@=7-E9"X@("!%>&ET+0H@(" @
+ M(" @(" @:6YG('1H92!P86=E<B!W:6QL(&-A=7-E(&$@<F5T=7)N('1O(%\(
+ M;5\(85\(:5\(;E\(="X*"B @(" @(" @("!)9B!396QE8W1I;F<@82!D:7)E
+ M8W1O<GDL(&-H86YG92 @=&\@('1H870@(&1I<F5C=&]R>2P@('-A=FEN9R @
+ M=&AE"B @(" @(" @("!S=&%T92!O9B!T:&4@8W5R<F5N="!D:7)E8W1O<GDN
+ M"@H@(" @(%)E<&%I;G0*(" @(" @(" @(%)E9G)E<V@@=&AE(&-U<G)E;G0@
+ M<V-R965N+@H*(" @("!/<'1I;VYS"B @(" @(" @("!#:&%N9V4@=&AE(&-U
+ M<G)E;G0@8V]N9FEG=7)A=&EO;B!F;W(@;6%I;G0N("!4:&4@0V]N9FEG=7)A
+ M=&EO;B!-96YU"@H*(" @- H*"@H*"@H@(" Q($IA;B Q.3DR(" @(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M("!-04E.5"@Q*0H*"B @(" @(" @("!W:6QL(&)E(&1I<W!L87EE9"P@<VAO
+ M=VEN9R!T:&4@8W5R<F5N="!C;VYF:6=U<F%T:6]N('9A;'5E<RX@(%5S92!J
+ M"B @(" @(" @("!A;F0@:R!T;R!S96QE8W0@82!P87)A;65T97(@*&]R('5S
+ M92!T:&4@(')U;BUT:6UE("!A<F=U;65N=" @;&5T=&5R"B @(" @(" @(" H
+ M9F]R("!E>&%M<&QE+" @9R @9F]R("!'<F]U<"DI(&%N9"!P<F5S<R!T:&4@
+ M<W!A8V4@8F%R('1O('1U<FX@=&AE"B @(" @(" @("!P87)A;65T97(@;VXO
+ M;V9F+B @16YT97(@8V]N=')O;"U$('1O(')E='5R;B!T;R!T:&4@(&UA:6X@
+ M(&1I<W!L87DN"B @(" @(" @("!4:&4@9&ES<&QA>2!W:6QL(&)E('5P9&%T
+ M960@=&\@<F5F;&5C="!T:&4@;F5W(&-O;F9I9W5R871I;VXN"@H@(" @(%1E
+ M>'0@1&5S8W)I<'1O<G,N"@H@(" @(%\(;5\(85\(:5\(;E\(="!H87,@=&AE
+ M(&%B:6QI='D@=&\@;6%I;G1A:6X@97AT96YD960@=&5X='5A;"!D97-C<FEP
+ M=&]R<R!F;W(@9FEL97,*(" @("!W:71H:6X@(&$@(&=I=F5N("!D:7)E8W1O
+ M<GDN(" @5VAA=" @=&5X="!D97-C<FEP=&]R<R!D;R!I<R!A;&QO=R!Y;W4@
+ M=&\*(" @("!A<W-O8VEA=&4@=7 @=&\@82 T,"UC:&%R86-T97(@9&5S8W)I
+ M<'1I;VX@=VET:"!A;GD@9FEL92!I;B!A(&1I<F5C=&]R>2P*(" @("!A;&]N
+ M9R @=VET:" @:&%V:6YG("!U<" @=&\@(&$@-S M8VAA<F%C=&5R(&1E<V-R
+ M:7!T:6]N(&]F('1H92!D:7)E8W1O<GD*(" @("!I='-E;&8N("!4:&ES(&ES
+ M('!A<G1I8W5L87)L>2!U<V5F=6P@=VAE;B!M86EN=&%I;FEN9R!D:7)E8W1O
+ M<FEE<R!W:71H(&$*(" @("!L87)G92!N=6UB97(@;V8@9FEL97,N("!4;R!U
+ M<V4@=&AE(&5X=&5N9&5D(&9I;&4@9&5S8W)I<'1O<B!F86-I;&ET>2P@9&\*
+ M(" @("!T:&4@9F]L;&]W:6YG.@H*(" @(" Q+B @(%)U;B!?"&U?"&%?"&E?
+ M"&Y?"'0N"@H@(" @(#(N(" @5'EP92!A(%0@*%1E>'0I(&-O;6UA;F0N"@H@
+ M(" @(#,N(" @7PAM7PAA7PAI7PAN7PAT('=I;&P@87-K"B @(" @(" @("!4
+ M97AT(&1E<V-R:7!T;W(@9FEL92!M86EN="YT9&8@9&]E<R!N;W0@97AI<W0N
+ M("!#<F5A=&4@:70@6WE=/PH*(" @(" T+B @(%)E<W!O;F0@=VET:"!S;VUE
+ M=&AI;F<@;W1H97(@=&AA;B @3B @;W(@(&X@(&9O<B @=&AE("!F:6QE("!T
+ M;R @8F4*(" @(" @(" @(&-R96%T960N"@H@(" @(#4N(" @7PAM7PAA7PAI
+ M7PAN7PAT('=I;&P@=&AE;B!A<VL*(" @(" @(" @(%1E>'0@9&5S8W)I<'1O
+ M<B!F;W(@9&ER96-T;W)Y.@H*(" @(" V+B @($5N=&5R(&$@=&5X="!D97-C
+ M<FEP=&]R("AU<"!T;R W,"!C:&%R86-T97)S*2 @9F]R("!T:&4@($1)4D5#
+ M5$]262X*(" @(" @(" @(%1H:7,@=VEL;"!S97)V92!A<R!A(&1E<V-R:7!T
+ M;W(@;V8@=&AE(&=R;W5P(&]F(&9I;&5S(&EN('1H92!$25)%0RT*(" @(" @
+ M(" @(%1/4ED@86YD('=I;&P@87!P96%R(&%T('1H92!T;W @;V8@=&AE('-C
+ M<F5E;BX*"B @(" @-RX@("!?"&U?"&%?"&E?"&Y?"'0@=VEL;"!T:&5N(&%S
+ M:PH@(" @(" @(" @0V]M;6%N9',@=VEL;"!B92!W:7!E9"!O=70N("!E6&5C
+ M=71E('1H96T_(%MY70H*(" @(" X+B @($5N=&5R('-O;65T:&EN9R!O=&AE
+ M<B!T:&%N($X@;W(@;B!T;R!H879E(&%L;"!O9B!T:&4@(&-U<G)E;G0@(&9I
+ M;&4*(" @(" @(" @(&-O;6UA;F1S(&5896-U=&5D('=H96X@=&AE('1E>'0@
+ M9&5S8W)I<'1O<B!F:6QE(&UA:6YT+G1D9BX*"B @(" @.2X@("!?"&U?"&%?
+ M"&E?"&Y?"'0@=VEL;" @<F5B=6EL9" @=&AE("!D:7)E8W1O<GD@(&EN9F]R
+ M;6%T:6]N("!A;F0@(')E8G5I;&0@('1H90H@(" @(" @(" @<V-R965N+" @
+ M:6YC;'5D:6YG("!T:&4@=&5X="!D97-C<FEP=&]R<R!F;W(@=&AE(&1I<F5C
+ M=&]R>2!A;F0@=&5X= H@(" @(" @(" @9&5S8W)I<'1O<B!F:6QE(&ET<V5L
+ M9BP@<')O=FED960@=&AE>2!W:6QL(&9I="!O;B!T:&4@<V-R965N+B @179E
+ M;@H@(" @(" @(" @:68@('1H97D@8V%N)W0@9FET(&]N('1H92!S8W)E96XL
+ M('1H97D@87)E('-T:6QL(&%V86EL86)L92!F;W(@96%C: H@(" @(" @(" @
+ M9FEL92!V:6$@=&AE($D@*$EN9F\I(&-O;6UA;F0N"@H@(" @(%1H92!T97AT
+ M(&1E<V-R:7!T;W(@9FEL92!H87,@;F]W(&)E96X@8W)E871E9"X@(%1O(&%D
+ M9"!O<B!M;V1I9GD@82 @=&5X= H@(" @(&1E<V-R:7!T;W(@(&9O<B @82!F
+ M:6QE+"!M;W9E('1O(&$@=&AE(&9I;&4@86YD('1Y<&4@82!4("A497AT*2!C
+ M;VUM86YD+@H@(" @(%EO=2!W:6QL(&)E('!R;VUP=&5D(&9O<B!T:&4@=&5X
+ M="!D97-C<FEP=&]R(&9O<B!T:&4@9FEL92X@($ET("!W:6QL("!B90H@(" @
+ M('5P9&%T960@=VAE;B!Y;W4@6&5C=71E('1H92!C;VUM86YD<R!F;W(@=&AE
+ M(&1I<F5C=&]R>2X*"B @(" @3VX@<W5B<V5Q=65N="!U<V5S(&]F(%\(;5\(
+ M85\(:5\(;E\(="P@=&5X="!M;V1E(&UA>2!B92 @96YT97)E9" @8GD@(&]N
+ M92 @;V8@('1W;PH@(" @(&UE=&AO9',Z"@H@(" @(#$N(" @57-E('1H92 M
+ M="!O;B!T:&4@8V]M;6%N9"!L:6YE+B @5&AI<R!W:6QL(&-A=7-E(%\(;5\(
+ M85\(:5\(;E\(="!T;R!U<V4@('1E>'0*"@H@(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @
+ M(" @(" @(" @(" @-0H*"@H*"@H@("!-04E.5"@Q*2 @(" @(" @(" @(" @
+ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @,2!*
+ M86X@,3DY,@H*"B @(" @(" @("!M;V1E(&EF('1H92!F:6QE(&UA:6YT+G1D
+ M9B!E>&ES=',N"@H@(" @(#(N(" @57-E('1H92!4("A497AT*2!C;VUM86YD
+ M+B @06=A:6XL(&EF(&UA:6YT+G1D9B!E>&ES=',L("!?"&U?"&%?"&E?"&Y?
+ M"'0@('=I;&P*(" @(" @(" @(&5N=&5R('1E>'0@;6]D92X*"B @(" @16ET
+ M:&5R('=A>2P@;VYC92!I;B!T97AT(&UO9&4L('1H92!4("A497AT*2!C;VUM
+ M86YD(&UA>2!B92!U<V5D("!T;R @861D"B @(" @;W(@8VAA;F=E('1H92!T
+ M97AT(&1E<V-R:7!T;W(@9F]R(&$@9FEL92X*"B @($5.5DE23TY-14Y4"B @
+ M(" @141)5$]2(" @=7-E9"!F;W(@161I="!C;VUM86YD"B @(" @4$%'15(@
+ M(" @<&%G97(@=&\@=7-E(&9O<B!396QE8W0@8V]M;6%N9"!O;B!A(&9I;&4*
+ M(" @("!32$5,3" @("!S:&5L;"!T;R!I;G9O:V4@9F]R('-H96QL(&5S8V%P
+ M97,*"B @(%)%4U1224-424].4PH@(" @($-O=6QD(&5X<&5R:65N8V4@=6YP
+ M<F5D:6-T86)L92!R97-U;'1S(&]N('1E<FUI;F%L<R!W:71H('1H870@(&%R
+ M92 @;&5S<PH@(" @('1H86X@,C0@6" X,"X*"B @(" @5&AE<F4@:7,@;F\@
+ M;&EM:71A=&EO;B!O;B!T:&4@;G5M8F5R(&]F(&9I;&5S(&EN(&$@9&ER96-T
+ M;W)Y('1H870@(%\(;5\(85\(:5\(;E\(= H@(" @(&-A;B @:&%N9&QE(&]T
+ M:&5R('1H86X@=&AE(&%M;W5N="!O9B!M96UO<GD@=&AA="!I="!C86X@<F5Q
+ M=65S="!F<F]M('1H90H@(" @(&]P97)A=&EN9R!S>7-T96TN"@H@(" @($%S
+ M(&]F('1H:7,@=W)I=&EN9RP@=&AE(&9U;F-T:6]N(&%N9"!A<G)O=R!K97ES
+ M("!W;VXG=" @=V]R:R @;VX@(%5L=')I> H@(" @(#,N,"X@.BTH"@H@("!3
+ M144@04Q33PH@(" @(%\(8U\(:%\(;5\(;U\(9"@Q*2P@7PAC7PAH7PAG7PAR
+ M7PAP*#$I+"!?"&-?"&A?"&]?"'=?"&XH,2DL("!?"&-?"'-?"&@H,2DL("!?
+ M"&U?"&]?"')?"&4H,2DL("!?"&Q?"',H,2DL("!?"&U?"'8H,2DL("!?"')?
+ M"&TH,2DL"B @(" @7PAS7PAH*#$I+@H*(" @05542$]2"B @(" @3&5O;F%R
+ M9"!*+B!096ER8V4@0"!797-T97)N($UI8VAI9V%N(%5N:79E<G-I='D@06-A
+ M9&5M:6,@0V]M<'5T:6YG("!397(M"B @(" @=FEC97,@*'!E:7)C94!G=RYW
+ M;6EC:"YE9'4I+@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*(" @-@H*"ALY
+ "&SEC
+
+ end
*** ../D.maint.1.0/mark.c Wed Oct 7 13:53:00 1992
--- mark.c Wed Oct 7 13:40:18 1992
***************
*** 45,48 ****
--- 45,49 ----
/******************************************************************************/
+ #include "maint.h"
#include <ctype.h>
#include <math.h>
***************
*** 56,60 ****
#include <grp.h>
#include <pwd.h>
- #include "maint.h"
/******************************************************************************/
--- 57,60 ----
***************
*** 230,234 ****
/******* FORMAL PARAMETERS *******/
WINDOW *window; /* where to read/write */
! register ENT_DEF *ent; /* entry for file to be deleted */
u_short command; /* either RENAME or COPY */
char *prev_str; /* string to use from mark_repeat() */
--- 230,234 ----
/******* FORMAL PARAMETERS *******/
WINDOW *window; /* where to read/write */
! register ENT_DEF *ent; /* entry for file to be copy/renamed */
u_short command; /* either RENAME or COPY */
char *prev_str; /* string to use from mark_repeat() */
***************
*** 267,272 ****
strcpy(buf,prev_str); /* use string from mark_repeat() */
! length = strlen(buf);
/* ok, we have a filename; now determine if we need to allocate a command
* structure for this file or if one already exists from a previous command
--- 267,276 ----
strcpy(buf,prev_str); /* use string from mark_repeat() */
! /* the new name could be a directory, and then we will need room for
! * the original file name, a slash, and a NUL
! */
+ length = strlen(buf) + strlen(ent->filename) + 2;
+
/* ok, we have a filename; now determine if we need to allocate a command
* structure for this file or if one already exists from a previous command
***************
*** 305,313 ****
free(tptr->copy_name);
! /* now allocate some new memory to hold the longer filename
! * AND the nul character
! */
! tptr->copy_name = (char *) malloc((u_int) (length + 1));
if(tptr->copy_name == NULL)
--- 309,315 ----
free(tptr->copy_name);
! /* now allocate some new memory to hold the longer filename */
! tptr->copy_name = (char *) malloc((u_int) length);
if(tptr->copy_name == NULL)
***************
*** 333,341 ****
free(tptr->ren_name);
! /* now allocate some new memory to hold the longer filename
! * AND the nul character
! */
! tptr->ren_name = (char *) malloc((u_int) (length + 1));
if(tptr->ren_name == NULL)
--- 335,341 ----
free(tptr->ren_name);
! /* now allocate some new memory to hold the longer filename */
! tptr->ren_name = (char *) malloc((u_int) length);
if(tptr->ren_name == NULL)
*** ../D.maint.1.0/mem.c Wed Oct 7 13:52:52 1992
--- mem.c Wed Oct 7 13:40:21 1992
***************
*** 42,45 ****
--- 42,46 ----
/******************************************************************************/
+ #include "maint.h"
#include <malloc.h>
#if defined(SYSV) || !defined(sun)
***************
*** 46,50 ****
#include <stdio.h>
#endif
- #include "maint.h"
/******************************************************************************/
--- 47,50 ----
*** ../D.maint.1.0/misc.c Wed Oct 7 13:53:07 1992
--- misc.c Wed Oct 7 13:40:25 1992
***************
*** 51,54 ****
--- 51,55 ----
/******************************************************************************/
+ #include "maint.h"
#ifdef ultrix
#include <cursesX.h>
***************
*** 66,70 ****
#include <ctype.h>
#include <varargs.h>
- #include "maint.h"
#include <sys/stat.h>
--- 67,70 ----
***************
*** 128,132 ****
make_ent(),
! #if defined(SYSV) && !defined(sun)
rename(),
#endif
--- 128,132 ----
make_ent(),
! #if defined(SYSV) && !defined(sun) && !defined(SCO)
rename(),
#endif
***************
*** 774,778 ****
{ /*** get_dir ***/
/******** LOCAL VARIABLES ********/
! #if !defined(SYSV)
register struct direct *dir_ent; /* pointer to directory file entry */
#else
--- 774,778 ----
{ /*** get_dir ***/
/******** LOCAL VARIABLES ********/
! #if !defined(SYSV) && !defined(hpux) && !defined(AIX)
register struct direct *dir_ent; /* pointer to directory file entry */
#else
***************
*** 866,870 ****
register DIR *dptr; /* pointer to directory file entry */
register short count; /* number of files in directory */
! #if !defined(SYSV)
register struct direct *dir_ent; /* pointer to directory file entry */
#else
--- 866,870 ----
register DIR *dptr; /* pointer to directory file entry */
register short count; /* number of files in directory */
! #if !defined(SYSV) && !defined(hpux) && !defined(AIX)
register struct direct *dir_ent; /* pointer to directory file entry */
#else
***************
*** 1035,1039 ****
*str = 'b'; /* block special file */
break;
! #if !defined(SYSV) || defined(sun)
case(S_IFLNK):
*str = 'l'; /* symbolic link */
--- 1035,1039 ----
*str = 'b'; /* block special file */
break;
! #if defined(S_IFLNK)
case(S_IFLNK):
*str = 'l'; /* symbolic link */
***************
*** 1040,1043 ****
--- 1040,1047 ----
break;
#endif
+ #if defined(S_IFSOCK)
+ case(S_IFSOCK):
+ *str = 's'; /* symbolick link */ break;
+ #endif
default:
*str = '-';
***************
*** 1473,1477 ****
switch(mode & S_IFMT)
{
! #if !defined(SYSV) || defined(sun)
case(S_IFLNK):
return(LINK);
--- 1477,1481 ----
switch(mode & S_IFMT)
{
! #if defined(S_IFLNK)
case(S_IFLNK):
return(LINK);
***************
*** 1485,1489 ****
case(S_IFBLK):
return(BLOCK);
! #if !defined(SYSV) || defined(sun)
case(S_IFSOCK):
return(SOCKET);
--- 1489,1493 ----
case(S_IFBLK):
return(BLOCK);
! #if defined(S_IFSOCK)
case(S_IFSOCK):
return(SOCKET);
***************
*** 1637,1644 ****
prot |= S_IFIFO;
break;
! #if !defined(SYSV) || defined(sun)
case(SOCKET):
prot |= S_IFSOCK;
break;
case(LINK):
prot |= S_IFLNK;
--- 1641,1650 ----
prot |= S_IFIFO;
break;
! #if defined(S_IFSOCK)
case(SOCKET):
prot |= S_IFSOCK;
break;
+ #endif
+ #if defined(S_IFLNK)
case(LINK):
prot |= S_IFLNK;
***************
*** 1685,1689 ****
int child, /* pid of child process */
i; /* loop and return value */
! #if !defined(SYSV) || defined(sun)
union wait status;
#else
--- 1691,1695 ----
int child, /* pid of child process */
i; /* loop and return value */
! #if (!defined(SYSV) || defined(sun)) && !defined(SCO) && !defined(AIX)
union wait status;
#else
***************
*** 1704,1707 ****
--- 1710,1714 ----
tptr++;
+ endwin(); /* make sure tty is reset */
if((child = vfork()) == 0)
{
***************
*** 1708,1712 ****
/* we're in the child */
- endwin(); /* make sure tty is reset */
execlp(shell,tptr,NULL); /* no return from this */
return(FAILURE); /* failure if we get here */
--- 1715,1718 ----
***************
*** 1722,1725 ****
--- 1728,1732 ----
return(FAILURE); /* can't fork */
+ doupdate();
return(SUCCESS);
***************
*** 1864,1868 ****
while(num_file-- > 0)
{
! strcpy(dirptr->scr_name,get_name(dirptr->filename,&dirptr->name_len));
dirptr++;
}
--- 1871,1876 ----
while(num_file-- > 0)
{
! strcpy(dirptr->scr_name,get_name(dirptr->filename,&dirptr->name_len,
! dirptr->prot,dirptr->type));
dirptr++;
}
***************
*** 2123,2129 ****
case(S_IFBLK):
return(BLOCK);
! #if !defined(SYSV) || defined(sun)
case(S_IFLNK):
return(LINK);
case(S_IFSOCK):
return(SOCKET);
--- 2131,2139 ----
case(S_IFBLK):
return(BLOCK);
! #if defined(S_IFLNK)
case(S_IFLNK):
return(LINK);
+ #endif
+ #if defined(S_IFSOCK)
case(S_IFSOCK):
return(SOCKET);
***************
*** 2412,2416 ****
*******************************************************************************/
! #if defined(SYSV) && !defined(sun)
int rename(source,dest)
--- 2422,2426 ----
*******************************************************************************/
! #if defined(SYSV) && !defined(sun) && !defined(SCO)
int rename(source,dest)
*** ../D.maint.1.0/options.c Wed Oct 7 13:52:56 1992
--- options.c Wed Oct 7 13:40:29 1992
***************
*** 41,44 ****
--- 41,45 ----
/******************************************************************************/
+ #include "maint.h"
#ifdef ultrix
#include <cursesX.h>
***************
*** 46,50 ****
#include <curses.h>
#endif
- #include "maint.h"
/******************************************************************************/
--- 47,50 ----
***************
*** 265,269 ****
break;
! case('f'):
term_code = ' ';
curr_row = FILEMARKS_OPT;
--- 265,269 ----
break;
! case('F'):
term_code = ' ';
curr_row = FILEMARKS_OPT;
***************
*** 284,287 ****
--- 284,288 ----
case('J'):
case(CARRIAGE_RETURN):
+ case(KEY_ENTER):
case(KEY_DOWN):
case(LINEFEED):
*** ../D.maint.1.0/patchlevel.h Wed Oct 7 13:53:39 1992
--- patchlevel.h Wed Oct 7 13:43:41 1992
***************
*** 0 ****
--- 1 ----
+ #define PATCHLEVEL 1
*** ../D.maint.1.0/pool.c Wed Oct 7 13:52:57 1992
--- pool.c Wed Oct 7 13:40:32 1992
***************
*** 42,48 ****
/******************************************************************************/
#include <stdio.h>
#include <malloc.h>
- #include "maint.h"
#include <string.h>
--- 42,48 ----
/******************************************************************************/
+ #include "maint.h"
#include <stdio.h>
#include <malloc.h>
#include <string.h>
*** ../D.maint.1.0/screen.c Wed Oct 7 13:53:04 1992
--- screen.c Wed Oct 7 13:40:35 1992
***************
*** 21,26 ****
initialize, prompt_getstr, put_buf, put_options,
put_pagnum, put_slot, put_spec, put_stat,
! resize_screen, screen_reset, tag_file, write_mess,
! xmess
Called: file_search, get_scr_num, make_slot, set_nodes
--- 21,26 ----
initialize, prompt_getstr, put_buf, put_options,
put_pagnum, put_slot, put_spec, put_stat,
! resize_screen, screen_reset, stop_start, tag_file,
! write_mess, xmess
Called: file_search, get_scr_num, make_slot, set_nodes
***************
*** 45,48 ****
--- 45,49 ----
/******************************************************************************/
+ #include "maint.h" /* our very own header file */
#ifdef ultrix
#include <cursesX.h>
***************
*** 59,63 ****
#endif
#include <memory.h>
- #include "maint.h" /* our very own header file */
/******************************************************************************/
--- 60,63 ----
***************
*** 88,91 ****
--- 88,93 ----
file_search();
+ extern u_short was_stopped;
+
extern short get_scr_num();
***************
*** 109,113 ****
erase_tag(),
clean_up(),
! resize_screen();
/******************************************************************************/
--- 111,116 ----
erase_tag(),
clean_up(),
! resize_screen(),
! stop_start();
/******************************************************************************/
***************
*** 171,175 ****
signal(SIGALRM,clean_up); /* catch interrupt and clean up */
signal(SIGTERM,clean_up); /* catch interrupt and clean up */
! /* signal(SIGCONT,resize_screen); /* resize and repaint screen */
signal(SIGWINCH,resize_screen); /* resize and repaint screen */
--- 174,179 ----
signal(SIGALRM,clean_up); /* catch interrupt and clean up */
signal(SIGTERM,clean_up); /* catch interrupt and clean up */
! signal(SIGTSTP,stop_start); /* so we can do an endwin() */
! signal(SIGCONT,stop_start);
signal(SIGWINCH,resize_screen); /* resize and repaint screen */
***************
*** 251,254 ****
--- 255,313 ----
********************************************************************************
+ Function: user_stop
+
+ Purpose: Called when a user enters ^Z. We catch this so we can do
+ an endwin() so that the screen will repaint when the
+ users resumes execution.
+
+ Global variables:
+
+ Name Examine/Modify/Use/Read/Write
+ ---- -----------------------------
+ was_stopped X
+
+ Return Codes:
+
+ Code Reason
+ ---- ------
+ none
+
+ ********************************************************************************
+ *******************************************************************************/
+
+ void stop_start(sig)
+ /******* FORMAL PARAMETERS *******/
+ int sig; /* why we were called */
+
+ { /*** stop_start ***/
+
+ if(sig == SIGCONT)
+ {
+ (void) signal(SIGTSTP,stop_start);
+ (void) signal(SIGCONT,stop_start);
+ #if !defined(sun) && !defined(AIX)
+ printf("\nPress any key to return to maint> ");
+ fflush(stdout);
+ #endif
+ keypad(main_win,TRUE);
+ was_stopped = 1;
+ resetty();
+ }
+ else
+ {
+ savetty();
+ echo();
+ nocbreak();
+ endwin();
+ (void) signal(SIGTSTP,SIG_DFL);
+ (void) signal(SIGCONT,stop_start);
+ (void) kill(getpid(),sig);
+ }
+
+ } /*** stop_start **/
+
+ /*******************************************************************************
+ ********************************************************************************
+
Function: resize_screen
***************
*** 259,263 ****
Name Examine/Modify/Use/Read/Write
---- -----------------------------
! global_row
Return Codes:
--- 318,324 ----
Name Examine/Modify/Use/Read/Write
---- -----------------------------
! spec_win X
! main_win X
! stat_win X
Return Codes:
***************
*** 274,277 ****
--- 335,347 ----
{ /*** resize_screen ***/
+ nonl();
+ cbreak();
+ noecho();
+ touchwin(spec_win);
+ touchwin(main_win);
+ touchwin(stat_win);
+ wnoutrefresh(spec_win);
+ wnoutrefresh(main_win);
+ wnoutrefresh(stat_win);
return;
***************
*** 318,327 ****
#if !defined(SYSV) || defined(sun)
! sprintf(buf2," %d files %d blocks Press ? for help",
num_file,kbytes(dbtob(num_block)));
#else
! sprintf(buf2," %d files %d blocks Press ? for help",
! num_file,kbytes(num_block));
#endif
--- 388,397 ----
#if !defined(SYSV) || defined(sun)
! sprintf(buf2," %d files %d Kbytes Press ? for help",
num_file,kbytes(dbtob(num_block)));
#else
! sprintf(buf2," %d files %d Kbytes Press ? for help",
! num_file,num_block);
#endif
***************
*** 1298,1301 ****
--- 1368,1372 ----
{
case(CARRIAGE_RETURN):
+ case(KEY_ENTER):
case(LINEFEED):
*** ../D.maint.1.0/select.c Wed Oct 7 13:52:53 1992
--- select.c Wed Oct 7 13:40:38 1992
***************
*** 22,26 ****
Defined: file_select
! Called: none
Files accessed: filename file to be browsed
--- 22,26 ----
Defined: file_select
! Called: stop_start
Files accessed: filename file to be browsed
***************
*** 57,60 ****
--- 57,62 ----
#endif
#include <sys/stat.h>
+ #include <ctype.h>
+ #include <signal.h>
/******************************************************************************/
***************
*** 64,67 ****
--- 66,71 ----
/******************************************************************************/
+ #define MAX_ARGS 20
+
/******************************************************************************/
/* */
***************
*** 85,88 ****
--- 89,98 ----
int file_select();
+ extern WINDOW *spec_win,
+ *main_win,
+ *stat_win;
+
+ extern void stop_start();
+
/******************************************************************************/
/* */
***************
*** 124,130 ****
char *pager, /* pager for looking at a file */
*tptr; /* pointer to last level of command */
int child, /* pid of child process */
i; /* loop and return value */
! #if !defined(SYSV) || defined(sun)
union wait status; /* exit status for child process */
#else
--- 134,142 ----
char *pager, /* pager for looking at a file */
*tptr; /* pointer to last level of command */
+ static char *args[MAX_ARGS]; /* pager arguments */
int child, /* pid of child process */
+ retval, /* return value holder */
i; /* loop and return value */
! #if (!defined(SYSV) || defined(sun)) && !defined(SCO) && !defined(AIX)
union wait status; /* exit status for child process */
#else
***************
*** 131,135 ****
--- 143,150 ----
int status;
#endif
+ short use_execvp, /* TRUE if PAGER is not fully-qual. */
+ num_args; /* number of PAGER arguments */
+
/* see if the user has a PAGER */
***************
*** 139,149 ****
pager = DEFAULT_PAGER; /* user doesn't have a PAGER */
! tptr = strrchr(pager,'/'); /* get last level to pass to execlp */
if(tptr == NULL)
! tptr = pager;
else
! tptr++;
if((child = vfork()) == 0)
{
--- 154,225 ----
pager = DEFAULT_PAGER; /* user doesn't have a PAGER */
! tptr = strrchr(pager,'/'); /* see if it's a full path name */
if(tptr == NULL)
! {
! tptr = pager; /* nope, find it from the PATH */
! use_execvp = TRUE;
! }
else
! {
! use_execvp = FALSE;
! }
+ args[0] = pager;
+ num_args = 1;
+
+ while(*tptr != '\0' && !isspace(*tptr))
+ ++tptr;
+
+ if(*tptr != '\0')
+ {
+ /* might be some arguments; save them and put pointers to them in
+ * the args array
+ */
+
+ *tptr = '\0';
+ ++tptr;
+
+ while(*tptr != '\0')
+ {
+ while(*tptr != '\0' && isspace(*tptr))
+ ++tptr; /* skip white spaces */
+
+ if(*tptr != '\0')
+ {
+ /* found one */
+
+ args[num_args++] = tptr++;
+
+ while(*tptr != '\0' && !isspace(*tptr))
+ ++tptr;
+
+ if(*tptr != '\0')
+ {
+ *tptr = '\0'; /* make the option a string */
+ ++tptr;
+ }
+ }
+ }
+
+ args[num_args++] = filename;
+ args[num_args] = (char *) NULL;
+ }
+ else
+ {
+ args[1] = filename;
+ args[2] = (char *) NULL;
+ }
+
+ /* let's be nice... */
+
+ (void) signal(SIGTSTP,SIG_DFL);
+ (void) signal(SIGCONT,SIG_DFL);
+ echo();
+ nocbreak();
+ endwin();
+
+ retval = SUCCESS;
+
if((child = vfork()) == 0)
{
***************
*** 150,156 ****
/* we're in the child */
! endwin();
! execlp(pager,tptr,filename,NULL);
! return(FAILURE); /* execlp failed if we get here */
}
else if(child > 0)
--- 226,235 ----
/* we're in the child */
! if(use_execvp == TRUE)
! execvp(pager,args);
! else
! execv(pager,args);
!
! retval = FAILURE; /* execlp failed if we get here */
}
else if(child > 0)
***************
*** 162,168 ****
}
else
! return(FAILURE);
! return(SUCCESS);
} /*** file_select ***/
--- 241,267 ----
}
else
! retval = FAILURE;
! nonl();
! cbreak();
! noecho();
!
! if(retval == SUCCESS)
! {
! printf("\nPress any key to return to maint> ");
! fflush(stdout);
! i = wgetch(main_win);
! }
!
! touchwin(spec_win);
! touchwin(main_win);
! touchwin(stat_win);
! wnoutrefresh(spec_win);
! wnoutrefresh(main_win);
! wnoutrefresh(stat_win);
! (void) signal(SIGTSTP,stop_start);
! (void) signal(SIGCONT,stop_start);
!
! return(retval);
} /*** file_select ***/
*** ../D.maint.1.0/slot.c Wed Oct 7 13:52:58 1992
--- slot.c Wed Oct 7 13:40:41 1992
***************
*** 43,46 ****
--- 43,47 ----
/******************************************************************************/
+ #include "maint.h"
#ifdef ultrix
#include <cursesX.h>
***************
*** 53,57 ****
#include <pwd.h>
#include <grp.h>
- #include "maint.h"
/******************************************************************************/
--- 54,57 ----
***************
*** 79,83 ****
*set_date();
! #if defined(SYSV) || defined(sun)
extern void setpwent(),
setgrent();
--- 79,83 ----
*set_date();
! #if defined(SYSV) || defined(sun) || defined(hpux)
extern void setpwent(),
setgrent();
*** ../D.maint.1.0/sort.c Wed Oct 7 13:52:54 1992
--- sort.c Wed Oct 7 13:40:44 1992
***************
*** 41,46 ****
/******************************************************************************/
- #include <string.h>
#include "maint.h"
/******************************************************************************/
--- 41,46 ----
/******************************************************************************/
#include "maint.h"
+ #include <string.h>
/******************************************************************************/
*** ../D.maint.1.0/text.c Wed Oct 7 13:53:01 1992
--- text.c Wed Oct 7 13:40:47 1992
***************
*** 43,46 ****
--- 43,47 ----
/******************************************************************************/
+ #include "maint.h"
#include <stdio.h>
#ifdef ultrix
***************
*** 50,54 ****
#endif
#include <string.h>
- #include "maint.h"
/******************************************************************************/
--- 51,54 ----
*** ../D.maint.1.0/xecute.c Wed Oct 7 13:53:02 1992
--- xecute.c Wed Oct 7 13:40:50 1992
***************
*** 42,45 ****
--- 42,46 ----
/******************************************************************************/
+ #include "maint.h"
#include <fcntl.h>
#include <errno.h>
***************
*** 51,55 ****
#include <curses.h>
#endif
- #include "maint.h"
#include <sys/stat.h>
--- 52,55 ----
***************
*** 81,85 ****
read(),
write(),
- open(),
close(),
errno;
--- 81,84 ----
***************
*** 239,243 ****
}
! if(comm_ptr->comm_text != NULL && text_write == SUCCESS)
{
/* yes, write a text descriptor */
--- 238,242 ----
}
! if(comm_ptr->comm_text != '\0' && text_write == SUCCESS)
{
/* yes, write a text descriptor */
***************
*** 743,746 ****
--- 742,746 ----
retptr = " Too many symbolic links in filename";
break;
+ #ifdef EDQUOT
case(EDQUOT):
retptr = " Disk quota exhausted";
***************
*** 747,750 ****
--- 747,751 ----
break;
#endif
+ #endif
case(ENOSPC):
retptr = " File system is full";
***************
*** 770,776 ****
--- 771,779 ----
retptr = " Too many symbolic links in filename";
break;
+ #ifdef EDQUOT
case(EDQUOT):
retptr = " Disk quota exhausted";
break;
+ #endif
#endif
case(ENOENT):