xref: /csrg-svn/usr.bin/hexdump/odsyntax.c (revision 41457)
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.1 (Berkeley) 05/08/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;
27 	char **argv;
28 
29 	deprecated = 1;
30 	argv = *argvp;
31 	while ((ch = getopt(argc, argv, "aBbcDdeFfHhIiLlOoPpswvXx")) != EOF)
32 		switch (ch) {
33 		case 'a':
34 			add("\"%07.7_Ao\n\"");
35 			add("\"%07.7_ao  \" 16/1 \"%3_u \" \"\\n\"");
36 			break;
37 		case 'B':
38 		case 'o':
39 			add("\"%07.7_Ao\n\"");
40 			add("\"%07.7_ao  \" 8/2 \"%06o \" \"\\n\"");
41 			break;
42 		case 'b':
43 			add("\"%07.7_Ao\n\"");
44 			add("\"%07.7_ao  \" 16/1 \"%03o \" \"\\n\"");
45 			break;
46 		case 'c':
47 			add("\"%07.7_Ao\n\"");
48 			add("\"%07.7_ao  \" 16/1 \"%3_c \" \"\\n\"");
49 			break;
50 		case 'd':
51 			add("\"%07.7_Ao\n\"");
52 			add("\"%07.7_ao  \" 8/2 \"%05u \" \"\\n\"");
53 			break;
54 		case 'D':
55 			add("\"%07.7_Ao\n\"");
56 			add("\"%07.7_ao  \" 4/4 \"%010u \" \"\\n\"");
57 			break;
58 		case 'e':		/* undocumented in od */
59 		case 'F':
60 			add("\"%07.7_Ao\n\"");
61 			add("\"%07.7_ao  \" 2/8 \"%21.14e \" \"\\n\"");
62 			break;
63 
64 		case 'f':
65 			add("\"%07.7_Ao\n\"");
66 			add("\"%07.7_ao  \" 4/4 \"%14.7e \" \"\\n\"");
67 			break;
68 		case 'H':
69 		case 'X':
70 			add("\"%07.7_Ao\n\"");
71 			add("\"%07.7_ao  \" 4/4 \"%08x \" \"\\n\"");
72 			break;
73 		case 'h':
74 		case 'x':
75 			add("\"%07.7_Ao\n\"");
76 			add("\"%07.7_ao  \" 8/2 \"%04x \" \"\\n\"");
77 			break;
78 		case 'I':
79 		case 'L':
80 		case 'l':
81 			add("\"%07.7_Ao\n\"");
82 			add("\"%07.7_ao  \" 4/4 \"%11d \" \"\\n\"");
83 			break;
84 		case 'i':
85 			add("\"%07.7_Ao\n\"");
86 			add("\"%07.7_ao  \" 8/2 \"%6d \" \"\\n\"");
87 			break;
88 		case 'O':
89 			add("\"%07.7_Ao\n\"");
90 			add("\"%07.7_ao  \" 4/4 \"%011o \" \"\\n\"");
91 			break;
92 		case 'v':
93 			vflag = ALL;
94 			break;
95 		case 'P':
96 		case 'p':
97 		case 's':
98 		case 'w':
99 		case '?':
100 		default:
101 			(void)fprintf(stderr,
102 			    "od: od(1) has been deprecated for hexdump(1).\n");
103 			if (ch != '?')
104 				(void)fprintf(stderr,
105 "od: hexdump(1) compatibility doesn't support the -%c option%s\n",
106 				    ch, ch == 's' ? "; see strings(1)." : ".");
107 			usage();
108 		}
109 
110 	if (!fshead) {
111 		add("\"%07.7_Ao\n\"");
112 		add("\"%07.7_ao  \" 8/2 \"%06o \" \"\\n\"");
113 	}
114 
115 	*argvp += optind;
116 }
117