pulseaudio: fix dependencies for openssl-3
[oi-userland.git] / components / x11 / cmap_compact / src / cmc.c
blobd5953ef65b6f84e3c6b86f1d78bbedda449c87cc
1 /*
3 * Copyright (c) 1990, 2015, Oracle and/or its affiliates. All rights reserved.
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
27 #include <stdio.h>
28 #include <stdarg.h>
29 #include <string.h>
30 #include "cmc.h"
34 ** Options and Arguments
37 char *display_name = NULL; /* -display */
38 int warn_flag = 0; /* -warn */
39 char *basename_arg = NULL; /* optional argument */
41 char *program;
44 void
45 fatal_error (const char *format, ...)
48 va_list args;
50 va_start(args, format);
51 (void) fprintf(stderr, "%s: error: ", program);
52 (void) vfprintf(stderr, format, args);
53 (void) fprintf(stderr, "\n");
54 va_end(args);
55 exit(1);
59 void
60 warning (const char *format, ...)
63 va_list args;
65 va_start(args, format);
66 (void) fprintf(stderr, "Warning: ");
67 (void) vfprintf(stderr, format, args);
68 (void) fprintf(stderr, "\n");
69 va_end(args);
70 exit(1);
73 static void
74 usage (void)
76 /* Note: optional filename arg explicitly not documented */
77 fprintf(stderr, "usage: %s <op> [-display name] [-warn]\n", program);
78 fprintf(stderr, "<op> = save | init | discard | dealloc | show | NeWSinit\n");
79 exit(1);
83 /*
84 ** Parse arguments
87 void
88 process_arguments (char **argv)
90 register char **a;
92 for (a = argv; *a; a++) {
93 if (**a == '-') {
94 if (!strcmp(*a, "-warn")) {
95 warn_flag = 1;
96 } else if (!strcmp(*a, "-display")) {
97 if (*++a)
98 display_name = *a;
99 else {
100 fprintf(stderr, "error: -display needs an argument\n");
101 usage();
103 } else {
104 fprintf(stderr, "error: unrecognized option '%s'\n", *a);
105 usage();
107 } else {
108 if (basename_arg) {
109 fprintf(stderr, "error: unrecognized argument '%s'\n", *a);
110 usage();
111 } else
112 basename_arg = *a;
118 /*ARGSUSED*/
120 main (int argc, char **argv)
122 void (*op)(void);
124 /* Initialize error handling */
125 program = argv[0];
127 /* determine operation */
128 if (argc <= 1)
129 usage();
130 ++argv;
131 if (!strcmp("save", *argv))
132 op = cmc_save;
133 else if (!strcmp("init", *argv))
134 op = cmc_init;
135 else if (!strcmp("show", *argv))
136 op = cmc_show;
137 else if (!strcmp("discard", *argv))
138 op = cmc_discard;
139 else if (!strcmp("dealloc", *argv))
140 op = cmc_dealloc;
141 else if (!strcmp("NeWSinit", *argv))
142 op = cmc_NeWSinit;
143 else
144 usage();
146 /* parse rest of arguments */
147 process_arguments(++argv);
149 /* invoke operation */
150 op();
152 exit(0);