aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2016-03-12 09:55:49 +0200
committerSergey Poznyakoff <gray@gnu.org>2016-03-12 09:55:49 +0200
commitb49a731cce26dc5fa7f61bc80097f85867d77aad (patch)
tree9d687adf6973a6b95b673e4a63c6277050bbb03c
parent3edbd2eb9288f1d2d675c422d5865b8be1f29c32 (diff)
downloadswu-b49a731cce26dc5fa7f61bc80097f85867d77aad.tar.gz
swu-b49a731cce26dc5fa7f61bc80097f85867d77aad.tar.bz2
Implement long options
-rw-r--r--swu.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/swu.c b/swu.c
index 785b00c..0f3291a 100644
--- a/swu.c
+++ b/swu.c
@@ -1,4 +1,5 @@
1#include <unistd.h> 1#include <unistd.h>
2#include <getopt.h>
2#include <stdio.h> 3#include <stdio.h>
3#include <stdlib.h> 4#include <stdlib.h>
4#include <stdarg.h> 5#include <stdarg.h>
@@ -286,6 +287,19 @@ help(void)
286 //FIXME 287 //FIXME
287} 288}
288 289
290struct option opt[] = {
291 { "all", 0, NULL, 'a' },
292 { "human-readable", 0, NULL, 'H' },
293 { "help", 0, NULL, 'h' },
294 { "name", 0, NULL, 'n' },
295 { "pid", 0, NULL, 'p' },
296 { "reverse", 0, NULL, 'r' },
297 { "size", 0, NULL, 's' },
298 { "total", 0, NULL, 't' },
299 { "verbose", 0, NULL, 'v' },
300 { NULL }
301};
302
289int 303int
290main(int argc, char **argv) 304main(int argc, char **argv)
291{ 305{
@@ -296,7 +310,7 @@ main(int argc, char **argv)
296 ++progname; 310 ++progname;
297 else 311 else
298 progname = argv[0]; 312 progname = argv[0];
299 while ((c = getopt(argc, argv, "aHhnprstv")) != EOF) { 313 while ((c = getopt_long(argc, argv, "acHhnprstv", opt, NULL)) != EOF) {
300 switch (c) { 314 switch (c) {
301 case 'a': 315 case 'a':
302 show_all = 1; 316 show_all = 1;
@@ -319,6 +333,7 @@ main(int argc, char **argv)
319 case 's': 333 case 's':
320 cmp = cmp_size; 334 cmp = cmp_size;
321 break; 335 break;
336 case 'c':
322 case 't': 337 case 't':
323 show_total = 1; 338 show_total = 1;
324 break; 339 break;

Return to:

Send suggestions and report system problems to the System administrator.