1 /*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 */ 7 8 #ifndef lint 9 static char sccsid[] = "@(#)odsyntax.c 5.2 (Berkeley) 05/25/90"; 10 #endif /* not lint */ 11 12 #include <sys/types.h> 13 #include <stdio.h> 14 #include "hexdump.h" 15 16 int deprecated; 17 18 oldsyntax(argc, argvp) 19 int argc; 20 char ***argvp; 21 { 22 extern enum _vflag vflag; 23 extern FS *fshead; 24 extern char *optarg; 25 extern int length, optind; 26 int ch, first; 27 char **argv; 28 29 deprecated = 1; 30 first = 0; 31 argv = *argvp; 32 while ((ch = getopt(argc, argv, "aBbcDdeFfHhIiLlOoPpswvXx")) != EOF) 33 switch (ch) { 34 case 'a': 35 if (!first++) { 36 add("\"%07.7_Ao\n\""); 37 add("\"%07.7_ao \""); 38 } else 39 add("\" \""); 40 add("16/1 \"%3_u \" \"\\n\""); 41 break; 42 case 'B': 43 case 'o': 44 if (!first++) { 45 add("\"%07.7_Ao\n\""); 46 add("\"%07.7_ao \""); 47 } else 48 add("\" \""); 49 add("8/2 \" %06o \" \"\\n\""); 50 break; 51 case 'b': 52 if (!first++) { 53 add("\"%07.7_Ao\n\""); 54 add("\"%07.7_ao \""); 55 } else 56 add("\" \""); 57 add("16/1 \"%03o \" \"\\n\""); 58 break; 59 case 'c': 60 if (!first++) { 61 add("\"%07.7_Ao\n\""); 62 add("\"%07.7_ao \""); 63 } else 64 add("\" \""); 65 add("16/1 \"%3_c \" \"\\n\""); 66 break; 67 case 'd': 68 if (!first++) { 69 add("\"%07.7_Ao\n\""); 70 add("\"%07.7_ao \""); 71 } else 72 add("\" \""); 73 add("8/2 \" %05u \" \"\\n\""); 74 break; 75 case 'D': 76 if (!first++) { 77 add("\"%07.7_Ao\n\""); 78 add("\"%07.7_ao \""); 79 } else 80 add("\" \""); 81 add("4/4 \" %010u \" \"\\n\""); 82 break; 83 case 'e': /* undocumented in od */ 84 case 'F': 85 if (!first++) { 86 add("\"%07.7_Ao\n\""); 87 add("\"%07.7_ao \""); 88 } else 89 add("\" \""); 90 add("2/8 \" %21.14e \" \"\\n\""); 91 break; 92 93 case 'f': 94 if (!first++) { 95 add("\"%07.7_Ao\n\""); 96 add("\"%07.7_ao \""); 97 } else 98 add("\" \""); 99 add("4/4 \" %14.7e \" \"\\n\""); 100 break; 101 case 'H': 102 case 'X': 103 if (!first++) { 104 add("\"%07.7_Ao\n\""); 105 add("\"%07.7_ao \""); 106 } else 107 add("\" \""); 108 add("4/4 \" %08x \" \"\\n\""); 109 break; 110 case 'h': 111 case 'x': 112 if (!first++) { 113 add("\"%07.7_Ao\n\""); 114 add("\"%07.7_ao \""); 115 } else 116 add("\" \""); 117 add("8/2 \" %04x \" \"\\n\""); 118 break; 119 case 'I': 120 case 'L': 121 case 'l': 122 if (!first++) { 123 add("\"%07.7_Ao\n\""); 124 add("\"%07.7_ao \""); 125 } else 126 add("\" \""); 127 add("4/4 \" %11d \" \"\\n\""); 128 break; 129 case 'i': 130 if (!first++) { 131 add("\"%07.7_Ao\n\""); 132 add("\"%07.7_ao \""); 133 } else 134 add("\" \""); 135 add("8/2 \" %6d \" \"\\n\""); 136 break; 137 case 'O': 138 if (!first++) { 139 add("\"%07.7_Ao\n\""); 140 add("\"%07.7_ao \""); 141 } else 142 add("\" \""); 143 add("4/4 \" %011o \" \"\\n\""); 144 break; 145 case 'v': 146 vflag = ALL; 147 break; 148 case 'P': 149 case 'p': 150 case 's': 151 case 'w': 152 case '?': 153 default: 154 (void)fprintf(stderr, 155 "od: od(1) has been deprecated for hexdump(1).\n"); 156 if (ch != '?') 157 (void)fprintf(stderr, 158 "od: hexdump(1) compatibility doesn't support the -%c option%s\n", 159 ch, ch == 's' ? "; see strings(1)." : "."); 160 usage(); 161 } 162 163 if (!fshead) { 164 add("\"%07.7_Ao\n\""); 165 add("\"%07.7_ao \" 8/2 \"%06o \" \"\\n\""); 166 } 167 168 *argvp += optind; 169 } 170