(main): Use return instead of exit to avoid warning.
authorAndreas Jaeger <aj@suse.de>
Sun, 31 Dec 2000 16:56:02 +0000 (16:56 +0000)
committerAndreas Jaeger <aj@suse.de>
Sun, 31 Dec 2000 16:56:02 +0000 (16:56 +0000)
2000-12-31  Andreas Jaeger  <aj@suse.de>

* tst-fmon.c (main): Use return instead of exit to avoid warning.

iconvdata/tst-table-to.c
localedata/ChangeLog
localedata/tst-fmon.c
nis/rpcsvc/yp.h
nis/rpcsvc/yp_prot.h
nis/rpcsvc/ypupd.h
sunrpc/proto.h
sunrpc/rpc_main.c
sunrpc/rpc_scan.h
sunrpc/rpcinfo.c

index f154116..c763c84 100644 (file)
@@ -36,7 +36,7 @@ main (int argc, char *argv[])
   if (argc != 2)
     {
       fprintf (stderr, "Usage: tst-table-to charset\n");
-      exit (1);
+      return 1;
     }
   charset = argv[1];
 
@@ -44,7 +44,7 @@ main (int argc, char *argv[])
   if (cd == (iconv_t)(-1))
     {
       perror ("iconv_open");
-      exit (1);
+      return 1;
     }
 
   {
@@ -69,7 +69,7 @@ main (int argc, char *argv[])
                fprintf (stderr, "0x%02X: iconv error: ", i);
                errno = saved_errno;
                perror ("");
-               exit (1);
+               return 1;
              }
          }
        else if (result == 0) /* ignore conversions with transliteration */
@@ -80,7 +80,7 @@ main (int argc, char *argv[])
                fprintf (stderr, "0x%02X: inbytes = %ld, outbytes = %ld\n", i,
                         (long) (sizeof (unsigned short) - inbytesleft),
                         (long) (sizeof (buf) - outbytesleft));
-               exit (1);
+               return 1;
              }
            jmax = sizeof (buf) - outbytesleft;
            printf ("0x");
@@ -94,14 +94,14 @@ main (int argc, char *argv[])
   if (iconv_close (cd) < 0)
     {
       perror ("iconv_close");
-      exit (1);
+      return 1;
     }
 
   if (ferror (stdin) || fflush (stdout) || ferror (stdout))
     {
       fprintf (stderr, "I/O error\n");
-      exit (1);
+      return 1;
     }
 
-  exit (0);
+  return 0;
 }
index ef99668..08c3b49 100644 (file)
@@ -1,3 +1,7 @@
+2000-12-31  Andreas Jaeger  <aj@suse.de>
+
+       * tst-fmon.c (main): Use return instead of exit to avoid warning.
+
 2000-12-21  Ulrich Drepper  <drepper@redhat.com>
 
        * tests/test5.cm: Define code_set_name.
index f9ef24a..fa2d9e6 100644 (file)
@@ -67,5 +67,5 @@ locale: \"%s\", format: \"%s\", expected: \"%s\", got: \"%s\" => %s\n",
       exit (EXIT_FAILURE);
     }
 
-  exit (EXIT_SUCCESS);
+  return EXIT_SUCCESS;
 }
index d951c15..ffc13b8 100644 (file)
@@ -241,96 +241,96 @@ __BEGIN_DECLS
 #define YPVERS 2
 
 #define YPPROC_NULL 0
-extern  void *ypproc_null_2 __P ((void *, CLIENT *));
-extern  void *ypproc_null_2_svc __P ((void *, struct svc_req *));
+extern  void *ypproc_null_2 (void *, CLIENT *);
+extern  void *ypproc_null_2_svc (void *, struct svc_req *);
 #define YPPROC_DOMAIN 1
-extern  bool_t *ypproc_domain_2 __P ((domainname *, CLIENT *));
-extern  bool_t *ypproc_domain_2_svc __P ((domainname *, struct svc_req *));
+extern  bool_t *ypproc_domain_2 (domainname *, CLIENT *);
+extern  bool_t *ypproc_domain_2_svc (domainname *, struct svc_req *);
 #define YPPROC_DOMAIN_NONACK 2
