Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/amiga/stand/binpatch KNF



details:   https://anonhg.NetBSD.org/src/rev/1c84a4fb94a1
branches:  trunk
changeset: 345473:1c84a4fb94a1
user:      dholland <dholland%NetBSD.org@localhost>
date:      Mon May 30 02:57:32 2016 +0000

description:
KNF

diffstat:

 sys/arch/amiga/stand/binpatch/binpatch.c |  373 ++++++++++++++++++------------
 1 files changed, 218 insertions(+), 155 deletions(-)

diffs (truncated from 542 to 300 lines):

diff -r 45ce414b941b -r 1c84a4fb94a1 sys/arch/amiga/stand/binpatch/binpatch.c
--- a/sys/arch/amiga/stand/binpatch/binpatch.c  Mon May 30 02:41:39 2016 +0000
+++ b/sys/arch/amiga/stand/binpatch/binpatch.c  Mon May 30 02:57:32 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: binpatch.c,v 1.13 2016/05/30 02:41:39 dholland Exp $   */
+/*     $NetBSD: binpatch.c,v 1.14 2016/05/30 02:57:32 dholland Exp $   */
 
 /* Author: Markus Wild mw%eunet.ch@localhost ???   */
 /* Modified: Rob Leland leland%mitre.org@localhost */
@@ -96,13 +96,17 @@
        struct exec e;
        int c;
        u_long addr = 0, offset = 0;
-       u_long index = 0;/* Related to offset */
+       /* Related to offset */
+       u_long index = 0;
        u_long replace = 0, do_replace = 0;
        char *symbol = 0;
-       char size = 4;  /* default to long */
-       char size_opt = 0; /* Flag to say size option was set, used with index */
+       /* default to long */
+       char size = 4;
+       /* Flag to say size option was set, used with index */
+       char size_opt = 0;
        char *fname;
-       char *pgname = argv[0]; /* Program name */
+       /* Program name */
+       char *pgname = argv[0];
        int fd;
        int type, off;
        u_long  lval;
@@ -110,21 +114,23 @@
        u_char  cval;
 
 
-       while ((c = getopt (argc, argv, "H:a:bwlr:s:o:")) != -1)
-               switch (c)
-               {
+       while ((c = getopt (argc, argv, "H:a:bwlr:s:o:")) != -1) {
+               switch (c) {
                    case 'H':
                        Usage(argv[0]);
                        break;
                    case 'a':
-                       if (addr || symbol)
+                       if (addr || symbol) {
                                error ("only one address/symbol allowed");
-                       if (! strncmp (optarg, "0x", 2))
+                       }
+                       if (!strncmp(optarg, "0x", 2)) {
                                sscanf (optarg, "%x", &addr);
-                       else
+                       } else {
                                addr = atoi (optarg);
-                       if (! addr)
+                       }
+                       if (!addr) {
                                error ("invalid address");
+                       }
                        break;
 
                    case 'b':
@@ -144,194 +150,228 @@
 
                    case 'r':
                        do_replace = 1;
-                       if (! strncmp (optarg, "0x", 2))
+                       if (!strncmp(optarg, "0x", 2)) {
                                sscanf (optarg, "%x", &replace);
-                       else
+                       } else {
                                replace = atoi (optarg);
+                       }
                        break;
 
                    case 's':
-                       if (addr || symbol)
+                       if (addr || symbol) {
                                error ("only one address/symbol allowed");
+                       }
                        symbol = optarg;
                        break;
 
                    case 'o':
-                       if (offset)
+                       if (offset) {
                                error ("only one offset allowed");
-                       if (! strncmp (optarg, "0x", 2))
+                       }
+                       if (! strncmp (optarg, "0x", 2)) {
                                sscanf (optarg, "%x", &offset);
-                       else
+                       } else {
                                offset = atoi (optarg);
+                       }
                        break;
-               }/* while switch() */
+               }
+               /* end while switch() */
+       }
 
