141457Sbostic /*- 241457Sbostic * Copyright (c) 1990 The Regents of the University of California. 341457Sbostic * All rights reserved. 441457Sbostic * 541457Sbostic * %sccs.include.redist.c% 641457Sbostic */ 741457Sbostic 841457Sbostic #ifndef lint 9*42362Sbostic static char sccsid[] = "@(#)odsyntax.c 5.2 (Berkeley) 05/25/90"; 1041457Sbostic #endif /* not lint */ 1141457Sbostic 1241457Sbostic #include <sys/types.h> 1341457Sbostic #include <stdio.h> 1441457Sbostic #include "hexdump.h" 1541457Sbostic 1641457Sbostic int deprecated; 1741457Sbostic 1841457Sbostic oldsyntax(argc, argvp) 1941457Sbostic int argc; 2041457Sbostic char ***argvp; 2141457Sbostic { 2241457Sbostic extern enum _vflag vflag; 2341457Sbostic extern FS *fshead; 2441457Sbostic extern char *optarg; 2541457Sbostic extern int length, optind; 26*42362Sbostic int ch, first; 2741457Sbostic char **argv; 2841457Sbostic 2941457Sbostic deprecated = 1; 30*42362Sbostic first = 0; 3141457Sbostic argv = *argvp; 3241457Sbostic while ((ch = getopt(argc, argv, "aBbcDdeFfHhIiLlOoPpswvXx")) != EOF) 3341457Sbostic switch (ch) { 3441457Sbostic case 'a': 35*42362Sbostic if (!first++) { 36*42362Sbostic add("\"%07.7_Ao\n\""); 37*42362Sbostic add("\"%07.7_ao \""); 38*42362Sbostic } else 39*42362Sbostic add("\" \""); 40*42362Sbostic add("16/1 \"%3_u \" \"\\n\""); 4141457Sbostic break; 4241457Sbostic case 'B': 4341457Sbostic case 'o': 44*42362Sbostic if (!first++) { 45*42362Sbostic add("\"%07.7_Ao\n\""); 46*42362Sbostic add("\"%07.7_ao \""); 47*42362Sbostic } else 48*42362Sbostic add("\" \""); 49*42362Sbostic add("8/2 \" %06o \" \"\\n\""); 5041457Sbostic break; 5141457Sbostic case 'b': 52*42362Sbostic if (!first++) { 53*42362Sbostic add("\"%07.7_Ao\n\""); 54*42362Sbostic add("\"%07.7_ao \""); 55*42362Sbostic } else 56*42362Sbostic add("\" \""); 57*42362Sbostic add("16/1 \"%03o \" \"\\n\""); 5841457Sbostic break; 5941457Sbostic case 'c': 60*42362Sbostic if (!first++) { 61*42362Sbostic add("\"%07.7_Ao\n\""); 62*42362Sbostic add("\"%07.7_ao \""); 63*42362Sbostic } else 64*42362Sbostic add("\" \""); 65*42362Sbostic add("16/1 \"%3_c \" \"\\n\""); 6641457Sbostic break; 6741457Sbostic case 'd': 68*42362Sbostic if (!first++) { 69*42362Sbostic add("\"%07.7_Ao\n\""); 70*42362Sbostic add("\"%07.7_ao \""); 71*42362Sbostic } else 72*42362Sbostic add("\" \""); 73*42362Sbostic add("8/2 \" %05u \" \"\\n\""); 7441457Sbostic break; 7541457Sbostic case 'D': 76*42362Sbostic if (!first++) { 77*42362Sbostic add("\"%07.7_Ao\n\""); 78*42362Sbostic add("\"%07.7_ao \""); 79*42362Sbostic } else 80*42362Sbostic add("\" \""); 81*42362Sbostic add("4/4 \" %010u \" \"\\n\""); 8241457Sbostic break; 8341457Sbostic case 'e': /* undocumented in od */ 8441457Sbostic case 'F': 85*42362Sbostic if (!first++) { 86*42362Sbostic add("\"%07.7_Ao\n\""); 87*42362Sbostic add("\"%07.7_ao \""); 88*42362Sbostic } else 89*42362Sbostic add("\" \""); 90*42362Sbostic add("2/8 \" %21.14e \" \"\\n\""); 9141457Sbostic break; 9241457Sbostic 9341457Sbostic case 'f': 94*42362Sbostic if (!first++) { 95*42362Sbostic add("\"%07.7_Ao\n\""); 96*42362Sbostic add("\"%07.7_ao \""); 97*42362Sbostic } else 98*42362Sbostic add("\" \""); 99*42362Sbostic add("4/4 \" %14.7e \" \"\\n\""); 10041457Sbostic break; 10141457Sbostic case 'H': 10241457Sbostic case 'X': 103*42362Sbostic if (!first++) { 104*42362Sbostic add("\"%07.7_Ao\n\""); 105*42362Sbostic add("\"%07.7_ao \""); 106*42362Sbostic } else 107*42362Sbostic add("\" \""); 108*42362Sbostic add("4/4 \" %08x \" \"\\n\""); 10941457Sbostic break; 11041457Sbostic case 'h': 11141457Sbostic case 'x': 112*42362Sbostic if (!first++) { 113*42362Sbostic add("\"%07.7_Ao\n\""); 114*42362Sbostic add("\"%07.7_ao \""); 115*42362Sbostic } else 116*42362Sbostic add("\" \""); 117*42362Sbostic add("8/2 \" %04x \" \"\\n\""); 11841457Sbostic break; 11941457Sbostic case 'I': 12041457Sbostic case 'L': 12141457Sbostic case 'l': 122*42362Sbostic if (!first++) { 123*42362Sbostic add("\"%07.7_Ao\n\""); 124*42362Sbostic add("\"%07.7_ao \""); 125*42362Sbostic } else 126*42362Sbostic add("\" \""); 127*42362Sbostic add("4/4 \" %11d \" \"\\n\""); 12841457Sbostic break; 12941457Sbostic case 'i': 130*42362Sbostic if (!first++) { 131*42362Sbostic add("\"%07.7_Ao\n\""); 132*42362Sbostic add("\"%07.7_ao \""); 133*42362Sbostic } else 134*42362Sbostic add("\" \""); 135*42362Sbostic add("8/2 \" %6d \" \"\\n\""); 13641457Sbostic break; 13741457Sbostic case 'O': 138*42362Sbostic if (!first++) { 139*42362Sbostic add("\"%07.7_Ao\n\""); 140*42362Sbostic add("\"%07.7_ao \""); 141*42362Sbostic } else 142*42362Sbostic add("\" \""); 143*42362Sbostic add("4/4 \" %011o \" \"\\n\""); 14441457Sbostic break; 14541457Sbostic case 'v': 14641457Sbostic vflag = ALL; 14741457Sbostic break; 14841457Sbostic case 'P': 14941457Sbostic case 'p': 15041457Sbostic case 's': 15141457Sbostic case 'w': 15241457Sbostic case '?': 15341457Sbostic default: 15441457Sbostic (void)fprintf(stderr, 15541457Sbostic "od: od(1) has been deprecated for hexdump(1).\n"); 15641457Sbostic if (ch != '?') 15741457Sbostic (void)fprintf(stderr, 15841457Sbostic "od: hexdump(1) compatibility doesn't support the -%c option%s\n", 15941457Sbostic ch, ch == 's' ? "; see strings(1)." : "."); 16041457Sbostic usage(); 16141457Sbostic } 16241457Sbostic 16341457Sbostic if (!fshead) { 16441457Sbostic add("\"%07.7_Ao\n\""); 16541457Sbostic add("\"%07.7_ao \" 8/2 \"%06o \" \"\\n\""); 16641457Sbostic } 16741457Sbostic 16841457Sbostic *argvp += optind; 16941457Sbostic } 170