xref: /csrg-svn/usr.bin/hexdump/odsyntax.c (revision 42362)
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