xref: /csrg-svn/usr.bin/hexdump/odsyntax.c (revision 41457)
1*41457Sbostic /*-
2*41457Sbostic  * Copyright (c) 1990 The Regents of the University of California.
3*41457Sbostic  * All rights reserved.
4*41457Sbostic  *
5*41457Sbostic  * %sccs.include.redist.c%
6*41457Sbostic  */
7*41457Sbostic 
8*41457Sbostic #ifndef lint
9*41457Sbostic static char sccsid[] = "@(#)odsyntax.c	5.1 (Berkeley) 05/08/90";
10*41457Sbostic #endif /* not lint */
11*41457Sbostic 
12*41457Sbostic #include <sys/types.h>
13*41457Sbostic #include <stdio.h>
14*41457Sbostic #include "hexdump.h"
15*41457Sbostic 
16*41457Sbostic int deprecated;
17*41457Sbostic 
18*41457Sbostic oldsyntax(argc, argvp)
19*41457Sbostic 	int argc;
20*41457Sbostic 	char ***argvp;
21*41457Sbostic {
22*41457Sbostic 	extern enum _vflag vflag;
23*41457Sbostic 	extern FS *fshead;
24*41457Sbostic 	extern char *optarg;
25*41457Sbostic 	extern int length, optind;
26*41457Sbostic 	int ch;
27*41457Sbostic 	char **argv;
28*41457Sbostic 
29*41457Sbostic 	deprecated = 1;
30*41457Sbostic 	argv = *argvp;
31*41457Sbostic 	while ((ch = getopt(argc, argv, "aBbcDdeFfHhIiLlOoPpswvXx")) != EOF)
32*41457Sbostic 		switch (ch) {
33*41457Sbostic 		case 'a':
34*41457Sbostic 			add("\"%07.7_Ao\n\"");
35*41457Sbostic 			add("\"%07.7_ao  \" 16/1 \"%3_u \" \"\\n\"");
36*41457Sbostic 			break;
37*41457Sbostic 		case 'B':
38*41457Sbostic 		case 'o':
39*41457Sbostic 			add("\"%07.7_Ao\n\"");
40*41457Sbostic 			add("\"%07.7_ao  \" 8/2 \"%06o \" \"\\n\"");
41*41457Sbostic 			break;
42*41457Sbostic 		case 'b':
43*41457Sbostic 			add("\"%07.7_Ao\n\"");
44*41457Sbostic 			add("\"%07.7_ao  \" 16/1 \"%03o \" \"\\n\"");
45*41457Sbostic 			break;
46*41457Sbostic 		case 'c':
47*41457Sbostic 			add("\"%07.7_Ao\n\"");
48*41457Sbostic 			add("\"%07.7_ao  \" 16/1 \"%3_c \" \"\\n\"");
49*41457Sbostic 			break;
50*41457Sbostic 		case 'd':
51*41457Sbostic 			add("\"%07.7_Ao\n\"");
52*41457Sbostic 			add("\"%07.7_ao  \" 8/2 \"%05u \" \"\\n\"");
53*41457Sbostic 			break;
54*41457Sbostic 		case 'D':
55*41457Sbostic 			add("\"%07.7_Ao\n\"");
56*41457Sbostic 			add("\"%07.7_ao  \" 4/4 \"%010u \" \"\\n\"");
57*41457Sbostic 			break;
58*41457Sbostic 		case 'e':		/* undocumented in od */
59*41457Sbostic 		case 'F':
60*41457Sbostic 			add("\"%07.7_Ao\n\"");
61*41457Sbostic 			add("\"%07.7_ao  \" 2/8 \"%21.14e \" \"\\n\"");
62*41457Sbostic 			break;
63*41457Sbostic 
64*41457Sbostic 		case 'f':
65*41457Sbostic 			add("\"%07.7_Ao\n\"");
66*41457Sbostic 			add("\"%07.7_ao  \" 4/4 \"%14.7e \" \"\\n\"");
67*41457Sbostic 			break;
68*41457Sbostic 		case 'H':
69*41457Sbostic 		case 'X':
70*41457Sbostic 			add("\"%07.7_Ao\n\"");
71*41457Sbostic 			add("\"%07.7_ao  \" 4/4 \"%08x \" \"\\n\"");
72*41457Sbostic 			break;
73*41457Sbostic 		case 'h':
74*41457Sbostic 		case 'x':
75*41457Sbostic 			add("\"%07.7_Ao\n\"");
76*41457Sbostic 			add("\"%07.7_ao  \" 8/2 \"%04x \" \"\\n\"");
77*41457Sbostic 			break;
78*41457Sbostic 		case 'I':
79*41457Sbostic 		case 'L':
80*41457Sbostic 		case 'l':
81*41457Sbostic 			add("\"%07.7_Ao\n\"");
82*41457Sbostic 			add("\"%07.7_ao  \" 4/4 \"%11d \" \"\\n\"");
83*41457Sbostic 			break;
84*41457Sbostic 		case 'i':
85*41457Sbostic 			add("\"%07.7_Ao\n\"");
86*41457Sbostic 			add("\"%07.7_ao  \" 8/2 \"%6d \" \"\\n\"");
87*41457Sbostic 			break;
88*41457Sbostic 		case 'O':
89*41457Sbostic 			add("\"%07.7_Ao\n\"");
90*41457Sbostic 			add("\"%07.7_ao  \" 4/4 \"%011o \" \"\\n\"");
91*41457Sbostic 			break;
92*41457Sbostic 		case 'v':
93*41457Sbostic 			vflag = ALL;
94*41457Sbostic 			break;
95*41457Sbostic 		case 'P':
96*41457Sbostic 		case 'p':
97*41457Sbostic 		case 's':
98*41457Sbostic 		case 'w':
99*41457Sbostic 		case '?':
100*41457Sbostic 		default:
101*41457Sbostic 			(void)fprintf(stderr,
102*41457Sbostic 			    "od: od(1) has been deprecated for hexdump(1).\n");
103*41457Sbostic 			if (ch != '?')
104*41457Sbostic 				(void)fprintf(stderr,
105*41457Sbostic "od: hexdump(1) compatibility doesn't support the -%c option%s\n",
106*41457Sbostic 				    ch, ch == 's' ? "; see strings(1)." : ".");
107*41457Sbostic 			usage();
108*41457Sbostic 		}
109*41457Sbostic 
110*41457Sbostic 	if (!fshead) {
111*41457Sbostic 		add("\"%07.7_Ao\n\"");
112*41457Sbostic 		add("\"%07.7_ao  \" 8/2 \"%06o \" \"\\n\"");
113*41457Sbostic 	}
114*41457Sbostic 
115*41457Sbostic 	*argvp += optind;
116*41457Sbostic }
117