-extern  bool_t *ypproc_domain_nonack_2 __P ((domainname *, CLIENT *));
-extern  bool_t *ypproc_domain_nonack_2_svc __P ((domainname *, struct svc_req *));
+extern  bool_t *ypproc_domain_nonack_2 (domainname *, CLIENT *);
+extern  bool_t *ypproc_domain_nonack_2_svc (domainname *, struct svc_req *);
 #define YPPROC_MATCH 3
-extern  ypresp_val *ypproc_match_2 __P ((ypreq_key *, CLIENT *));
-extern  ypresp_val *ypproc_match_2_svc __P ((ypreq_key *, struct svc_req *));
+extern  ypresp_val *ypproc_match_2 (ypreq_key *, CLIENT *);
+extern  ypresp_val *ypproc_match_2_svc (ypreq_key *, struct svc_req *);
 #define YPPROC_FIRST 4
-extern  ypresp_key_val *ypproc_first_2 __P ((ypreq_key *, CLIENT *));
-extern  ypresp_key_val *ypproc_first_2_svc __P ((ypreq_key *, struct svc_req *));
+extern  ypresp_key_val *ypproc_first_2 (ypreq_key *, CLIENT *);
+extern  ypresp_key_val *ypproc_first_2_svc (ypreq_key *, struct svc_req *);
 #define YPPROC_NEXT 5
-extern  ypresp_key_val *ypproc_next_2 __P ((ypreq_key *, CLIENT *));
-extern  ypresp_key_val *ypproc_next_2_svc __P ((ypreq_key *, struct svc_req *));
+extern  ypresp_key_val *ypproc_next_2 (ypreq_key *, CLIENT *);
+extern  ypresp_key_val *ypproc_next_2_svc (ypreq_key *, struct svc_req *);
 #define YPPROC_XFR 6
-extern  ypresp_xfr *ypproc_xfr_2 __P ((ypreq_xfr *, CLIENT *));
-extern  ypresp_xfr *ypproc_xfr_2_svc __P ((ypreq_xfr *, struct svc_req *));
+extern  ypresp_xfr *ypproc_xfr_2 (ypreq_xfr *, CLIENT *);
+extern  ypresp_xfr *ypproc_xfr_2_svc (ypreq_xfr *, struct svc_req *);
 #define YPPROC_CLEAR 7
-extern  void *ypproc_clear_2 __P ((void *, CLIENT *));
-extern  void *ypproc_clear_2_svc __P ((void *, struct svc_req *));
+extern  void *ypproc_clear_2 (void *, CLIENT *);
+extern  void *ypproc_clear_2_svc (void *, struct svc_req *);
 #define YPPROC_ALL 8
-extern  ypresp_all *ypproc_all_2 __P ((ypreq_nokey *, CLIENT *));
-extern  ypresp_all *ypproc_all_2_svc __P ((ypreq_nokey *, struct svc_req *));
+extern  ypresp_all *ypproc_all_2 (ypreq_nokey *, CLIENT *);
+extern  ypresp_all *ypproc_all_2_svc (ypreq_nokey *, struct svc_req *);
 #define YPPROC_MASTER 9
-extern  ypresp_master *ypproc_master_2 __P ((ypreq_nokey *, CLIENT *));
-extern  ypresp_master *ypproc_master_2_svc __P ((ypreq_nokey *, struct svc_req *));
+extern  ypresp_master *ypproc_master_2 (ypreq_nokey *, CLIENT *);
+extern  ypresp_master *ypproc_master_2_svc (ypreq_nokey *, struct svc_req *);
 #define YPPROC_ORDER 10
-extern  ypresp_order *ypproc_order_2 __P ((ypreq_nokey *, CLIENT *));
-extern  ypresp_order *ypproc_order_2_svc __P ((ypreq_nokey *, struct svc_req *));
+extern  ypresp_order *ypproc_order_2 (ypreq_nokey *, CLIENT *);
+extern  ypresp_order *ypproc_order_2_svc (ypreq_nokey *, struct svc_req *);
 #define YPPROC_MAPLIST 11
