gcc -Wall lint:
authorIan Lance Taylor <ian@airs.com>
Thu, 23 Dec 1993 17:29:06 +0000 (17:29 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 23 Dec 1993 17:29:06 +0000 (17:29 +0000)
* ar.c (main): Put parens around assignment used as truth value.
* objdump.c (display_bfd): Declare return value as void.
(stab_print): Use "" instead of 0 to initialize array.
(dump_stabs_1): Print vma using printf_vma.
(display_info): Put parens around assignment used as truth value.
* strings.c (print_strings): Cast printf arguments.

binutils/ar.c

index c77abb97bb81447ec1bd7b29470a252e824d4851..5b5df6114ca3bfe8ff611d512305d351812e8c0a 100644 (file)
@@ -46,6 +46,12 @@ extern int errno;
 #endif
 #define BUFSIZE 8192
 
+#ifdef __GO32___
+#define EXT_NAME_LEN 3 /* bufflen of addition to name if it's MS-DOS */
+#else
+#define EXT_NAME_LEN 6 /* ditto for *NIX */
+#endif
+
 /* Kludge declaration from BFD!  This is ugly!  FIXME!  XXX */
 
 struct ar_hdr *
@@ -76,7 +82,6 @@ ranlib_only PARAMS ((char *archname));
 
 /** Globals and flags */
 
-char           *program_name = NULL;
 bfd            *inarch;                /* The input arch we're manipulating */
 
 int mri_mode;
@@ -120,26 +125,6 @@ enum pos {
     pos_default, pos_before, pos_after, pos_end
 }               postype = pos_default;
 
-#ifdef GNU960
-       char *default_target;
-
-       void
-       gnu960_verify_target(abfd)
-       bfd *abfd;
-       {
-           if ( abfd->format == bfd_unknown ){
-               bfd_check_format(abfd, bfd_object);
-               /* Don't really care if it's an object --
-                * just want to get the correct xvec.
-                */
-           }
-           if ( !BFD_COFF_FILE_P(abfd) ){
-               fatal( "'%s' not a COFF file -- operation aborted",
-                                                       abfd->filename );
-           }
-       }
-#endif
-
 int interactive = 0;
 void
 DEFUN_VOID(mri_emul)
@@ -192,7 +177,7 @@ DEFUN(map_over_members,(function, files, count),
       }
     }
     if (!found)
-     fprintf(stderr, "No entry %s in archive.\n", *files);
+     fprintf(stderr, "no entry %s in archive\n", *files);
   }
 }
 
@@ -204,16 +189,21 @@ extern char *program_version;
 void
 do_show_version ()
 {
-  printf ("%s version %s\n", program_name, program_version);
+  printf ("GNU %s version %s\n", program_name, program_version);
+  exit (0);
 }
 
 void
 usage ()
 {
-  fprintf(stderr, "ar %s\n\
-Usage: %s [-]{dmpqrtx}[abcilosuv] [member-name] archive-file file...\n\
+  if (is_ranlib == 0)
+    fprintf(stderr, "\
+Usage: %s [-]{dmpqrtx}[abcilosuvV] [member-name] archive-file file...\n\
        %s -M [<mri-script]\n",
-         program_version, program_name, program_name);
+           program_name, program_name);
+  else
+    fprintf(stderr, "\
+Usage: %s [-vV] archive\n", program_name);
   exit(1);
 }
 
@@ -240,10 +230,6 @@ main(argc, argv)
 
   bfd_init();
   show_version = 0;
-#ifdef GNU960
-  check_v960( argc, argv );
-  default_target = bfd_make_targ_name(BFD_COFF_FORMAT,HOST_BYTE_ORDER_BIG_P);
-#endif
 
   program_name = argv[0];
 
@@ -253,17 +239,16 @@ main(argc, argv)
   else
    ++temp;
   if (is_ranlib > 0 || (is_ranlib < 0 && strcmp(temp, "ranlib") == 0)) {
-    if (argc < 2)
+    is_ranlib = 1;
+    if (argc < 2 || argc > 3)
       usage ();
     arg_ptr = argv[1];
-    if (strcmp(argv[1], "-V") == 0 || strcmp(argv[1], "-v") == 0) {
+    if (strcmp(argv[1], "-V") == 0 || strcmp(argv[1], "-v") == 0)
       do_show_version();
-      if (argc == 2)
-       exit(0);
-      arg_ptr = argv[2];
-    }
     ranlib_only(arg_ptr);
   }
