From: François Pinard Date: Wed, 16 Nov 1994 02:55:27 +0000 (+0000) Subject: *** empty log message *** X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=83fe6258793e027ff3b8ecd699536809c379a67c;p=chaz%2Ftar *** empty log message *** --- diff --git a/src/getoldopt.c b/src/getoldopt.c index c705784..99f008c 100644 --- a/src/getoldopt.c +++ b/src/getoldopt.c @@ -32,57 +32,65 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "port.h" /* For index() redefinition if USG. */ int -getoldopt(argc, argv, optstring, long_options, opt_index) - int argc; - char **argv; - char *optstring; - struct option *long_options; - int *opt_index; +getoldopt (argc, argv, optstring, long_options, opt_index) + int argc; + char **argv; + char *optstring; + struct option *long_options; + int *opt_index; { - extern char *optarg; /* Points to next arg */ - extern int optind; /* Global argv index */ - static char *key; /* Points to next keyletter */ - static char use_getopt; /* !=0 if argv[1][0] was '-' */ - char c; - char *place; + extern char *optarg; /* Points to next arg */ + extern int optind; /* Global argv index */ + static char *key; /* Points to next keyletter */ + static char use_getopt; /* !=0 if argv[1][0] was '-' */ + char c; + char *place; - optarg = NULL; - - if (key == NULL) { /* First time */ - if (argc < 2) return EOF; - key = argv[1]; - if ((*key == '-') || (*key == '+')) - use_getopt++; - else - optind = 2; - } + optarg = NULL; - if (use_getopt) - return getopt_long(argc, argv, optstring, - long_options, opt_index); + if (key == NULL) + { /* First time */ + if (argc < 2) + return EOF; + key = argv[1]; + if ((*key == '-') || (*key == '+')) + use_getopt++; + else + optind = 2; + } - c = *key++; - if (c == '\0') { - key--; - return EOF; - } - place = index(optstring, c); + if (use_getopt) + return getopt_long (argc, argv, optstring, + long_options, opt_index); - if (place == NULL || c == ':') { - msg("unknown option %c", c); - return('?'); - } + c = *key++; + if (c == '\0') + { + key--; + return EOF; + } + place = index (optstring, c); - place++; - if (*place == ':') { - if (optind < argc) { - optarg = argv[optind]; - optind++; - } else { - msg("%c argument missing", c); - return('?'); - } + if (place == NULL || c == ':') + { + msg ("unknown option %c", c); + return ('?'); + } + + place++; + if (*place == ':') + { + if (optind < argc) + { + optarg = argv[optind]; + optind++; + } + else + { + msg ("%c argument missing", c); + return ('?'); } + } - return(c); + return (c); } diff --git a/src/rtapelib.c b/src/rtapelib.c index c062eba..887122b 100644 --- a/src/rtapelib.c +++ b/src/rtapelib.c @@ -449,7 +449,7 @@ __rmt_read (fildes, buf, nbyte) for (i = 0; i < rc; i += nbyte, buf += nbyte) { - nbyte = read (READ (fildes), buf, rc); + nbyte = read (READ (fildes), buf, rc - i); if (nbyte <= 0) { _rmt_shutdown (fildes);