-extern  ypresp_maplist *ypproc_maplist_2 __P ((domainname *, CLIENT *));
-extern  ypresp_maplist *ypproc_maplist_2_svc __P ((domainname *, struct svc_req *));
-extern int ypprog_2_freeresult __P ((SVCXPRT *, xdrproc_t, caddr_t));
+extern  ypresp_maplist *ypproc_maplist_2 (domainname *, CLIENT *);
+extern  ypresp_maplist *ypproc_maplist_2_svc (domainname *, struct svc_req *);
+extern int ypprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
 
 
 #define YPPUSH_XFRRESPPROG (0x40000000)
 #define YPPUSH_XFRRESPVERS 1
 
 #define YPPUSHPROC_NULL 0
-extern  void *yppushproc_null_1 __P ((void *, CLIENT *));
-extern  void *yppushproc_null_1_svc __P ((void *, struct svc_req *));
+extern  void *yppushproc_null_1 (void *, CLIENT *);
+extern  void *yppushproc_null_1_svc (void *, struct svc_req *);
 #define YPPUSHPROC_XFRRESP 1
-extern  void *yppushproc_xfrresp_1 __P ((yppushresp_xfr *, CLIENT *));
-extern  void *yppushproc_xfrresp_1_svc __P ((yppushresp_xfr *, struct svc_req *));
-extern int yppush_xfrrespprog_1_freeresult __P ((SVCXPRT *, xdrproc_t, caddr_t));
+extern  void *yppushproc_xfrresp_1 (yppushresp_xfr *, CLIENT *);
+extern  void *yppushproc_xfrresp_1_svc (yppushresp_xfr *, struct svc_req *);
+extern int yppush_xfrrespprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
 
 
 #define YPBINDPROG 100007
 #define YPBINDVERS 2
 
 #define YPBINDPROC_NULL 0
-extern  void *ypbindproc_null_2 __P ((void *, CLIENT *));
-extern  void *ypbindproc_null_2_svc __P ((void *, struct svc_req *));
+extern  void *ypbindproc_null_2 (void *, CLIENT *);
+extern  void *ypbindproc_null_2_svc (void *, struct svc_req *);
 #define YPBINDPROC_DOMAIN 1
-extern  ypbind_resp *ypbindproc_domain_2 __P ((domainname *, CLIENT *));
-extern  ypbind_resp *ypbindproc_domain_2_svc __P ((domainname *, struct svc_req *));
+extern  ypbind_resp *ypbindproc_domain_2 (domainname *, CLIENT *);
+extern  ypbind_resp *ypbindproc_domain_2_svc (domainname *, struct svc_req *);
 #define YPBINDPROC_SETDOM 2