+  else
+    is_ranlib = 0;
 
   if (argc == 2 && strcmp(argv[1],"-M") == 0) {
     mri_emul();
@@ -278,7 +263,7 @@ main(argc, argv)
   if (*arg_ptr == '-')
    ++arg_ptr;                  /* compatibility */
 
-  while (c = *arg_ptr++) {
+  while ((c = *arg_ptr++) != '\0') {
     switch (c) {
      case 'd':
      case 'm':
@@ -288,7 +273,7 @@ main(argc, argv)
      case 't':
      case 'x':
       if (operation != none)
-       fatal("two different operation switches specified");
+       fatal("two different operation options specified");
       switch (c) {
        case 'd':
        operation = delete;
@@ -346,22 +331,19 @@ main(argc, argv)
       postype = pos_before;
       break;
      case 'M':
-
       mri_mode = 1;
       break;
      default:
-      fatal("invalid option %c", c);
+      fprintf(stderr, "%s: illegal option -- %c", program_name, c);
+      usage ();
     }
   }
 
   if (show_version)
-     do_show_version();
+    do_show_version();
 
   if (argc < 3)
-    if (show_version)
-       exit(0);
-    else
-      usage ();
+    usage ();
 
   if (mri_mode) {
     mri_emul();
@@ -369,29 +351,30 @@ main(argc, argv)
   else {
     if ((operation == none || operation == print_table) 
        && write_armap == 1)
-     ranlib_only(argv[2]);
+      ranlib_only(argv[2]);
 
     if (operation == none)
-     fatal("no operation specified");
+      fatal("no operation specified");
 
     if (newer_only && operation != replace)
-     fatal("'u' only meaningful with 'r' option.");
+      fatal("`u' is only meaningful with the `r' option.");
 
     arg_index = 2;
 
     if (postype != pos_default)
-     posname = argv[arg_index++];
+      posname = argv[arg_index++];
 
     inarch_filename = argv[arg_index++];
 
     files = arg_index < argc ? argv + arg_index : NULL;
 
-    if (operation == quick_append) {
-      if (files != NULL)
-       do_quick_append(inarch_filename, files);
-      exit(0);
-    }
-
+    if (operation == quick_append)
+      {
+       /* Note that quick appending to a non-existent archive creates it,
+          even if there are no files to append. */
+       do_quick_append(inarch_filename, files);
+       exit(0);
+      }
 
     open_inarch(inarch_filename);
 
@@ -426,7 +409,9 @@ main(argc, argv)
 
       /* Shouldn't happen! */
      default:
-      fprintf(stderr, "Sorry; this option not implemented.\n");
+      fprintf(stderr, "%s: internal error -- this option not implemented\n",
+             program_name);
+      exit (1);
     }
   }
   return (0);
@@ -454,37 +439,43 @@ open_inarch(archive_filename)
     bfd            *next_one;
     struct stat     sbuf;
     bfd_error = no_error;
+
     if (stat(archive_filename, &sbuf) != 0) {
+
+#ifndef __GO32__
+
+/* KLUDGE ALERT! Temporary fix until I figger why
+ * stat() is wrong ... think it's buried in GO32's IDT
+ * - Jax
+ */
        if (errno != ENOENT)
            bfd_fatal(archive_filename);
+#endif
+
        if (!operation_alters_arch) {
-         fprintf (stderr, "%s: %s not found.\n", program_name,
-                  archive_filename);
+         fprintf (stderr, "%s: ", program_name);
+         perror (archive_filename);
          maybequit();
          return 0;
        }       
 
        /* This routine is one way to forcibly create the archive. */
+
        do_quick_append(archive_filename, 0);
     }
 
-#ifdef GNU960
-    inarch = bfd_openr(archive_filename, default_target);
-#else
     inarch = bfd_openr(archive_filename, NULL);
-#endif
     if (inarch == NULL) {
+
       bloser:
+
         fprintf (stderr, "%s: ", program_name);
        bfd_perror(archive_filename);
        exit(1);
     }
 
     if (bfd_check_format(inarch, bfd_archive) != true)
-       fatal("File %s is not an archive.", archive_filename);
-#ifdef GNU960
-    gnu960_verify_target(inarch);      /* Exits on failure */
-#endif
+       fatal("%s is not an archive", archive_filename);
     last_one = &(inarch->next);
     /* Read all the contents right away, regardless. */
     for (next_one = bfd_openr_next_archived_file(inarch, NULL);
@@ -511,7 +502,7 @@ print_contents(abfd)
     struct stat     buf;
     long            size;
     if (bfd_stat_arch_elt(abfd, &buf) != 0)
-       fatal("Internal stat error on %s", abfd->filename);
+       fatal("internal stat error on %s", abfd->filename);
 
     if (verbose)
        printf("\n<member %s>\n\n", abfd->filename);
@@ -530,7 +521,7 @@ print_contents(abfd)
                                                           abstraction!  */
 
        if (nread != tocopy)
-           fatal("file %s not a valid archive", abfd->my_archive->filename);
+           fatal("%s is not a valid archive", abfd->my_archive->filename);
        fwrite(cbuf, 1, nread, stdout);
        ncopied += tocopy;
     }
@@ -561,7 +552,7 @@ extract_file(abfd)
     long            size;
     struct stat     buf;
     if (bfd_stat_arch_elt(abfd, &buf) != 0)
-       fatal("Internal stat error on %s", abfd->filename);
+       fatal("internal stat error on %s", abfd->filename);
     size = buf.st_size;
 
     if (verbose)
@@ -585,7 +576,7 @@ extract_file(abfd)
 
        nread = bfd_read(cbuf, 1, tocopy, abfd);
        if (nread != tocopy)
-           fatal("file %s not a valid archive", abfd->my_archive->filename);
+           fatal("%s is not a valid archive", abfd->my_archive->filename);
 
        /* See comment above; this saves disk arm motion */
        if (!ostream) {
@@ -647,8 +638,18 @@ do_quick_append(archive_filename, files_to_append)
     bfd_error = no_error;
 
     if (stat(archive_filename, &sbuf) != 0) {
+
+#ifndef __GO32__
+
+/* KLUDGE ALERT! Temporary fix until I figger why
+ * stat() is wrong ... think it's buried in GO32's IDT
+ * - Jax
+ */
+
        if (errno != ENOENT)
            bfd_fatal(archive_filename);
+#endif
+
        newfile = true;
     }
 
@@ -659,12 +660,7 @@ do_quick_append(archive_filename, files_to_append)
        exit(1);
     }
 
-    /* bletch */
-#ifdef GNU960
-    temp = bfd_openr(archive_filename, default_target);
-#else
     temp = bfd_openr(archive_filename, NULL);
-#endif
     if (temp == NULL) {
         fprintf (stderr, "%s: ", program_name);
        bfd_perror(archive_filename);
@@ -672,15 +668,13 @@ do_quick_append(archive_filename, files_to_append)
     }
     if (newfile == false) {
        if (bfd_check_format(temp, bfd_archive) != true)
-           fatal("File %s is not an archive.", archive_filename);
-#ifdef GNU960
-       gnu960_verify_target(temp);     /* Exits on failure */
-#endif
+           fatal("%s is not an archive", archive_filename);
     }
     else {
        fwrite(ARMAG, 1, SARMAG, ofile);
        if (!silent_create)
-           fprintf(stderr, "%s: creating %s\n", program_name, archive_filename);
+           fprintf(stderr, "%s: creating %s\n",
+                   program_name, archive_filename);
     }
 
     /* assume it's an achive, go straight to the end, sans $200 */
@@ -736,11 +730,17 @@ write_archive()
 {
     bfd            *obfd;
     int             namelen = strlen(inarch->filename);
-    char           *new_name = xmalloc(namelen + 6);
+    char           *new_name = xmalloc(namelen + EXT_NAME_LEN);
     bfd            *contents_head = inarch->next;
 
        strcpy(new_name, inarch->filename);
+
+#ifdef __GO32__        /* avoid long .extensions for MS-DOS */
+       strcpy(new_name + namelen, "-a");
+#else
        strcpy(new_name + namelen, "-art");
+#endif
+
        obfd = bfd_openw(new_name,
                 /* FIXME: violates abstraction; need a better protocol */
                         (inarch->xvec ? bfd_get_target(inarch) : NULL));
@@ -887,8 +887,8 @@ move_members(files_to_move)
            }
            current_ptr_ptr = &((*current_ptr_ptr)->next);
        }
-       fprintf(stderr, "No entry %s in archive %s!\n",
-               *files_to_move, inarch->filename);
+       fprintf(stderr, "%s: no entry %s in archive %s!\n",
+               program_name, *files_to_move, inarch->filename);
        exit(1);
 next_file:;
     }
@@ -921,7 +921,7 @@ replace_members(files_to_move)
                    if (current->arelt_data == NULL) {
                      /* This can only happen if you specify a file on the
                         command line more than once. */
-                     fprintf (stderr, "Duplicate file specified: %s -- skipping.\n", *files_to_move);
+                     fprintf (stderr, "%s: duplicate file specified: %s -- skipping\n", program_name, *files_to_move);
                      goto next_file;
                    }
 
@@ -931,7 +931,7 @@ replace_members(files_to_move)
                        goto next_file;
                    }
                    if (bfd_stat_arch_elt(current, &asbuf) != 0)
