Looks good but you have missed out ident.c and rcsprog.c


On Wed, Oct 01, 2014 at 11:19:29AM +0200, Fritjof Bornebusch wrote:
> On Sat, Sep 27, 2014 at 07:10:01PM +0200, Fritjof Bornebusch wrote:
> Hi,
> 
> > Hi,
> > 
> > after usage() was called, there is no where you can go.
> >
> 
> as suggested by otto@ and @nicm, the usage() functions are marked as
> __dead.
> 
> > fritjof
> > 
> 
> fritjof
> 
> Index: ci.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/ci.c,v
> retrieving revision 1.217
> diff -u -p -r1.217 ci.c
> --- ci.c      19 May 2014 19:42:24 -0000      1.217
> +++ ci.c      1 Oct 2014 08:38:31 -0000
> @@ -89,7 +89,7 @@ static void  checkin_parsekeyword(char *
>  static int    checkin_update(struct checkin_params *);
>  static int    checkin_revert(struct checkin_params *);
>  
> -void
> +__dead void
>  checkin_usage(void)
>  {
>       fprintf(stderr,
> @@ -97,6 +97,8 @@ checkin_usage(void)
>           "          [-j[rev]] [-k[rev]] [-l[rev]] [-M[rev]] [-mmsg]\n"
>           "          [-Nsymbol] [-nsymbol] [-r[rev]] [-sstate] [-t[str]]\n"
>           "          [-u[rev]] [-wusername] [-xsuffixes] [-ztz] file ...\n");
> +
> +     exit(1);
>  }
>  
>  /*
> @@ -221,7 +223,6 @@ checkin_main(int argc, char **argv)
>                       break;
>               default:
>                       (usage)();
> -                     exit(1);
>               }
>       }
>  
> @@ -231,7 +232,6 @@ checkin_main(int argc, char **argv)
>       if (argc == 0) {
>               warnx("no input file");
>               (usage)();
> -             exit(1);
>       }
>  
>       if ((pb.username = getlogin()) == NULL)
> Index: co.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/co.c,v
> retrieving revision 1.117
> diff -u -p -r1.117 co.c
> --- co.c      16 Apr 2013 20:24:45 -0000      1.117
> +++ co.c      1 Oct 2014 08:38:40 -0000
> @@ -79,7 +79,6 @@ checkout_main(int argc, char **argv)
>                       if (RCS_KWEXP_INVAL(kflag)) {
>                               warnx("invalid RCS keyword substitution mode");
>                               (usage)();
> -                             exit(1);
>                       }
>                       break;
>               case 'l':
> @@ -141,7 +140,6 @@ checkout_main(int argc, char **argv)
>                       break;
>               default:
>                       (usage)();
> -                     exit(1);
>               }
>       }
>  
> @@ -151,7 +149,6 @@ checkout_main(int argc, char **argv)
>       if (argc == 0) {
>               warnx("no input file");
>               (usage)();
> -             exit (1);
>       }
>  
>       if ((username = getlogin()) == NULL)
> @@ -222,13 +219,15 @@ checkout_main(int argc, char **argv)
>       return (ret);
>  }
>  
> -void
> +__dead void
>  checkout_usage(void)
>  {
>       fprintf(stderr,
>           "usage: co [-TV] [-ddate] [-f[rev]] [-I[rev]] [-kmode] [-l[rev]]\n"
>           "          [-M[rev]] [-p[rev]] [-q[rev]] [-r[rev]] [-sstate]\n"
>           "          [-u[rev]] [-w[user]] [-xsuffixes] [-ztz] file ...\n");
> +     
> +     exit(1);
>  }
>  
>  /*
> Index: merge.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/merge.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 merge.c
> --- merge.c   23 Jul 2010 21:46:05 -0000      1.7
> +++ merge.c   1 Oct 2014 08:38:52 -0000
> @@ -77,7 +77,6 @@ merge_main(int argc, char **argv)
>                       exit(0);
>               default:
>                       (usage)();
> -                     exit(D_ERROR);
>               }
>       }
>       argc -= optind;
> @@ -86,7 +85,6 @@ merge_main(int argc, char **argv)
>       if (argc != 3) {
>               warnx("%s arguments", (argc < 3) ? "not enough" : "too many");
>               (usage)();
> -             exit(D_ERROR);
>       }
>  
>       for (; labels < 3; labels++)
> @@ -113,9 +111,11 @@ merge_main(int argc, char **argv)
>       return (status);
>  }
>  
> -void
> +__dead void
>  merge_usage(void)
>  {
>       (void)fprintf(stderr,
>           "usage: merge [-EepqV] [-L label] file1 file2 file3\n");
> +
> +     exit(D_ERROR);
>  }
> Index: rcsclean.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsclean.c,v
> retrieving revision 1.52
> diff -u -p -r1.52 rcsclean.c
> --- rcsclean.c        28 Jul 2010 09:07:11 -0000      1.52
> +++ rcsclean.c        1 Oct 2014 08:39:05 -0000
> @@ -60,7 +60,6 @@ rcsclean_main(int argc, char **argv)
>                       if (RCS_KWEXP_INVAL(kflag)) {
>                               warnx("invalid RCS keyword substitution mode");
>                               (usage)();
> -                             exit(1);
>                       }
>                       break;
>               case 'n':
> @@ -90,7 +89,6 @@ rcsclean_main(int argc, char **argv)
>                       break;
>               default:
>                       (usage)();
> -                     exit(1);
>               }
>       }
>  
> @@ -104,7 +102,6 @@ rcsclean_main(int argc, char **argv)
>               if ((dirp = opendir(".")) == NULL) {
>                       warn("opendir");
>                       (usage)();
> -                     exit(1);
>               }
>  
>               while ((dp = readdir(dirp)) != NULL) {
> @@ -121,12 +118,14 @@ rcsclean_main(int argc, char **argv)
>       return (0);
>  }
>  
> -void
> +__dead void
>  rcsclean_usage(void)
>  {
>       fprintf(stderr,
>           "usage: rcsclean [-TV] [-kmode] [-n[rev]] [-q[rev]] [-r[rev]]\n"
>           "                [-u[rev]] [-xsuffixes] [-ztz] [file ...]\n");
> +
> +     exit(1);
>  }
>  
>  static void
> Index: rcsdiff.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsdiff.c,v
> retrieving revision 1.79
> diff -u -p -r1.79 rcsdiff.c
> --- rcsdiff.c 16 Apr 2013 20:24:45 -0000      1.79
> +++ rcsdiff.c 1 Oct 2014 08:40:05 -0000
> @@ -117,7 +117,6 @@ rcsdiff_main(int argc, char **argv)
>                       if (RCS_KWEXP_INVAL(kflag)) {
>                               warnx("invalid RCS keyword substitution mode");
>                               (usage)();
> -                             exit(D_ERROR);
>                       }
>                       break;
>               case 'n':
> @@ -184,7 +183,6 @@ rcsdiff_main(int argc, char **argv)
>                       break;
>               default:
>                       (usage)();
> -                     exit(D_ERROR);
>               }
>       }
>  
> @@ -194,7 +192,6 @@ rcsdiff_main(int argc, char **argv)
>       if (argc == 0) {
>               warnx("no input file");
>               (usage)();
> -             exit(D_ERROR);
>       }
>  
>       if (diff_ignore_pats != NULL) {
> @@ -267,12 +264,14 @@ rcsdiff_main(int argc, char **argv)
>       return (status);
>  }
>  
> -void
> +__dead void
>  rcsdiff_usage(void)
>  {
>       fprintf(stderr,
>           "usage: rcsdiff [-cnquV] [-kmode] [-rrev] [-xsuffixes] [-ztz]\n"
>           "               [diff_options] file ...\n");
> +
> +     exit(D_ERROR);
>  }
>  
>  static int
> Index: rcsmerge.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsmerge.c,v
> retrieving revision 1.52
> diff -u -p -r1.52 rcsmerge.c
> --- rcsmerge.c        23 Jul 2010 21:46:05 -0000      1.52
> +++ rcsmerge.c        1 Oct 2014 08:40:14 -0000
> @@ -68,7 +68,6 @@ rcsmerge_main(int argc, char **argv)
>                       if (RCS_KWEXP_INVAL(kflag)) {
>                               warnx("invalid RCS keyword substitution mode");
>                               (usage)();
> -                             exit(D_ERROR);
>                       }
>                       break;
>               case 'p':
> @@ -100,7 +99,6 @@ rcsmerge_main(int argc, char **argv)
>                       break;
>               default:
>                       (usage)();
> -                     exit(D_ERROR);
>               }
>       }
>  
> @@ -110,13 +108,11 @@ rcsmerge_main(int argc, char **argv)
>       if (rev_str1 == NULL) {
>               warnx("no base revision number given");
>               (usage)();
> -             exit(D_ERROR);
>       }
>  
>       if (argc < 1) {
>               warnx("no input file");
>               (usage)();
> -             exit(D_ERROR);
>       }
>  
>       if (argc > 2 || (argc == 2 && argv[1] != NULL))
> @@ -187,10 +183,12 @@ out:
>       return (status);
>  }
>  
> -void
> +__dead void
>  rcsmerge_usage(void)
>  {
>       fprintf(stderr,
>           "usage: rcsmerge [-EV] [-kmode] [-p[rev]] [-q[rev]]\n"
>           "                [-xsuffixes] [-ztz] -rrev file ...\n");
> +
> +     exit(D_ERROR);
>  }
> Index: rlog.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rlog.c,v
> retrieving revision 1.67
> diff -u -p -r1.67 rlog.c
> --- rlog.c    7 Jan 2014 14:08:16 -0000       1.67
> +++ rlog.c    1 Oct 2014 08:40:26 -0000
> @@ -58,13 +58,15 @@ static char *wlist = NULL;
>  static char *revisions = NULL;
>  static char *rlog_dates = NULL;
>  
> -void
> +__dead void
>  rlog_usage(void)
>  {
>       fprintf(stderr,
>           "usage: rlog [-bhLNRtV] [-ddates] [-l[lockers]] [-r[revs]]\n"
>           "            [-sstates] [-w[logins]] [-xsuffixes]\n"
>           "            [-ztz] file ...\n");
> +
> +     exit(1);
>  }
>  
>  int
> @@ -135,7 +137,6 @@ rlog_main(int argc, char **argv)
>                       break;
>               default:
>                       (usage());
> -                     exit(1);
>               }
>       }
>  
> @@ -145,7 +146,6 @@ rlog_main(int argc, char **argv)
>       if (argc == 0) {
>               warnx("no input file");
>               (usage)();
> -             exit(1);
>       }
>  
>       if (hflag == 1 && tflag == 1) {
> Index: rcsprog.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/rcs/rcsprog.h,v
> retrieving revision 1.63
> diff -u -p -r1.63 rcsprog.h
> --- rcsprog.h 23 Jul 2010 21:46:05 -0000      1.63
> +++ rcsprog.h 1 Oct 2014 09:13:10 -0000
> @@ -86,34 +86,34 @@ extern struct wklhead temp_files;
>  time_t  date_parse(const char *);
>  
>  /* ci.c */
> -int  checkin_main(int, char **);
> -void checkin_usage(void);
> +int          checkin_main(int, char **);
> +__dead void  checkin_usage(void);
>  
>  /* co.c */
> -int  checkout_main(int, char **);
> -int  checkout_rev(RCSFILE *, RCSNUM *, const char *, int, const char *,
> -         const char *, const char *, const char *);
> -void checkout_usage(void);
> +int          checkout_main(int, char **);
> +int          checkout_rev(RCSFILE *, RCSNUM *, const char *,
> +             int, const char *, const char *, const char *, const char *);
> +__dead void  checkout_usage(void);
>  
>  /* ident.c */
>  int  ident_main(int, char **);
>  void ident_usage(void);
>  
>  /* merge.c */
> -int  merge_main(int, char **);
> -void merge_usage(void);
> +int          merge_main(int, char **);
> +__dead void  merge_usage(void);
>  
>  /* rcsclean.c */
> -int  rcsclean_main(int, char **);
> -void rcsclean_usage(void);
> +int          rcsclean_main(int, char **);
> +__dead void  rcsclean_usage(void);
>  
>  /* rcsdiff.c */
> -int  rcsdiff_main(int, char **);
> -void rcsdiff_usage(void);
> +int          rcsdiff_main(int, char **);
> +__dead void  rcsdiff_usage(void);
>  
>  /* rcsmerge.c */
> -int  rcsmerge_main(int, char **);
> -void rcsmerge_usage(void);
> +int          rcsmerge_main(int, char **);
> +__dead void  rcsmerge_usage(void);
>  
>  /* rcsprog.c */
>  int  build_cmd(char ***, char **, int);
> @@ -123,7 +123,7 @@ void      rcs_usage(void);
>  void (*usage)(void);
>  
>  /* rlog.c */
> -int  rlog_main(int, char **);
> -void rlog_usage(void);
> +int          rlog_main(int, char **);
> +__dead void  rlog_usage(void);
>  
>  #endif       /* RCSPROG_H */

Reply via email to