-extern  void *ypbindproc_setdom_2 __P ((ypbind_setdom *, CLIENT *));
-extern  void *ypbindproc_setdom_2_svc __P ((ypbind_setdom *, struct svc_req *));
-extern int ypbindprog_2_freeresult __P ((SVCXPRT *, xdrproc_t, caddr_t));
-
-
-extern  bool_t xdr_ypstat __P ((XDR *, ypstat*));
-extern  bool_t xdr_ypxfrstat __P ((XDR *, ypxfrstat*));
-extern  bool_t xdr_domainname __P ((XDR *, domainname*));
-extern  bool_t xdr_mapname __P ((XDR *, mapname*));
-extern  bool_t xdr_peername __P ((XDR *, peername*));
-extern  bool_t xdr_keydat __P ((XDR *, keydat*));
-extern  bool_t xdr_valdat __P ((XDR *, valdat*));
-extern  bool_t xdr_ypmap_parms __P ((XDR *, ypmap_parms*));
-extern  bool_t xdr_ypreq_key __P ((XDR *, ypreq_key*));
-extern  bool_t xdr_ypreq_nokey __P ((XDR *, ypreq_nokey*));
-extern  bool_t xdr_ypreq_xfr __P ((XDR *, ypreq_xfr*));
-extern  bool_t xdr_ypresp_val __P ((XDR *, ypresp_val*));
-extern  bool_t xdr_ypresp_key_val __P ((XDR *, ypresp_key_val*));
-extern  bool_t xdr_ypresp_master __P ((XDR *, ypresp_master*));
-extern  bool_t xdr_ypresp_order __P ((XDR *, ypresp_order*));
-extern  bool_t xdr_ypresp_all __P ((XDR *, ypresp_all*));
-extern  bool_t xdr_ypresp_xfr __P ((XDR *, ypresp_xfr*));
-extern  bool_t xdr_ypmaplist __P ((XDR *, ypmaplist*));
-extern  bool_t xdr_ypresp_maplist __P ((XDR *, ypresp_maplist*));
-extern  bool_t xdr_yppush_status __P ((XDR *, yppush_status*));
-extern  bool_t xdr_yppushresp_xfr __P ((XDR *, yppushresp_xfr*));
-extern  bool_t xdr_ypbind_resptype __P ((XDR *, ypbind_resptype*));
-extern  bool_t xdr_ypbind_binding __P ((XDR *, ypbind_binding*));
-extern  bool_t xdr_ypbind_resp __P ((XDR *, ypbind_resp*));
-extern  bool_t xdr_ypbind_setdom __P ((XDR *, ypbind_setdom*));
+extern  void *ypbindproc_setdom_2 (ypbind_setdom *, CLIENT *);
+extern  void *ypbindproc_setdom_2_svc (ypbind_setdom *, struct svc_req *);
+extern int ypbindprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
+
+
+extern  bool_t xdr_ypstat (XDR *, ypstat*);
+extern  bool_t xdr_ypxfrstat (XDR *, ypxfrstat*);
+extern  bool_t xdr_domainname (XDR *, domainname*);
+extern  bool_t xdr_mapname (XDR *, mapname*);
+extern  bool_t xdr_peername (XDR *, peername*);
+extern  bool_t xdr_keydat (XDR *, keydat*);
+extern  bool_t xdr_valdat (XDR *, valdat*);
+extern  bool_t xdr_ypmap_parms (XDR *, ypmap_parms*);
+extern  bool_t xdr_ypreq_key (XDR *, ypreq_key*);
+extern  bool_t xdr_ypreq_nokey (XDR *, ypreq_nokey*);
+extern  bool_t xdr_ypreq_xfr (XDR *, ypreq_xfr*);
+extern  bool_t xdr_ypresp_val (XDR *, ypresp_val*);
+extern  bool_t xdr_ypresp_key_val (XDR *, ypresp_key_val*);
+extern  bool_t xdr_ypresp_master (XDR *, ypresp_master*);
+extern  bool_t xdr_ypresp_order (XDR *, ypresp_order*);
+extern  bool_t xdr_ypresp_all (XDR *, ypresp_all*);
+extern  bool_t xdr_ypresp_xfr (XDR *, ypresp_xfr*);
+extern  bool_t xdr_ypmaplist (XDR *, ypmaplist*);
+extern  bool_t xdr_ypresp_maplist (XDR *, ypresp_maplist*);
+extern  bool_t xdr_yppush_status (XDR *, yppush_status*);
+extern  bool_t xdr_yppushresp_xfr (XDR *, yppushresp_xfr*);
+extern  bool_t xdr_ypbind_resptype (XDR *, ypbind_resptype*);
+extern  bool_t xdr_ypbind_binding (XDR *, ypbind_binding*);
+extern  bool_t xdr_ypbind_resp (XDR *, ypbind_resp*);
+extern  bool_t xdr_ypbind_setdom (XDR *, ypbind_setdom*);
 
 __END_DECLS
 
index 158a9c1..ae0db36 100644 (file)
@@ -342,24 +342,24 @@ struct ypresp_all {
   } ypresp_all_u;
 };
 
