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