1: /*-
2: * Copyright (c) 1990 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that: (1) source distributions retain this entire copyright
7: * notice and comment, and (2) distributions including binaries display
8: * the following acknowledgement: ``This product includes software
9: * developed by the University of California, Berkeley and its contributors''
10: * in the documentation or other materials provided with the distribution
11: * and in all advertising materials mentioning features or use of this
12: * software. Neither the name of the University nor the names of its
13: * contributors may be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #ifndef lint
21: static char sccsid[] = "@(#)hexsyntax.c 5.2 (Berkeley) 5/8/90";
22: #endif /* not lint */
23:
24: #include <sys/types.h>
25: #include <stdio.h>
26: #include "hexdump.h"
27:
28: off_t skip; /* bytes to skip */
29:
30: newsyntax(argc, argvp)
31: int argc;
32: char ***argvp;
33: {
34: extern enum _vflag vflag;
35: extern FS *fshead;
36: extern char *optarg;
37: extern int length, optind;
38: int ch;
39: char *p, **argv;
40:
41: argv = *argvp;
42: while ((ch = getopt(argc, argv, "bcde:f:n:os:vx")) != EOF)
43: switch (ch) {
44: case 'b':
45: add("\"%07.7_Ax\n\"");
46: add("\"%07.7_ax \" 16/1 \"%03o \" \"\\n\"");
47: break;
48: case 'c':
49: add("\"%07.7_Ax\n\"");
50: add("\"%07.7_ax \" 16/1 \"%3_c \" \"\\n\"");
51: break;
52: case 'd':
53: add("\"%07.7_Ax\n\"");
54: add("\"%07.7_ax \" 8/2 \" %05u \" \"\\n\"");
55: break;
56: case 'e':
57: add(optarg);
58: break;
59: case 'f':
60: addfile(optarg);
61: break;
62: case 'n':
63: if ((length = atoi(optarg)) < 0) {
64: (void)fprintf(stderr,
65: "hexdump: bad length value.\n");
66: exit(1);
67: }
68: break;
69: case 'o':
70: add("\"%07.7_Ax\n\"");
71: add("\"%07.7_ax \" 8/2 \" %06o \" \"\\n\"");
72: break;
73: case 's':
74: if ((skip = strtol(optarg, &p, 0)) < 0) {
75: (void)fprintf(stderr,
76: "hexdump: bad skip value.\n");
77: exit(1);
78: }
79: switch(*p) {
80: case 'b':
81: skip *= 512;
82: break;
83: case 'k':
84: skip *= 1024;
85: break;
86: case 'm':
87: skip *= 1048576;
88: break;
89: }
90: break;
91: case 'v':
92: vflag = ALL;
93: break;
94: case 'x':
95: add("\"%07.7_Ax\n\"");
96: add("\"%07.7_ax \" 8/2 \" %04x \" \"\\n\"");
97: break;
98: case '?':
99: usage();
100: exit(1);
101: }
102:
103: if (!fshead) {
104: add("\"%07.7_Ax\n\"");
105: add("\"%07.7_ax \" 8/2 \"%04x \" \"\\n\"");
106: }
107:
108: *argvp += optind;
109: }
110:
111: usage()
112: {
113: (void)fprintf(stderr,
114: "hexdump: [-bcdovx] [-e fmt] [-f fmt_file] [-n length] [-s skip] [file ...]\n");
115: exit(1);
116: }
Defined functions
Defined variables
skip
defined in line
28; used 4 times