-                       fatal("Internal stat error on %s", current->filename);
+                       fatal("internal stat error on %s", current->filename);
 
                    if (fsbuf.st_mtime <= asbuf.st_mtime)
                        goto next_file;
@@ -944,12 +944,10 @@ replace_members(files_to_move)
                temp = *after_bfd;
                *after_bfd = bfd_openr(*files_to_move, NULL);
                if (*after_bfd == (bfd *) NULL) {
-                   fprintf(stderr, "Can't open file %s\n", *files_to_move);
+                   fprintf(stderr, "%s: ", program_name);
+                   bfd_perror (*files_to_move);
                    exit(1);
                }
-#ifdef GNU960
-               gnu960_verify_target(*after_bfd);       /* Exits on failure */
-#endif
                (*after_bfd)->next = temp;
 
                if (verbose) {
@@ -967,12 +965,10 @@ replace_members(files_to_move)
        temp = *after_bfd;
        *after_bfd = bfd_openr(*files_to_move, NULL);
        if (*after_bfd == (bfd *) NULL) {
-           fprintf(stderr, "Can't open file %s\n", *files_to_move);
-           exit(1);
+         fprintf(stderr, "%s: ", program_name);
+         bfd_perror (*files_to_move);
+         exit(1);
        }
-#ifdef GNU960
-       gnu960_verify_target(*after_bfd);       /* Exits on failure */
-#endif
        if (verbose) {
            printf("c - %s\n", *files_to_move);
        }
This page took 0.029644 seconds and 4 git commands to generate.