]> err.no Git - util-linux/commitdiff
hexdump: remove od functionality in favor to GNU coreutils od
authorSami Kerola <kerolasa@iki.fi>
Sun, 12 Dec 2010 22:43:57 +0000 (23:43 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 30 Dec 2010 22:11:43 +0000 (23:11 +0100)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
text-utils/Makefile.am
text-utils/conv.c
text-utils/hexdump.c
text-utils/hexdump.h
text-utils/od.1 [deleted file]
text-utils/odsyntax.c [deleted file]

index dec895b4cb3fdf00177a5ff3f748d83a40140186..eee00c320085385c1377a7b8e5f14e726a504f2d 100644 (file)
@@ -4,7 +4,7 @@ EXTRA_DIST = README.clear README.col
 
 usrbin_exec_PROGRAMS = col colcrt colrm column hexdump rev line tailf
 
-hexdump_SOURCES = hexdump.c conv.c display.c hexsyntax.c odsyntax.c parse.c \
+hexdump_SOURCES = hexdump.c conv.c display.c hexsyntax.c parse.c \
                  hexdump.h
 
 dist_man_MANS = col.1 colcrt.1 colrm.1 column.1 hexdump.1 rev.1 line.1 tailf.1
index 8e0efa16d84ff3dbaa63e6522c350e2e1525ed82..95b8cd296b25fff7ce65da3e07a2a6c6cca6c31e 100644 (file)
@@ -48,8 +48,6 @@ conv_c(PR *pr, u_char *p)
                goto strpr;
        /* case '\a': */
        case '\007':
-               if (deprecated)         /* od didn't know about \a */
-                       break;
                str = "\\a";
                goto strpr;
        case '\b':
@@ -68,8 +66,6 @@ conv_c(PR *pr, u_char *p)
                str = "\\t";
                goto strpr;
        case '\v':
-               if (deprecated)
-                       break;
                str = "\\v";
                goto strpr;
        default:
@@ -99,16 +95,10 @@ conv_u(PR *pr, u_char *p)
                                                /* od used nl, not lf */
        if (*p <= 0x1f) {
                *pr->cchar = 's';
-               if (deprecated && *p == 0x0a)
-                       (void)printf(pr->fmt, "nl");
-               else
-                       (void)printf(pr->fmt, list[*p]);
+               (void)printf(pr->fmt, list[*p]);
        } else if (*p == 0x7f) {
                *pr->cchar = 's';
                (void)printf(pr->fmt, "del");
-       } else if (deprecated && *p == 0x20) {  /* od replaced space with sp */
-               *pr->cchar = 's';
-               (void)printf(pr->fmt, " sp");
        } else if (isprint(*p)) {
                *pr->cchar = 'c';
                (void)printf(pr->fmt, *p);
index 68bb76ec5f4a79228c26f562f236c6fb2fa62319..6132bf11501d185788ec34ae0c12b2aa54b893f0 100644 (file)
@@ -55,10 +55,13 @@ int main(int argc, char **argv)
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
-       if (!(p = strrchr(argv[0], 'o')) || strcmp(p, "od"))
+       if (!(p = strrchr(argv[0], 'o')) || strcmp(p, "od")) {
                newsyntax(argc, &argv);
-       else
-               oldsyntax(argc, &argv);
+       } else {
+               fprintf(stderr,
+                       _("Calling hexdump as od has been deprecated in favour to GNU coreutils od.\n"));
+               return(1);
+       }
 
        /* figure out the data block size */
        for (blocksize = 0, tfs = fshead; tfs; tfs = tfs->nextfs) {
index f9e963bbeaa189358fbc4e6fdb97cdd27719ffee..1653991893b095668875ee0e490d2ce355b29363 100644 (file)
@@ -92,5 +92,4 @@ void usage(void);
 void conv_c(PR *, u_char *);
 void conv_u(PR *, u_char *);
 int  next(char **);
-void oldsyntax(int, char ***);
 void newsyntax(int, char ***);
diff --git a/text-utils/od.1 b/text-utils/od.1
deleted file mode 100644 (file)
index 172ee19..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-.\" Copyright (c) 1990, 1993
-.\"    The Regents of the University of California.  All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\"    notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\"    notice, this list of conditions and the following disclaimer in the
-.\"    documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\"    must display the following acknowledgement:
-.\"    This product includes software developed by the University of
-.\"    California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\"    may be used to endorse or promote products derived from this software
-.\"    without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\"    from: @(#)od.1  8.1 (Berkeley) 6/6/93
-.\"
-.Dd June 8, 1998
-.Os
-.Dt OD 1
-.Sh NAME
-.Nm od
-.Nd octal, decimal, hex, ascii dump
-.Sh SYNOPSIS
-.Nm ""
-.Op Fl aBbcDdeFfHhIiLlOovXx
-.Sm off
-.Oo
-.Op Cm \&+
-.Li offset
-.Op Cm \&.
-.Op Cm Bb
-.Oc
-.Ar file
-.Sh DESCRIPTION
-.Nm
- has been deprecated in favor of
-.Xr hexdump 1 .
-.Pp
-.Xr Hexdump ,
-if called as
-.Nm "" ,
-provides compatibility for the options listed above.
-.Pp
-It does not provide compatibility for the
-.Fl s
-option (see
-.Xr strings 1 )
-or the
-.Fl P ,
-.Fl p ,
-or
-.Fl w
-options, nor is compatibility provided for the ``label'' component
-of the offset syntax.
-.Sh SEE ALSO
-.Xr hexdump 1 ,
-.Xr strings 1
-.Sh AVAILABILITY
-The od command is part of the util-linux package and is available from
-ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
diff --git a/text-utils/odsyntax.c b/text-utils/odsyntax.c
deleted file mode 100644 (file)
index e7711f9..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
- /* 1999-02-22 Arkadiusz Mi¶kiewicz <misiek@pld.ORG.PL>
-  * - added Native Language Support
-  */
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>             /* for isdigit() */
-#include <unistd.h>            /* for getopt() */
-#include "hexdump.h"
-#include "nls.h"
-
-static void odoffset(int, char ***);
-static void odprecede(void);
-
-int deprecated;
-
-void
-oldsyntax(int argc, char ***argvp)
-{
-       int ch;
-       char **argv;
-
-       deprecated = 1;
-       argv = *argvp;
-       while ((ch = getopt(argc, argv, "aBbcDdeFfHhIiLlOoPpswvXx")) != -1)
-               switch (ch) {
-               case 'a':
-                       odprecede();
-                       add("16/1 \"%3_u \" \"\\n\"");
-                       break;
-               case 'B':
-               case 'o':
-                       odprecede();
-                       add("8/2 \" %06o \" \"\\n\"");
-                       break;
-               case 'b':
-                       odprecede();
-                       add("16/1 \"%03o \" \"\\n\"");
-                       break;
-               case 'c':
-                       odprecede();
-                       add("16/1 \"%3_c \" \"\\n\"");
-                       break;
-               case 'd':
-                       odprecede();
-                       add("8/2 \"  %05u \" \"\\n\"");
-                       break;
-               case 'D':
-                       odprecede();
-                       add("4/4 \"     %010u \" \"\\n\"");
-                       break;
-               case 'e':               /* undocumented in od */
-               case 'F':
-                       odprecede();
-                       add("2/8 \"          %21.14e \" \"\\n\"");
-                       break;
-                       
-               case 'f':
-                       odprecede();
-                       add("4/4 \" %14.7e \" \"\\n\"");
-                       break;
-               case 'H':
-               case 'X':
-                       odprecede();
-                       add("4/4 \"       %08x \" \"\\n\"");
-                       break;
-               case 'h':
-               case 'x':
-                       odprecede();
-                       add("8/2 \"   %04x \" \"\\n\"");
-                       break;
-               case 'I':
-               case 'L':
-               case 'l':
-                       odprecede();
-                       add("4/4 \"    %11d \" \"\\n\"");
-                       break;
-               case 'i':
-                       odprecede();
-                       add("8/2 \" %6d \" \"\\n\"");
-                       break;
-               case 'O':
-                       odprecede();
-                       add("4/4 \"    %011o \" \"\\n\"");
-                       break;
-               case 'v':
-                       vflag = ALL;
-                       break;
-               case 'P':
-               case 'p':
-               case 's':
-               case 'w':
-               case '?':
-               default:
-                       fprintf(stderr,
-                           _("od: od(1) has been deprecated for hexdump(1).\n"));
-                       if (ch != '?')
-                               fprintf(stderr,
-_("od: hexdump(1) compatibility doesn't support the -%c option%s\n"),
-                                   ch, ch == 's' ? _("; see strings(1).") : ".");
-                       usage();
-               }
-
-       if (!fshead) {
-               add("\"%07.7_Ao\n\"");
-               add("\"%07.7_ao  \" 8/2 \"%06o \" \"\\n\"");
-       }
-
-       argc -= optind;
-       *argvp += optind;
-
-       if (argc)
-               odoffset(argc, argvp);
-}
-
-#define        ishexdigit(c) \
-       ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))
-
-static void
-odoffset(int argc, char ***argvp)
-{
-       char *num, *p;
-       int base;
-       char *end;
-
-       /*
-        * The offset syntax of od(1) was genuinely bizarre.  First, if
-        * it started with a plus it had to be an offset.  Otherwise, if
-        * there were at least two arguments, a number or lower-case 'x'
-        * followed by a number makes it an offset.  By default it was
-        * octal; if it started with 'x' or '0x' it was hex.  If it ended
-        * in a '.', it was decimal.  If a 'b' or 'B' was appended, it
-        * multiplied the number by 512 or 1024 byte units.  There was
-        * no way to assign a block count to a hex offset.
-        *
-        * We assume it's a file if the offset is bad.
-        */
-       p = argc == 1 ? (*argvp)[0] : (*argvp)[1];
-       if (!p)
-               return;
-
-       if (*p != '+' && (argc < 2 ||
-           (!isdigit((unsigned char)p[0]) &&
-            (p[0] != 'x' || !ishexdigit(p[1])))))
-               return;
-
-       base = 0;
-       /*
-        * skip over leading '+', 'x[0-9a-fA-f]' or '0x', and
-        * set base.
-        */
-       if (p[0] == '+')
-               ++p;
-       if (p[0] == 'x' && ishexdigit(p[1])) {
-               ++p;
-               base = 16;
-       } else if (p[0] == '0' && p[1] == 'x') {
-               p += 2;
-               base = 16;
-       }
-
-       /* skip over the number */
-       if (base == 16)
-               for (num = p; ishexdigit(*p); ++p);
-       else
-               for (num = p; isdigit((unsigned char)*p); ++p);
-
-       /* check for no number */
-       if (num == p)
-               return;
-
-       /* if terminates with a '.', base is decimal */
-       if (*p == '.') {
-               if (base)
-                       return;
-               base = 10;
-       }
-
-       skip = strtol(num, &end, base ? base : 8);
-
-       /* if end isn't the same as p, we got a non-octal digit */
-       if (end != p) {
-               skip = 0;
-               return;
-       }
-
-       if (*p) {
-               if (*p == 'B') {
-                       skip *= 1024;
-                       p++;
-               } else if (*p == 'b') {
-                       skip *= 512;
-                       p++;
-               }
-       }
-
-       if (*p) {
-               skip = 0;
-               return;
-       }
-
-       /*
-        * If the offset uses a non-octal base, the base of
-        * the offset is changed as well.  This isn't pretty,
-        * but it's easy.
-        */
-#define        TYPE_OFFSET     7
-       if (base == 16) {
-               fshead->nextfu->fmt[TYPE_OFFSET] = 'x';
-               fshead->nextfs->nextfu->fmt[TYPE_OFFSET] = 'x';
-       } else if (base == 10) {
-               fshead->nextfu->fmt[TYPE_OFFSET] = 'd';
-               fshead->nextfs->nextfu->fmt[TYPE_OFFSET] = 'd';
-       }
-
-       /* Terminate file list. */
-       (*argvp)[1] = NULL;
-}
-
-static void
-odprecede(void)
-{
-       static int first = 1;
-
-       if (first) {
-               first = 0;
-               add("\"%07.7_Ao\n\"");
-               add("\"%07.7_ao  \"");
-       } else
-               add("\"         \"");
-}