-       if (argc > 1)
-       {
-               if (addr || symbol)
-               {
+       if (argc > 1) {
+               if (addr || symbol) {
                        argv += optind;
                        argc -= optind;
 
-                       if (argc < 1)
+                       if (argc < 1) {
                                error ("No file to patch.");
+                       }
 
                        fname = argv[0];
-                       if ((fd = open (fname, 0)) < 0)
+                       if ((fd = open (fname, 0)) < 0) {
                                error ("Can't open file");
+                       }
 
                        if (read (fd, &e, sizeof (e)) != sizeof (e)
-                           || N_BADMAG (e))
+                           || N_BADMAG (e)) {
                                error ("Not a valid executable.");
+                       }
 
                        /* fake mid, so the N_ macros work on the amiga.. */
                        e.a_midmag |= 127 << 16;
 
-                       if (symbol)
-                       {
+                       if (symbol) {
                                struct nlist nl[2];
-                               if (offset == 0)
-                               {
+
+                               if (offset == 0) {
                                        u_long new_do_replace = 0;
 
-                                       new_do_replace = FindAssign(symbol,&replace);
+                                       new_do_replace = FindAssign(symbol,
+                                                               &replace);
                                        if (new_do_replace && do_replace)
-                                               error("Cannot use both '=' and '-r' option!");
+                                               error("Cannot use both '=' "
+                                                     "and '-r' option!");
                                        FindOffset(symbol,&index);
-                                       if (size_opt)
-                                               offset = index*size; /* Treat like an index */
-                                       else
-                                               offset = index; /* Treat index like an offset */
+                                       if (size_opt) {
+                                               /* Treat like an index */
+                                               offset = index*size;
+                                       } else {
+                                               /* Treat like an offset */
+                                               offset = index;
+                                       }
                                        if (new_do_replace)
                                                do_replace = new_do_replace;
                                }
                                nl[0].n_un.n_name = symbol;
                                nl[1].n_un.n_name = 0;
-                               if (nlist (fname, nl) != 0)
-                               {
+                               if (nlist (fname, nl) != 0) {
                                        fprintf(stderr,"Symbol is %s ",symbol);
                                        error ("Symbol not found.");
                                }
                                addr = nl[0].n_value;
                                type = nl[0].n_type & N_TYPE;
-                       }
-                       else
-                       {
+                       } else {
                                type = N_UNDF;
-                               if (addr >= N_TXTADDR(e) && addr < N_DATADDR(e))
+                               if (addr >= N_TXTADDR(e) &&
+                                   addr < N_DATADDR(e)) {
                                        type = N_TEXT;
-                               else if (addr >= N_DATADDR(e) && addr < N_DATADDR(e) + e.a_data)
+                               } else if (addr >= N_DATADDR(e) &&
+                                   addr < N_DATADDR(e) + e.a_data) {
                                        type = N_DATA;
+                               }
                        }
                        addr += offset;
 
-                       /* if replace-mode, have to reopen the file for writing.
-                          Can't do that from the beginning, or nlist() will not
-                          work (at least not under AmigaDOS) */
-                       if (do_replace)
-                       {
+                       /*
+                        * if replace-mode, have to reopen the file
+                        * for writing. Can't do that from the
+                        * beginning, or nlist() will not work (at
+                        * least not under AmigaDOS)
+                        */
+                       if (do_replace) {
                                close (fd);
-                               if ((fd = open (fname, 2)) == -1)
-                                       error ("Can't reopen file for writing.");
+                               if ((fd = open (fname, 2)) == -1) {
+                                       error("Can't reopen file for writing.");
+                               }
+                       }
+
+                       if (type != N_TEXT && type != N_DATA) {
+                               error("address/symbol is not in text "
+                                     "or data section.");
                        }
 
-                       if (type != N_TEXT && type != N_DATA)
-                               error ("address/symbol is not in text or data section.");
+                       if (type == N_TEXT) {
+                               off = addr - N_TXTADDR(e) + N_TXTOFF(e);
+                       } else {
+                               off = addr - N_DATADDR(e) + N_DATOFF(e);
+                       }
 
-                       if (type == N_TEXT)
-                               off = addr - N_TXTADDR(e) + N_TXTOFF(e);
-                       else
-                               off = addr - N_DATADDR(e) + N_DATOFF(e);
+                       if (lseek(fd, off, 0) == -1) {
+                               error ("lseek");
+                       }
 
-                       if (lseek (fd, off, 0) == -1)
-                               error ("lseek");
-
-                       /* not beautiful, but works on big and little endian machines */
-                       switch (size)
-                       {
+                       /*
+                        * not beautiful, but works on big and little
+                        * endian machines
+                        */
+                       switch (size) {
                            case 1:
-                               if (read (fd, &cval, 1) != 1)
+                               if (read(fd, &cval, 1) != 1) {
                                        error ("cread");
+                               }
                                lval = cval;
                                break;
 
                            case 2:
-                               if (read (fd, &sval, 2) != 2)
+                               if (read(fd, &sval, 2) != 2) {
                                        error ("sread");
+                               }
                                lval = sval;
                                break;
 
                            case 4:
-                               if (read (fd, &lval, 4) != 4)
+                               if (read(fd, &lval, 4) != 4) {
                                        error ("lread");
+                               }
                                break;
                        }/* switch size */
 
 
-                       if (symbol)
-                               printf ("%s(0x%x): %d (0x%x)\n", symbol, addr, lval, lval);
-                       else
-                               printf ("0x%x: %d (0x%x)\n", addr, lval, lval);
+                       if (symbol) {
+                               printf("%s(0x%x): %d (0x%x)\n", symbol, addr,
+                                       lval, lval);
+                       } else {
+                               printf("0x%x: %d (0x%x)\n", addr, lval, lval);
+                       }
 
-                       if (do_replace)
-                       {
-                               if (lseek (fd, off, 0) == -1)
+                       if (do_replace) {
+                               if (lseek (fd, off, 0) == -1) {
                                        error ("write-lseek");
-                               switch (size)
-                               {
+                               }
+                               switch (size) {
                                    case 1:
                                        cval = replace;
-                                       if (cval != replace)
+                                       if (cval != replace) {
                                                error ("byte-value overflow.");
-                                       if (write (fd, &cval, 1) != 1)
+                                       }
+                                       if (write(fd, &cval, 1) != 1) {
                                                error ("cwrite");
+                                       }
                                        break;
 
                                    case 2:



Home | Main Index | Thread Index | Old Index