-extern bool_t xdr_ypreq_key __P ((XDR *__xdrs, struct ypreq_key * __objp));
-extern bool_t xdr_ypreq_nokey __P ((XDR *__xdrs, struct ypreq_nokey * __objp));
-extern bool_t xdr_ypreq_xfr __P ((XDR *__xdrs, struct ypreq_xfr * __objp));
-extern bool_t xdr_ypresp_val __P ((XDR *__xdrs, struct ypresp_val * __objp));
-extern bool_t xdr_ypresp_key_val __P ((XDR *__xdrs, struct ypresp_key_val * __objp));
-extern bool_t xdr_ypbind_resp __P ((XDR *__xdrs, struct ypbind_resp * __objp));
-extern bool_t xdr_ypbind_setdom __P ((XDR *__xdrs, struct ypbind_setdom * __objp));
-extern bool_t xdr_ypmap_parms __P ((XDR *__xdrs, struct ypmap_parms * __objp));
-extern bool_t xdr_yppushresp_xfr __P ((XDR *__xdrs, struct yppushresp_xfr * __objp));
-extern bool_t xdr_ypresp_order __P ((XDR *__xdrs, struct ypresp_order  * __objp));
-extern bool_t xdr_ypresp_master __P ((XDR *__xdrs, struct ypresp_master * __objp));
-extern bool_t xdr_ypall __P ((XDR *__xdrs, struct ypall_callback * __objp));
-extern bool_t xdr_ypresp_maplist __P ((XDR *__xdrs, struct ypresp_maplist * __objp));
-extern bool_t xdr_ypbind_binding __P ((XDR *__xdrs, struct ypbind_binding * __objp));
-extern bool_t xdr_ypbind_resptype __P ((XDR *__xdrs, enum ypbind_resptype * __objp));
-extern bool_t xdr_ypstat __P ((XDR *__xdrs, enum ypbind_resptype * __objp));
-extern bool_t xdr_ypresp_all __P ((XDR *__xdrs, struct ypresp_all  * __objp));
-extern bool_t xdr_domainname __P ((XDR *__xdrs, char ** __objp));
+extern bool_t xdr_ypreq_key (XDR *__xdrs, struct ypreq_key * __objp);
+extern bool_t xdr_ypreq_nokey (XDR *__xdrs, struct ypreq_nokey * __objp);
+extern bool_t xdr_ypreq_xfr (XDR *__xdrs, struct ypreq_xfr * __objp);
+extern bool_t xdr_ypresp_val (XDR *__xdrs, struct ypresp_val * __objp);
+extern bool_t xdr_ypresp_key_val (XDR *__xdrs, struct ypresp_key_val * __objp);
+extern bool_t xdr_ypbind_resp (XDR *__xdrs, struct ypbind_resp * __objp);
+extern bool_t xdr_ypbind_setdom (XDR *__xdrs, struct ypbind_setdom * __objp);
+extern bool_t xdr_ypmap_parms (XDR *__xdrs, struct ypmap_parms * __objp);
+extern bool_t xdr_yppushresp_xfr (XDR *__xdrs, struct yppushresp_xfr * __objp);
+extern bool_t xdr_ypresp_order (XDR *__xdrs, struct ypresp_order  * __objp);
+extern bool_t xdr_ypresp_master (XDR *__xdrs, struct ypresp_master * __objp);
+extern bool_t xdr_ypall (XDR *__xdrs, struct ypall_callback * __objp);
+extern bool_t xdr_ypresp_maplist (XDR *__xdrs, struct ypresp_maplist * __objp);
+extern bool_t xdr_ypbind_binding (XDR *__xdrs, struct ypbind_binding * __objp);
+extern bool_t xdr_ypbind_resptype (XDR *__xdrs, enum ypbind_resptype * __objp);
+extern bool_t xdr_ypstat (XDR *__xdrs, enum ypbind_resptype * __objp);
+extern bool_t xdr_ypresp_all (XDR *__xdrs, struct ypresp_all  * __objp);
+extern bool_t xdr_domainname (XDR *__xdrs, char ** __objp);
 
 __END_DECLS
 
index 5b17b62..40e8b75 100644 (file)
@@ -50,7 +50,7 @@ typedef struct {
        char *yp_buf_val;
 } yp_buf;
 
