diff options
Diffstat (limited to 'src/util/getopt_helpers.c')
-rw-r--r-- | src/util/getopt_helpers.c | 129 |
1 files changed, 65 insertions, 64 deletions
diff --git a/src/util/getopt_helpers.c b/src/util/getopt_helpers.c index c0646c302..aa85bf536 100644 --- a/src/util/getopt_helpers.c +++ b/src/util/getopt_helpers.c | |||
@@ -83,67 +83,67 @@ GNUNET_GETOPT_format_help_ (struct GNUNET_GETOPT_CommandLineProcessorContext | |||
83 | i = 0; | 83 | i = 0; |
84 | opt = ctx->allOptions; | 84 | opt = ctx->allOptions; |
85 | while (opt[i].description != NULL) | 85 | while (opt[i].description != NULL) |
86 | { | ||
87 | if (opt[i].shortName == '\0') | ||
88 | printf (" "); | ||
89 | else | ||
90 | printf (" -%c, ", opt[i].shortName); | ||
91 | printf ("--%s", opt[i].name); | ||
92 | slen = 8 + strlen (opt[i].name); | ||
93 | if (opt[i].argumentHelp != NULL) | ||
86 | { | 94 | { |
87 | if (opt[i].shortName == '\0') | 95 | printf ("=%s", opt[i].argumentHelp); |
88 | printf (" "); | 96 | slen += 1 + strlen (opt[i].argumentHelp); |
89 | else | 97 | } |
90 | printf (" -%c, ", opt[i].shortName); | 98 | if (slen > BORDER) |
91 | printf ("--%s", opt[i].name); | 99 | { |
92 | slen = 8 + strlen (opt[i].name); | 100 | printf ("\n%*s", BORDER, ""); |
93 | if (opt[i].argumentHelp != NULL) | 101 | slen = BORDER; |
94 | { | 102 | } |
95 | printf ("=%s", opt[i].argumentHelp); | 103 | if (slen < BORDER) |
96 | slen += 1 + strlen (opt[i].argumentHelp); | 104 | { |
97 | } | 105 | printf ("%*s", (int) (BORDER - slen), ""); |
98 | if (slen > BORDER) | 106 | slen = BORDER; |
99 | { | 107 | } |
100 | printf ("\n%*s", BORDER, ""); | 108 | if (0 < strlen (opt[i].description)) |
101 | slen = BORDER; | 109 | trans = gettext (opt[i].description); |
102 | } | 110 | else |
103 | if (slen < BORDER) | 111 | trans = ""; |
104 | { | 112 | ml = strlen (trans); |
105 | printf ("%*s", (int) (BORDER - slen), ""); | 113 | p = 0; |
106 | slen = BORDER; | 114 | OUTER: |
107 | } | 115 | while (ml - p > 78 - slen) |
108 | if (0 < strlen (opt[i].description)) | 116 | { |
109 | trans = gettext (opt[i].description); | 117 | for (j = p + 78 - slen; j > p; j--) |
110 | else | 118 | { |
111 | trans = ""; | 119 | if (isspace ((unsigned char) trans[j])) |
112 | ml = strlen (trans); | ||
113 | p = 0; | ||
114 | OUTER: | ||
115 | while (ml - p > 78 - slen) | ||
116 | { | 120 | { |
117 | for (j = p + 78 - slen; j > p; j--) | 121 | scp = GNUNET_malloc (j - p + 1); |
118 | { | 122 | memcpy (scp, &trans[p], j - p); |
119 | if (isspace ( (unsigned char) trans[j])) | 123 | scp[j - p] = '\0'; |
120 | { | ||
121 | scp = GNUNET_malloc (j - p + 1); | ||
122 | memcpy (scp, &trans[p], j - p); | ||
123 | scp[j - p] = '\0'; | ||
124 | printf ("%s\n%*s", scp, BORDER + 2, ""); | ||
125 | GNUNET_free (scp); | ||
126 | p = j + 1; | ||
127 | slen = BORDER + 2; | ||
128 | goto OUTER; | ||
129 | } | ||
130 | } | ||
131 | /* could not find space to break line */ | ||
132 | scp = GNUNET_malloc (78 - slen + 1); | ||
133 | memcpy (scp, &trans[p], 78 - slen); | ||
134 | scp[78 - slen] = '\0'; | ||
135 | printf ("%s\n%*s", scp, BORDER + 2, ""); | 124 | printf ("%s\n%*s", scp, BORDER + 2, ""); |
136 | GNUNET_free (scp); | 125 | GNUNET_free (scp); |
126 | p = j + 1; | ||
137 | slen = BORDER + 2; | 127 | slen = BORDER + 2; |
138 | p = p + 78 - slen; | 128 | goto OUTER; |
139 | } | 129 | } |
140 | /* print rest */ | 130 | } |
141 | if (p < ml) | 131 | /* could not find space to break line */ |
142 | printf ("%s\n", &trans[p]); | 132 | scp = GNUNET_malloc (78 - slen + 1); |
143 | if (strlen (trans) == 0) | 133 | memcpy (scp, &trans[p], 78 - slen); |
144 | printf ("\n"); | 134 | scp[78 - slen] = '\0'; |
145 | i++; | 135 | printf ("%s\n%*s", scp, BORDER + 2, ""); |
136 | GNUNET_free (scp); | ||
137 | slen = BORDER + 2; | ||
138 | p = p + 78 - slen; | ||
146 | } | 139 | } |
140 | /* print rest */ | ||
141 | if (p < ml) | ||
142 | printf ("%s\n", &trans[p]); | ||
143 | if (strlen (trans) == 0) | ||
144 | printf ("\n"); | ||
145 | i++; | ||
146 | } | ||
147 | printf ("Report bugs to gnunet-developers@gnu.org.\n" | 147 | printf ("Report bugs to gnunet-developers@gnu.org.\n" |
148 | "GNUnet home page: http://www.gnu.org/software/gnunet/\n" | 148 | "GNUnet home page: http://www.gnu.org/software/gnunet/\n" |
149 | "General help using GNU software: http://www.gnu.org/gethelp/\n"); | 149 | "General help using GNU software: http://www.gnu.org/gethelp/\n"); |
@@ -172,6 +172,7 @@ GNUNET_GETOPT_increment_value (struct | |||
172 | const char *value) | 172 | const char *value) |
173 | { | 173 | { |
174 | int *val = scls; | 174 | int *val = scls; |
175 | |||
175 | (*val)++; | 176 | (*val)++; |
176 | return GNUNET_OK; | 177 | return GNUNET_OK; |
177 | } | 178 | } |
@@ -196,6 +197,7 @@ GNUNET_GETOPT_set_one (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx, | |||
196 | void *scls, const char *option, const char *value) | 197 | void *scls, const char *option, const char *value) |
197 | { | 198 | { |
198 | int *val = scls; | 199 | int *val = scls; |
200 | |||
199 | *val = 1; | 201 | *val = 1; |
200 | return GNUNET_OK; | 202 | return GNUNET_OK; |
201 | } | 203 | } |
@@ -249,12 +251,12 @@ GNUNET_GETOPT_set_ulong (struct GNUNET_GETOPT_CommandLineProcessorContext | |||
249 | const char *value) | 251 | const char *value) |
250 | { | 252 | { |
251 | unsigned long long *val = scls; | 253 | unsigned long long *val = scls; |
254 | |||
252 | if (1 != SSCANF (value, "%llu", val)) | 255 | if (1 != SSCANF (value, "%llu", val)) |
253 | { | 256 | { |
254 | fprintf (stderr, | 257 | fprintf (stderr, _("You must pass a number to the `%s' option.\n"), option); |
255 | _("You must pass a number to the `%s' option.\n"), option); | 258 | return GNUNET_SYSERR; |
256 | return GNUNET_SYSERR; | 259 | } |
257 | } | ||
258 | return GNUNET_OK; | 260 | return GNUNET_OK; |
259 | } | 261 | } |
260 | 262 | ||
@@ -279,11 +281,10 @@ GNUNET_GETOPT_set_uint (struct GNUNET_GETOPT_CommandLineProcessorContext *ctx, | |||
279 | unsigned int *val = scls; | 281 | unsigned int *val = scls; |
280 | 282 | ||
281 | if (1 != SSCANF (value, "%u", val)) | 283 | if (1 != SSCANF (value, "%u", val)) |
282 | { | 284 | { |
283 | fprintf (stderr, | 285 | fprintf (stderr, _("You must pass a number to the `%s' option.\n"), option); |
284 | _("You must pass a number to the `%s' option.\n"), option); | 286 | return GNUNET_SYSERR; |
285 | return GNUNET_SYSERR; | 287 | } |
286 | } | ||
287 | return GNUNET_OK; | 288 | return GNUNET_OK; |
288 | } | 289 | } |
289 | 290 | ||