-extern  bool_t xdr_yp_buf __P ((XDR *, yp_buf*));
+extern  bool_t xdr_yp_buf (XDR *, yp_buf*);
 
 struct ypupdate_args {
        char *mapname;
@@ -59,7 +59,7 @@ struct ypupdate_args {
 };
 typedef struct ypupdate_args ypupdate_args;
 
-extern  bool_t xdr_ypupdate_args __P ((XDR *, ypupdate_args*));
+extern  bool_t xdr_ypupdate_args (XDR *, ypupdate_args*);
 
 struct ypdelete_args {
        char *mapname;
@@ -67,23 +67,23 @@ struct ypdelete_args {
 };
 typedef struct ypdelete_args ypdelete_args;
 
-extern  bool_t xdr_ypdelete_args __P ((XDR *, ypdelete_args*));
+extern  bool_t xdr_ypdelete_args (XDR *, ypdelete_args*);
 
 #define YPU_PROG 100028
 #define YPU_VERS 1
 
 #define YPU_CHANGE 1
-extern  u_int * ypu_change_1 __P ((ypupdate_args *, CLIENT *));
+extern  u_int * ypu_change_1 (ypupdate_args *, CLIENT *);
 extern  u_int * ypu_change_1_svc __P((ypupdate_args *, struct svc_req *));
 #define YPU_INSERT 2
-extern  u_int * ypu_insert_1 __P ((ypupdate_args *, CLIENT *));
-extern  u_int * ypu_insert_1_svc __P ((ypupdate_args *, struct svc_req *));
+extern  u_int * ypu_insert_1 (ypupdate_args *, CLIENT *);
+extern  u_int * ypu_insert_1_svc (ypupdate_args *, struct svc_req *);
 #define YPU_DELETE 3
-extern  u_int * ypu_delete_1 __P ((ypdelete_args *, CLIENT *));
-extern  u_int * ypu_delete_1_svc __P ((ypdelete_args *, struct svc_req *));
+extern  u_int * ypu_delete_1 (ypdelete_args *, CLIENT *);
+extern  u_int * ypu_delete_1_svc (ypdelete_args *, struct svc_req *);
 #define YPU_STORE 4
-extern  u_int * ypu_store_1 __P ((ypupdate_args *, CLIENT *));
-extern  u_int * ypu_store_1_svc __P ((ypupdate_args *, struct svc_req *));
+extern  u_int * ypu_store_1 (ypupdate_args *, CLIENT *);
+extern  u_int * ypu_store_1_svc (ypupdate_args *, struct svc_req *);
 
 __END_DECLS
 
index 30ef188..3e1ecd1 100644 (file)
@@ -45,8 +45,8 @@ void write_tables(void);
 /****** rpc_util.c ******/
 void reinitialize(void);
 int streq(const char *a, const char *b);
-void error(const char *msg);
-void crash(void);
+void error(const char *msg) __attribute__ ((noreturn));
+void crash(void) __attribute__ ((noreturn));
 void tabify(FILE *f, int tab);
 char *make_argname(const char *pname, const char *vname);
 void add_type(int len, const char *type);
index b780bdb..d43b69d 100644 (file)
@@ -134,8 +134,8 @@ static void addarg (const char *cp);
 static void putarg (int whereto, const char *cp);
 static void checkfiles (const char *infile, const char *outfile);
 static int parseargs (int argc, const char *argv[], struct commandline *cmd);
-static void usage (void);
-static void options_usage (void);
+static void usage (void) __attribute__ ((noreturn));
+static void options_usage (void) __attribute__ ((noreturn));
 static void c_initialize (void);
 static char *generate_guard (const char *pathname);
 
@@ -180,6 +180,7 @@ xdrfunc *xdrfunc_head = NULL;       /* xdr function list */
 xdrfunc *xdrfunc_tail = NULL;  /* xdr function list */
 
 int
+__attribute__ ((noreturn))
 main (int argc, const char *argv[])
 {
   struct commandline cmd;
index 9a4383d..2f0d586 100644 (file)
@@ -99,7 +99,8 @@ void scan_num(token *tokp);
 void peek(token *tokp);
 int peekscan(tok_kind expect, token *tokp);
 void get_token(token *tokp);
-void expected1(tok_kind exp1);
-void expected2(tok_kind exp1, tok_kind exp2);
-void expected3(tok_kind exp1, tok_kind exp2, tok_kind exp3);
+void expected1(tok_kind exp1) __attribute__ ((noreturn));
+void expected2(tok_kind exp1, tok_kind exp2)  __attribute__ ((noreturn));
+void expected3(tok_kind exp1, tok_kind exp2, tok_kind exp3)
+     __attribute__ ((noreturn));
 
index 07d7a6a..7f99664 100644 (file)
@@ -68,7 +68,7 @@ static void tcpping (u_short portflag, int argc, char **argv);
 static int pstatus (CLIENT *client, u_long prognum, u_long vers);
 static void pmapdump (int argc, char **argv);
 static bool_t reply_proc (void *res, struct sockaddr_in *who);
-static void brdcst (int argc, char **argv);
+static void brdcst (int argc, char **argv) __attribute__ ((noreturn));
 static void deletereg (int argc, char **argv);
 static void usage (void);
 static u_long getprognum (char *arg);