Jim Meyering
2009-Nov-20 11:22 UTC
[Libguestfs] fix new failures from latest-from-gnulib syntax-check
There's a new syntax check rule from gnulib. It requires that you write e.g., exit (EXIT_SUCCESS), not exit (0). And the same for 1/EXIT_FAILURE and any other constants. There were a lot of violations, including a few false positives, so I started with the exemptions (see the .x-sc file below). Then I converted the vast majority automatically, with this: maint: use EXIT_SUCCESS and EXIT_FAILURE, not 0 and 1 to exit Convert all uses automatically, via these two commands: git grep -l '\<exit *(1)' \ | grep -vEf .x-sc_prohibit_magic_number_exit \ | xargs --no-run-if-empty \ perl -pi -e 's/\b(exit ?)\(1\)/$1(EXIT_FAILURE)/' git grep -l '\<exit *(0)' \ | grep -vEf .x-sc_prohibit_magic_number_exit \ | xargs --no-run-if-empty \ perl -pi -e 's/\b(exit ?)\(0\)/$1(EXIT_SUCCESS)/' * .x-sc_prohibit_magic_number_exit: New file. That covered everything except these few: fish/fish.c:325: usage (0); fish/fish.c:328: usage (1); fuse/guestmount.c:1067: usage (0); fuse/guestmount.c:1070: usage (1); hivex/hivexget.c:85: exit (2); hivex/hivexget.c:106: exit (2); maint.mk: use EXIT_* values rather than magic number I handled the first four with these: perl -pi -e 's/\b(usage ?)\(1\)/$1(EXIT_FAILURE)/' \ fish/fish.c fuse/guestmount.c perl -pi -e 's/\b(usage ?)\(0\)/$1(EXIT_SUCCESS)/' \ fish/fish.c fuse/guestmount.c I fixed hivexget.c manually by defining this and using the new constant: enum { EXIT_NOT_FOUND = 2 }; Here are the patches:>From ea4ed8cfd0c0b2996fe5318aecf2128bf52c5c68 Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Fri, 20 Nov 2009 12:09:42 +0100 Subject: [PATCH libguestfs 1/3] maint: use EXIT_SUCCESS and EXIT_FAILURE, not 0 and 1 to exit Convert all uses automatically, via these two commands: git grep -l '\<exit *(1)' \ | grep -vEf .x-sc_prohibit_magic_number_exit \ | xargs --no-run-if-empty \ perl -pi -e 's/\b(exit ?)\(1\)/$1(EXIT_FAILURE)/' git grep -l '\<exit *(0)' \ | grep -vEf .x-sc_prohibit_magic_number_exit \ | xargs --no-run-if-empty \ perl -pi -e 's/\b(exit ?)\(0\)/$1(EXIT_SUCCESS)/' * .x-sc_prohibit_magic_number_exit: New file. --- .x-sc_prohibit_magic_number_exit | 2 + capitests/test-command.c | 6 ++-- daemon/guestfsd.c | 26 +++++++------- daemon/proto.c | 30 ++++++++-------- examples/hello.c | 12 +++--- examples/to-xml.c | 6 ++-- fish/fish.c | 74 +++++++++++++++++++------------------- fish/rc.c | 22 ++++++------ fish/tilde.c | 4 +- fuse/dircache.c | 2 +- fuse/guestmount.c | 28 +++++++------- hivex/hivexget.c | 10 +++--- hivex/hivexml.c | 16 ++++---- src/generator.ml | 42 +++++++++++----------- test-tool/helper.c | 14 ++++---- test-tool/test-tool.c | 58 +++++++++++++++--------------- 16 files changed, 177 insertions(+), 175 deletions(-) create mode 100644 .x-sc_prohibit_magic_number_exit diff --git a/.x-sc_prohibit_magic_number_exit b/.x-sc_prohibit_magic_number_exit new file mode 100644 index 0000000..5a3f685 --- /dev/null +++ b/.x-sc_prohibit_magic_number_exit @@ -0,0 +1,2 @@ +^.*\.java$ +^.*\.pl$ diff --git a/capitests/test-command.c b/capitests/test-command.c index 7a3e64b..e5cdc93 100644 --- a/capitests/test-command.c +++ b/capitests/test-command.c @@ -57,12 +57,12 @@ main (int argc, char *argv[]) printf ("Result11-1\nResult11-2"); } else { fprintf (stderr, "unknown parameter: %s\n", argv[1]); - exit (1); + exit (EXIT_FAILURE); } } else { fprintf (stderr, "missing parameter\n"); - exit (1); + exit (EXIT_FAILURE); } - exit (0); + exit (EXIT_SUCCESS); } diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index 9375ede..cc6cd2c 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -121,17 +121,17 @@ main (int argc, char *argv[]) case '?': usage (); - exit (0); + exit (EXIT_SUCCESS); default: fprintf (stderr, "guestfsd: unexpected command line option 0x%x\n", c); - exit (1); + exit (EXIT_FAILURE); } } if (optind < argc) { usage (); - exit (1); + exit (EXIT_FAILURE); } cmdline = read_cmdline (); @@ -190,7 +190,7 @@ main (int argc, char *argv[]) vmchannel = strndup (p + 18, len); if (!vmchannel) { perror ("strndup"); - exit (1); + exit (EXIT_FAILURE); } } @@ -204,7 +204,7 @@ main (int argc, char *argv[]) vmchannel = strndup (p + 4, len); if (!vmchannel) { perror ("strndup"); - exit (1); + exit (EXIT_FAILURE); } memcpy (vmchannel, "tcp:", 4); } @@ -216,7 +216,7 @@ main (int argc, char *argv[]) vmchannel = strdup ("tcp:" GUESTFWD_ADDR ":" GUESTFWD_PORT); if (!vmchannel) { perror ("strdup"); - exit (1); + exit (EXIT_FAILURE); } } @@ -241,7 +241,7 @@ main (int argc, char *argv[]) } else { fprintf (stderr, "vmchannel: expecting \"tcp:<ip>:<port>\": %s\n", vmchannel); - exit (1); + exit (EXIT_FAILURE); } memset (&hints, 0, sizeof hints); @@ -251,7 +251,7 @@ main (int argc, char *argv[]) if (r != 0) { fprintf (stderr, "%s:%s: %s\n", host, port, gai_strerror (r)); - exit (1); + exit (EXIT_FAILURE); } /* Connect to the given TCP socket. */ @@ -272,7 +272,7 @@ main (int argc, char *argv[]) "unknown vmchannel connection type: %s\n" "expecting \"tcp:<ip>:<port>\"\n", vmchannel); - exit (1); + exit (EXIT_FAILURE); } if (sock == -1) { @@ -291,7 +291,7 @@ main (int argc, char *argv[]) "or on the libguestfs redhat com mailing list.\n" "\n", vmchannel); - exit (1); + exit (EXIT_FAILURE); } /* Send the magic length message which indicates that @@ -304,7 +304,7 @@ main (int argc, char *argv[]) xdr_uint32_t (&xdr, &len); if (xwrite (sock, lenbuf, sizeof lenbuf) == -1) - exit (1); + exit (EXIT_FAILURE); xdr_destroy (&xdr); @@ -312,14 +312,14 @@ main (int argc, char *argv[]) if (!dont_fork) { if (daemon (0, 1) == -1) { perror ("daemon"); - exit (1); + exit (EXIT_FAILURE); } } /* Enter the main loop, reading and performing actions. */ main_loop (sock); - exit (0); + exit (EXIT_SUCCESS); } /* Read /proc/cmdline. */ diff --git a/daemon/proto.c b/daemon/proto.c index a0d3736..284037d 100644 --- a/daemon/proto.c +++ b/daemon/proto.c @@ -63,7 +63,7 @@ main_loop (int _sock) /* Read the length word. */ if (xread (sock, lenbuf, 4) == -1) - exit (1); + exit (EXIT_FAILURE); xdrmem_create (&xdr, lenbuf, 4, XDR_DECODE); xdr_uint32_t (&xdr, &len); @@ -72,7 +72,7 @@ main_loop (int _sock) if (len > GUESTFS_MESSAGE_MAX) { fprintf (stderr, "guestfsd: incoming message is too long (%u bytes)\n", len); - exit (1); + exit (EXIT_FAILURE); } buf = malloc (len); @@ -82,7 +82,7 @@ main_loop (int _sock) } if (xread (sock, buf, len) == -1) - exit (1); + exit (EXIT_FAILURE); #ifdef ENABLE_PACKET_DUMP if (verbose) { @@ -115,7 +115,7 @@ main_loop (int _sock) xdrmem_create (&xdr, buf, len, XDR_DECODE); if (!xdr_guestfs_message_header (&xdr, &hdr)) { fprintf (stderr, "guestfsd: could not decode message header\n"); - exit (1); + exit (EXIT_FAILURE); } /* Check the version etc. */ @@ -218,14 +218,14 @@ send_error (const char *msg) if (!xdr_guestfs_message_header (&xdr, &hdr)) { fprintf (stderr, "guestfsd: failed to encode error message header\n"); - exit (1); + exit (EXIT_FAILURE); } err.error_message = (char *) msg; if (!xdr_guestfs_message_error (&xdr, &err)) { fprintf (stderr, "guestfsd: failed to encode error message body\n"); - exit (1); + exit (EXIT_FAILURE); } len = xdr_getpos (&xdr); @@ -237,11 +237,11 @@ send_error (const char *msg) if (xwrite (sock, lenbuf, 4) == -1) { fprintf (stderr, "xwrite failed\n"); - exit (1); + exit (EXIT_FAILURE); } if (xwrite (sock, buf, len) == -1) { fprintf (stderr, "xwrite failed\n"); - exit (1); + exit (EXIT_FAILURE); } } @@ -265,7 +265,7 @@ reply (xdrproc_t xdrp, char *ret) if (!xdr_guestfs_message_header (&xdr, &hdr)) { fprintf (stderr, "guestfsd: failed to encode reply header\n"); - exit (1); + exit (EXIT_FAILURE); } if (xdrp) { @@ -289,11 +289,11 @@ reply (xdrproc_t xdrp, char *ret) if (xwrite (sock, lenbuf, 4) == -1) { fprintf (stderr, "xwrite failed\n"); - exit (1); + exit (EXIT_FAILURE); } if (xwrite (sock, buf, len) == -1) { fprintf (stderr, "xwrite failed\n"); - exit (1); + exit (EXIT_FAILURE); } } @@ -311,7 +311,7 @@ receive_file (receive_cb cb, void *opaque) for (;;) { /* Read the length word. */ if (xread (sock, lenbuf, 4) == -1) - exit (1); + exit (EXIT_FAILURE); xdrmem_create (&xdr, lenbuf, 4, XDR_DECODE); xdr_uint32_t (&xdr, &len); @@ -323,7 +323,7 @@ receive_file (receive_cb cb, void *opaque) if (len > GUESTFS_MESSAGE_MAX) { fprintf (stderr, "guestfsd: incoming message is too long (%u bytes)\n", len); - exit (1); + exit (EXIT_FAILURE); } buf = malloc (len); @@ -333,7 +333,7 @@ receive_file (receive_cb cb, void *opaque) } if (xread (sock, buf, len) == -1) - exit (1); + exit (EXIT_FAILURE); xdrmem_create (&xdr, buf, len, XDR_DECODE); memset (&chunk, 0, sizeof chunk); @@ -503,7 +503,7 @@ send_chunk (const guestfs_chunk *chunk) && xwrite (sock, buf, len) == 0 ? 0 : -1); if (err) { fprintf (stderr, "send_chunk: write failed\n"); - exit (1); + exit (EXIT_FAILURE); } return err; diff --git a/examples/hello.c b/examples/hello.c index 8b36ed4..b4d5d8c 100644 --- a/examples/hello.c +++ b/examples/hello.c @@ -19,18 +19,18 @@ main (int argc, char *argv[]) if (argc != 3 || access (argv[1], F_OK) != 0) { fprintf (stderr, "Usage: hello disk-image partition\n"); - exit (1); + exit (EXIT_FAILURE); } - if (!(g = guestfs_create ())) exit (1); + if (!(g = guestfs_create ())) exit (EXIT_FAILURE); - if (guestfs_add_drive (g, argv[1]) == -1) exit (1); + if (guestfs_add_drive (g, argv[1]) == -1) exit (EXIT_FAILURE); - if (guestfs_launch (g) == -1) exit (1); + if (guestfs_launch (g) == -1) exit (EXIT_FAILURE); - if (guestfs_mount (g, argv[2], "/") == -1) exit (1); + if (guestfs_mount (g, argv[2], "/") == -1) exit (EXIT_FAILURE); - if (guestfs_touch (g, "/hello") == -1) exit (1); + if (guestfs_touch (g, "/hello") == -1) exit (EXIT_FAILURE); guestfs_sync (g); guestfs_close (g); diff --git a/examples/to-xml.c b/examples/to-xml.c index 6d0a1df..537ae91 100644 --- a/examples/to-xml.c +++ b/examples/to-xml.c @@ -25,7 +25,7 @@ * to stderr already. */ #define CALL(call,errcode) \ - if ((call) == (errcode)) exit (1); + if ((call) == (errcode)) exit (EXIT_FAILURE); static void display_partition (guestfs_h *g, const char *dev); static void display_partitions (guestfs_h *g, const char *dev); @@ -39,12 +39,12 @@ main (int argc, char *argv[]) if (argc < 2 || access (argv[1], F_OK) != 0) { fprintf (stderr, "Usage: to-xml guest.img [guest.img ...]\n"); - exit (1); + exit (EXIT_FAILURE); } if (!(g = guestfs_create ())) { fprintf (stderr, "Cannot create libguestfs handle.\n"); - exit (1); + exit (EXIT_FAILURE); } for (i = 1; i < argc; ++i) diff --git a/fish/fish.c b/fish/fish.c index 41c6cbf..4f51503 100644 --- a/fish/fish.c +++ b/fish/fish.c @@ -182,7 +182,7 @@ main (int argc, char *argv[]) g = guestfs_create (); if (g == NULL) { fprintf (stderr, _("guestfs_create: failed to create handle\n")); - exit (1); + exit (EXIT_FAILURE); } guestfs_set_autosync (g, 1); @@ -222,7 +222,7 @@ main (int argc, char *argv[]) if (sscanf (optarg, "%d", &remote_control) != 1) { fprintf (stderr, _("%s: --listen=PID: PID was not a number: %s\n"), program_name, optarg); - exit (1); + exit (EXIT_FAILURE); } } else { p = getenv ("GUESTFISH_PID"); @@ -230,7 +230,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: remote: $GUESTFISH_PID must be set" " to the PID of the remote process\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } } } else if (STREQ (long_options[option_index].name, "selinux")) { @@ -238,19 +238,19 @@ main (int argc, char *argv[]) } else { fprintf (stderr, _("%s: unknown long option: %s (%d)\n"), program_name, long_options[option_index].name, option_index); - exit (1); + exit (EXIT_FAILURE); } break; case 'a': if (access (optarg, R_OK) != 0) { perror (optarg); - exit (1); + exit (EXIT_FAILURE); } drv = malloc (sizeof (struct drv)); if (!drv) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } drv->filename = optarg; drv->next = drvs; @@ -265,7 +265,7 @@ main (int argc, char *argv[]) if (file) { fprintf (stderr, _("%s: only one -f parameter can be given\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } file = optarg; break; @@ -277,7 +277,7 @@ main (int argc, char *argv[]) display_command (argv[optind++]); else list_commands (); - exit (0); + exit (EXIT_SUCCESS); case 'i': inspector = 1; @@ -287,7 +287,7 @@ main (int argc, char *argv[]) mp = malloc (sizeof (struct mp)); if (!mp) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } p = strchr (optarg, ':'); if (p) { @@ -315,7 +315,7 @@ main (int argc, char *argv[]) case 'V': printf ("%s %s\n", program_name, PACKAGE_VERSION); - exit (0); + exit (EXIT_SUCCESS); case 'x': echo_commands = 1; @@ -339,13 +339,13 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: cannot use -i option with -a, -m," " --listen, --remote or --selinux\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } if (optind >= argc) { fprintf (stderr, _("%s: -i requires a libvirt domain or path(s) to disk image(s)\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } strcpy (cmd, "a=`virt-inspector"); @@ -355,7 +355,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: virt-inspector command too long for fixed-size buffer\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } strcat (cmd, " '"); strcat (cmd, argv[optind]); @@ -382,7 +382,7 @@ main (int argc, char *argv[]) r = system (cmd); if (r == -1) { perror ("system"); - exit (1); + exit (EXIT_FAILURE); } exit (WEXITSTATUS (r)); } @@ -392,7 +392,7 @@ main (int argc, char *argv[]) /* If we've got mountpoints, we must launch the guest and mount them. */ if (mps != NULL) { - if (launch (g) == -1) exit (1); + if (launch (g) == -1) exit (EXIT_FAILURE); mount_mps (mps); } @@ -401,7 +401,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: cannot use --listen and --remote options at the same time\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } if (remote_control_listen) { @@ -409,13 +409,13 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: extra parameters on the command line with --listen flag\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } if (file) { fprintf (stderr, _("%s: cannot use --listen and --file options at the same time\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } rc_listen (); } @@ -425,7 +425,7 @@ main (int argc, char *argv[]) close (0); if (open (file, O_RDONLY) == -1) { perror (file); - exit (1); + exit (EXIT_FAILURE); } } @@ -441,7 +441,7 @@ main (int argc, char *argv[]) cleanup_readline (); - exit (0); + exit (EXIT_SUCCESS); } void @@ -475,7 +475,7 @@ mount_mps (struct mp *mp) else r = guestfs_mount_ro (g, mp->device, mp->mountpoint); if (r == -1) - exit (1); + exit (EXIT_FAILURE); } } @@ -491,7 +491,7 @@ add_drives (struct drv *drv) else r = guestfs_add_drive_ro (g, drv->filename); if (r == -1) - exit (1); + exit (EXIT_FAILURE); } } @@ -597,7 +597,7 @@ script (int prompt) (WIFSIGNALED (r) && (WTERMSIG (r) == SIGINT || WTERMSIG (r) == SIGQUIT)) || WEXITSTATUS (r) != 0) - exit (1); + exit (EXIT_FAILURE); } continue; } @@ -639,14 +639,14 @@ script (int prompt) len = strcspn (p, "\""); if (p[len] == '\0') { fprintf (stderr, _("%s: unterminated double quote\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) { fprintf (stderr, _("%s: command arguments not separated by whitespace\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } p[len] = '\0'; @@ -656,14 +656,14 @@ script (int prompt) len = strcspn (p, "'"); if (p[len] == '\0') { fprintf (stderr, _("%s: unterminated single quote\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) { fprintf (stderr, _("%s: command arguments not separated by whitespace\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } p[len] = '\0'; @@ -685,14 +685,14 @@ script (int prompt) if (c != 0) { fprintf (stderr, _("%s: unterminated \"[...]\" sequence\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } if (*pend && (*pend != ' ' && *pend != '\t')) { fprintf (stderr, _("%s: command arguments not separated by whitespace\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } *(pend-1) = '\0'; @@ -728,7 +728,7 @@ script (int prompt) if (i == sizeof argv / sizeof argv[0]) { fprintf (stderr, _("%s: too many arguments\n"), program_name); - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); goto next_command; } @@ -736,7 +736,7 @@ script (int prompt) got_command: if (issue_command (cmd, argv, pipe) == -1) { - if (exit_on_error) exit (1); + if (exit_on_error) exit (EXIT_FAILURE); } next_command:; @@ -757,7 +757,7 @@ cmdline (char *argv[], int optind, int argc) cmd = argv[optind++]; if (STREQ (cmd, ":")) { fprintf (stderr, _("%s: empty command on command line\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } params = &argv[optind]; @@ -766,10 +766,10 @@ cmdline (char *argv[], int optind, int argc) optind++; if (optind == argc) { - if (issue_command (cmd, params, NULL) == -1) exit (1); + if (issue_command (cmd, params, NULL) == -1) exit (EXIT_FAILURE); } else { argv[optind] = NULL; - if (issue_command (cmd, params, NULL) == -1) exit (1); + if (issue_command (cmd, params, NULL) == -1) exit (EXIT_FAILURE); cmdline (argv, optind+1, argc); } } @@ -1191,7 +1191,7 @@ parse_string_list (const char *str) perror ("realloc"); free_n_strings (argv, argv_len); free (tok); - exit (1); + exit (EXIT_FAILURE); } tok = tok_new; @@ -1237,7 +1237,7 @@ parse_string_list (const char *str) perror ("realloc"); free_n_strings (argv, argv_len-1); free (tok); - exit (1); + exit (EXIT_FAILURE); } argv = argv_new; @@ -1251,7 +1251,7 @@ parse_string_list (const char *str) if (NULL == argv_new) { perror ("realloc"); free_n_strings (argv, argv_len-1); - exit (1); + exit (EXIT_FAILURE); } argv = argv_new; diff --git a/fish/rc.c b/fish/rc.c index a9eb578..dbaf953 100644 --- a/fish/rc.c +++ b/fish/rc.c @@ -66,7 +66,7 @@ receive_stdout (int s) cmptr = malloc (controllen); if (NULL == cmptr) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } } @@ -88,7 +88,7 @@ receive_stdout (int s) ssize_t n = recvmsg (s, &msg, 0); if (n < 0) { perror ("recvmsg stdout fd"); - exit (1); + exit (EXIT_FAILURE); } h = CMSG_FIRSTHDR(&msg); @@ -135,7 +135,7 @@ send_stdout (int s) cmptr = malloc (controllen); if (NULL == cmptr) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } } cmptr->cmsg_level = SOL_SOCKET; @@ -152,7 +152,7 @@ send_stdout (int s) if (sendmsg (s, &msg, 0) != 1) { perror ("sendmsg stdout fd"); - exit (1); + exit (EXIT_FAILURE); } } @@ -192,7 +192,7 @@ rc_listen (void) pid = fork (); if (pid == -1) { perror ("fork"); - exit (1); + exit (EXIT_FAILURE); } if (pid > 0) { @@ -217,16 +217,16 @@ rc_listen (void) sock = socket (AF_UNIX, SOCK_STREAM, 0); if (sock == -1) { perror ("socket"); - exit (1); + exit (EXIT_FAILURE); } unlink (sockpath); if (bind (sock, (struct sockaddr *) &addr, sizeof addr) == -1) { perror (sockpath); - exit (1); + exit (EXIT_FAILURE); } if (listen (sock, 4) == -1) { perror ("listen"); - exit (1); + exit (EXIT_FAILURE); } /* Now close stdout and substitute /dev/null. This is necessary @@ -265,7 +265,7 @@ rc_listen (void) argv = realloc (call.args.args_val, (argc+1) * sizeof (char *)); if (argv == NULL) { perror ("realloc"); - exit (1); + exit (EXIT_FAILURE); } call.args.args_val = argv; argv[argc] = NULL; @@ -290,7 +290,7 @@ rc_listen (void) /* Exit on error? */ if (call.exit_on_error && reply.r == -1) { unlink (sockpath); - exit (1); + exit (EXIT_FAILURE); } } @@ -302,7 +302,7 @@ rc_listen (void) } unlink (sockpath); - exit (0); + exit (EXIT_SUCCESS); } /* Remote control client. */ diff --git a/fish/tilde.c b/fish/tilde.c index 64b5b39..c599e16 100644 --- a/fish/tilde.c +++ b/fish/tilde.c @@ -62,7 +62,7 @@ try_tilde_expansion (char *str) str = malloc (len); if (str == NULL) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } strcpy (str, home); strcat (str, rest); @@ -89,7 +89,7 @@ expand_home (const char *append) str = malloc (len); if (str == NULL) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } strcpy (str, home); diff --git a/fuse/dircache.c b/fuse/dircache.c index 86760f0..157035e 100644 --- a/fuse/dircache.c +++ b/fuse/dircache.c @@ -138,7 +138,7 @@ init_dir_caches (void) rlc_ht = hash_initialize (1024, NULL, gen_hash, gen_compare, rlc_free); if (!lsc_ht || !xac_ht || !rlc_ht) { fprintf (stderr, "guestmount: could not initialize dir cache hashtables\n"); - exit (1); + exit (EXIT_FAILURE); } } diff --git a/fuse/guestmount.c b/fuse/guestmount.c index 05cacef..07c28c0 100644 --- a/fuse/guestmount.c +++ b/fuse/guestmount.c @@ -858,7 +858,7 @@ fuse_help (void) { const char *tmp_argv[] = { program_name, "--help", NULL }; fuse_main (2, (char **) tmp_argv, &fg_operations, NULL); - exit (0); + exit (EXIT_SUCCESS); } static void __attribute__((noreturn)) @@ -936,7 +936,7 @@ main (int argc, char *argv[]) fuse_argv = realloc (fuse_argv, (1+fuse_argc) * sizeof (char *)); \ if (!fuse_argv) { \ perror ("realloc"); \ - exit (1); \ + exit (EXIT_FAILURE); \ } \ fuse_argv[fuse_argc-1] = (str); \ fuse_argv[fuse_argc] = NULL; \ @@ -959,7 +959,7 @@ main (int argc, char *argv[]) g = guestfs_create (); if (g == NULL) { fprintf (stderr, _("guestfs_create: failed to create handle\n")); - exit (1); + exit (EXIT_FAILURE); } guestfs_set_autosync (g, 1); @@ -1005,19 +1005,19 @@ main (int argc, char *argv[]) else { fprintf (stderr, _("%s: unknown long option: %s (%d)\n"), program_name, long_options[option_index].name, option_index); - exit (1); + exit (EXIT_FAILURE); } break; case 'a': if (access (optarg, R_OK) != 0) { perror (optarg); - exit (1); + exit (EXIT_FAILURE); } drv = malloc (sizeof (struct drv)); if (!drv) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } drv->filename = optarg; drv->next = drvs; @@ -1028,7 +1028,7 @@ main (int argc, char *argv[]) mp = malloc (sizeof (struct mp)); if (!mp) { perror ("malloc"); - exit (1); + exit (EXIT_FAILURE); } p = strchr (optarg, ':'); if (p) { @@ -1061,7 +1061,7 @@ main (int argc, char *argv[]) case 'V': printf ("%s %s\n", program_name, PACKAGE_VERSION); - exit (0); + exit (EXIT_SUCCESS); case HELP_OPTION: usage (0); @@ -1076,7 +1076,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: must have at least one -a and at least one -m option\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } /* We'd better have a mountpoint. */ @@ -1084,18 +1084,18 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: you must specify a mountpoint in the host filesystem\n"), program_name); - exit (1); + exit (EXIT_FAILURE); } /* Do the guest drives and mountpoints. */ add_drives (drvs); if (guestfs_launch (g) == -1) - exit (1); + exit (EXIT_FAILURE); mount_mps (mps); /* FUSE example does this, not clear if it's necessary, but ... */ if (guestfs_umask (g, 0) == -1) - exit (1); + exit (EXIT_FAILURE); /* At the last minute, remove the libguestfs error handler. In code * above this point, the default error handler has been used which @@ -1144,7 +1144,7 @@ add_drives (struct drv *drv) else r = guestfs_add_drive_ro (g, drv->filename); if (r == -1) - exit (1); + exit (EXIT_FAILURE); } } @@ -1161,6 +1161,6 @@ mount_mps (struct mp *mp) else r = guestfs_mount_ro (g, mp->device, mp->mountpoint); if (r == -1) - exit (1); + exit (EXIT_FAILURE); } } diff --git a/hivex/hivexget.c b/hivex/hivexget.c index 04c854f..8cc395a 100644 --- a/hivex/hivexget.c +++ b/hivex/hivexget.c @@ -32,7 +32,7 @@ main (int argc, char *argv[]) { if (argc < 3 || argc > 4) { fprintf (stderr, "hivexget regfile path [key]\n"); - exit (1); + exit (EXIT_FAILURE); } char *file = argv[1]; char *path = argv[2]; @@ -40,19 +40,19 @@ main (int argc, char *argv[]) if (path[0] != '\\') { fprintf (stderr, "hivexget: path must start with a \\ character\n"); - exit (1); + exit (EXIT_FAILURE); } if (path[1] == '\\') { doubled: fprintf (stderr, "hivexget: %s: \\ characters in path are doubled - are you escaping the path parameter correctly?\n", path); - exit (1); + exit (EXIT_FAILURE); } hive_h *h = hivex_open (file, 0); if (h == NULL) { error: perror (file); - exit (1); + exit (EXIT_FAILURE); } /* Navigate to the desired node. */ @@ -264,5 +264,5 @@ main (int argc, char *argv[]) if (hivex_close (h) == -1) goto error; - exit (0); + exit (EXIT_SUCCESS); } diff --git a/hivex/hivexml.c b/hivex/hivexml.c index 9dd394e..7fb419f 100644 --- a/hivex/hivexml.c +++ b/hivex/hivexml.c @@ -59,7 +59,7 @@ static struct hivex_visitor visitor = { do { \ if ((proc args) == -1) { \ fprintf (stderr, "%s: failed to write XML document\n", #proc); \ - exit (1); \ + exit (EXIT_FAILURE); \ } \ } while (0) @@ -80,19 +80,19 @@ main (int argc, char *argv[]) break; default: fprintf (stderr, "hivexml [-dk] regfile > output.xml\n"); - exit (1); + exit (EXIT_FAILURE); } } if (optind + 1 != argc) { fprintf (stderr, "hivexml: missing name of input file\n"); - exit (1); + exit (EXIT_FAILURE); } hive_h *h = hivex_open (argv[optind], open_flags); if (h == NULL) { perror (argv[optind]); - exit (1); + exit (EXIT_FAILURE); } /* Note both this macro, and xmlTextWriterStartDocument leak memory. There @@ -105,7 +105,7 @@ main (int argc, char *argv[]) writer = xmlNewTextWriterFilename ("/dev/stdout", 0); if (writer == NULL) { fprintf (stderr, "xmlNewTextWriterFilename: failed to create XML writer\n"); - exit (1); + exit (EXIT_FAILURE); } XML_CHECK (xmlTextWriterStartDocument, (writer, NULL, "utf-8", NULL)); @@ -113,19 +113,19 @@ main (int argc, char *argv[]) if (hivex_visit (h, &visitor, sizeof visitor, writer, visit_flags) == -1) { perror (argv[optind]); - exit (1); + exit (EXIT_FAILURE); } if (hivex_close (h) == -1) { perror (argv[optind]); - exit (1); + exit (EXIT_FAILURE); } XML_CHECK (xmlTextWriterEndElement, (writer)); XML_CHECK (xmlTextWriterEndDocument, (writer)); xmlFreeTextWriter (writer); - exit (0); + exit (EXIT_SUCCESS); } static int diff --git a/src/generator.ml b/src/generator.ml index a1d3549..a702fb7 100755 --- a/src/generator.ml +++ b/src/generator.ml @@ -5975,7 +5975,7 @@ int main (int argc, char *argv[]) g = guestfs_create (); if (g == NULL) { printf (\"guestfs_create FAILED\\n\"); - exit (1); + exit (EXIT_FAILURE); } guestfs_set_error_handler (g, print_error, NULL); @@ -5986,94 +5986,94 @@ int main (int argc, char *argv[]) fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666); if (fd == -1) { perror (filename); - exit (1); + exit (EXIT_FAILURE); } if (lseek (fd, %d, SEEK_SET) == -1) { perror (\"lseek\"); close (fd); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (write (fd, &c, 1) == -1) { perror (\"write\"); close (fd); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (close (fd) == -1) { perror (filename); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_add_drive (g, filename) == -1) { printf (\"guestfs_add_drive %%s FAILED\\n\", filename); - exit (1); + exit (EXIT_FAILURE); } filename = \"test2.img\"; fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666); if (fd == -1) { perror (filename); - exit (1); + exit (EXIT_FAILURE); } if (lseek (fd, %d, SEEK_SET) == -1) { perror (\"lseek\"); close (fd); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (write (fd, &c, 1) == -1) { perror (\"write\"); close (fd); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (close (fd) == -1) { perror (filename); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_add_drive (g, filename) == -1) { printf (\"guestfs_add_drive %%s FAILED\\n\", filename); - exit (1); + exit (EXIT_FAILURE); } filename = \"test3.img\"; fd = open (filename, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK|O_TRUNC, 0666); if (fd == -1) { perror (filename); - exit (1); + exit (EXIT_FAILURE); } if (lseek (fd, %d, SEEK_SET) == -1) { perror (\"lseek\"); close (fd); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (write (fd, &c, 1) == -1) { perror (\"write\"); close (fd); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (close (fd) == -1) { perror (filename); unlink (filename); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_add_drive (g, filename) == -1) { printf (\"guestfs_add_drive %%s FAILED\\n\", filename); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_add_drive_ro (g, \"../images/test.iso\") == -1) { printf (\"guestfs_add_drive_ro ../images/test.iso FAILED\\n\"); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_launch (g) == -1) { printf (\"guestfs_launch FAILED\\n\"); - exit (1); + exit (EXIT_FAILURE); } /* Set a timeout in case qemu hangs during launch (RHBZ#505329). */ @@ -6105,11 +6105,11 @@ int main (int argc, char *argv[]) pr " if (n_failed > 0) {\n"; pr " printf (\"***** %%lu / %%d tests FAILED *****\\n\", n_failed, nr_tests);\n"; - pr " exit (1);\n"; + pr " exit (EXIT_FAILURE);\n"; pr " }\n"; pr "\n"; - pr " exit (0);\n"; + pr " exit (EXIT_SUCCESS);\n"; pr "}\n" and generate_one_test name i (init, prereq, test) @@ -10056,7 +10056,7 @@ public class Bindtests { } catch (Exception exn) { System.err.println (exn); - System.exit (1); + System.exit (EXIT_FAILURE); } } } diff --git a/test-tool/helper.c b/test-tool/helper.c index 3395f21..731b053 100644 --- a/test-tool/helper.c +++ b/test-tool/helper.c @@ -42,32 +42,32 @@ main (void) if (mkdir ("/tmp", 0700) == -1) { perror ("mkdir"); fprintf (stderr, "This program should not be run directly. Use libguestfs-test-tool instead.\n"); - exit (1); + exit (EXIT_FAILURE); } if (geteuid () != 0) { fprintf (stderr, "helper: This program doesn't appear to be running as root.\n"); - exit (1); + exit (EXIT_FAILURE); } if (mkdir ("/tmp/helper", 0700) == -1) { perror ("/tmp/helper"); - exit (1); + exit (EXIT_FAILURE); } fd = open ("/tmp/helper/a", O_CREAT|O_EXCL|O_WRONLY, 0600); if (fd == -1) { perror ("create /tmp/helper/a"); - exit (1); + exit (EXIT_FAILURE); } if (write (fd, buffer, sizeof buffer) != sizeof buffer) { perror ("write"); - exit (1); + exit (EXIT_FAILURE); } if (close (fd) == -1) { perror ("close"); - exit (1); + exit (EXIT_FAILURE); } - exit (0); + exit (EXIT_SUCCESS); } diff --git a/test-tool/test-tool.c b/test-tool/test-tool.c index 93aaca2..f38490a 100644 --- a/test-tool/test-tool.c +++ b/test-tool/test-tool.c @@ -120,7 +120,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("libguestfs-test-tool: unknown long option: %s (%d)\n"), long_options[option_index].name, option_index); - exit (1); + exit (EXIT_FAILURE); } break; @@ -129,19 +129,19 @@ main (int argc, char *argv[]) fprintf (stderr, _("libguestfs-test-tool: invalid timeout: %s\n"), optarg); - exit (1); + exit (EXIT_FAILURE); } break; case '?': usage (); - exit (0); + exit (EXIT_SUCCESS); default: fprintf (stderr, _("libguestfs-test-tool: unexpected command line option 0x%x\n"), c); - exit (1); + exit (EXIT_FAILURE); } } @@ -163,26 +163,26 @@ main (int argc, char *argv[]) if (g == NULL) { fprintf (stderr, _("libguestfs-test-tool: failed to create libguestfs handle\n")); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_add_drive (g, tmpf) == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to add drive '%s'\n"), tmpf); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_add_drive (g, isof) == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to add drive '%s'\n"), isof); - exit (1); + exit (EXIT_FAILURE); } /* Print any version info etc. */ vers = guestfs_version (g); if (vers == NULL) { fprintf (stderr, _("libguestfs-test-tool: guestfs_version failed\n")); - exit (1); + exit (EXIT_FAILURE); } printf ("library version: %"PRIi64".%"PRIi64".%"PRIi64"%s\n", vers->major, vers->minor, vers->release, vers->extra); @@ -204,7 +204,7 @@ main (int argc, char *argv[]) if (guestfs_launch (g) == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to launch appliance\n")); - exit (1); + exit (EXIT_FAILURE); } alarm (0); @@ -216,31 +216,31 @@ main (int argc, char *argv[]) if (guestfs_sfdiskM (g, "/dev/sda", sfdisk_lines) == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to run sfdisk\n")); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_mkfs (g, "ext2", "/dev/sda1") == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to mkfs.ext2\n")); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_mount (g, "/dev/sda1", "/") == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to mount /dev/sda1 on /\n")); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_mkdir (g, "/iso") == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to mkdir /iso\n")); - exit (1); + exit (EXIT_FAILURE); } if (guestfs_mount (g, "/dev/sdb", "/iso") == -1) { fprintf (stderr, _("libguestfs-test-tool: failed to mount /dev/sdb on /iso\n")); - exit (1); + exit (EXIT_FAILURE); } /* Let's now run some simple tests using the helper program. */ @@ -248,12 +248,12 @@ main (int argc, char *argv[]) if (str == NULL) { fprintf (stderr, _("libguestfs-test-tool: could not run helper program, or helper failed\n")); - exit (1); + exit (EXIT_FAILURE); } free (str); printf ("===== TEST FINISHED OK =====\n"); - exit (0); + exit (EXIT_SUCCESS); } static char qemuwrapper[] = "/tmp/libguestfs-test-tool-wrapper-XXXXXX"; @@ -280,7 +280,7 @@ set_qemu (const char *path, int use_wrapper) fprintf (stderr, _("LIBGUESTFS_QEMU environment variable is already set, so\n" "--qemu/--qemudir options cannot be used.\n")); - exit (1); + exit (EXIT_FAILURE); } if (!use_wrapper) { @@ -288,7 +288,7 @@ set_qemu (const char *path, int use_wrapper) fprintf (stderr, _("Binary '%s' does not exist or is not executable\n"), path); - exit (1); + exit (EXIT_FAILURE); } setenv ("LIBGUESTFS_QEMU", path, 1); @@ -302,14 +302,14 @@ set_qemu (const char *path, int use_wrapper) fprintf (stderr, _("%s: does not look like a qemu source directory\n"), path); - exit (1); + exit (EXIT_FAILURE); } /* Make a wrapper script. */ fd = mkstemp (qemuwrapper); if (fd == -1) { perror (qemuwrapper); - exit (1); + exit (EXIT_FAILURE); } fchmod (fd, 0700); @@ -354,19 +354,19 @@ preruncheck (void) "\n" "Use the --helper option to specify the location of this program.\n"), helper); - exit (1); + exit (EXIT_FAILURE); } snprintf (cmd, sizeof cmd, "file '%s'", helper); fp = popen (cmd, "r"); if (fp == NULL) { perror (cmd); - exit (1); + exit (EXIT_FAILURE); } r = fread (buffer, 1, sizeof buffer - 1, fp); if (r == 0) { fprintf (stderr, _("command failed: %s"), cmd); - exit (1); + exit (EXIT_FAILURE); } pclose (fp); buffer[r] = '\0'; @@ -377,7 +377,7 @@ preruncheck (void) "is not statically linked. This is a build error when this test tool\n" "was built.\n"), helper); - exit (1); + exit (EXIT_FAILURE); } } @@ -398,7 +398,7 @@ make_files (void) fd = mkstemp (isof); if (fd == -1) { perror (isof); - exit (1); + exit (EXIT_FAILURE); } close (fd); @@ -408,7 +408,7 @@ make_files (void) if (r == -1 || WEXITSTATUS(r) != 0) { fprintf (stderr, _("mkisofs command failed: %s\n"), cmd); - exit (1); + exit (EXIT_FAILURE); } /* Allocate the sparse file for /dev/sda. */ @@ -416,7 +416,7 @@ make_files (void) if (fd == -1) { perror (tmpf); unlink (isof); - exit (1); + exit (EXIT_FAILURE); } if (lseek (fd, 100 * 1024 * 1024 - 1, SEEK_SET) == -1) { @@ -424,7 +424,7 @@ make_files (void) close (fd); unlink (tmpf); unlink (isof); - exit (1); + exit (EXIT_FAILURE); } if (write (fd, "\0", 1) == -1) { @@ -432,7 +432,7 @@ make_files (void) close (fd); unlink (tmpf); unlink (isof); - exit (1); + exit (EXIT_FAILURE); } close (fd); -- 1.6.5.3.433.g11067>From f429aaad4910fdee102e0da9ec869cb4502d3153 Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Fri, 20 Nov 2009 12:15:14 +0100 Subject: [PATCH libguestfs 2/3] maint: use EXIT_SUCCESS and EXIT_FAILURE, not 0 and 1 in "usage", too Convert by running these commands: perl -pi -e 's/\b(usage ?)\(1\)/$1(EXIT_FAILURE)/' \ fish/fish.c fuse/guestmount.c perl -pi -e 's/\b(usage ?)\(0\)/$1(EXIT_SUCCESS)/' \ fish/fish.c fuse/guestmount.c * fish/fish.c (main): Replace 0/1 with EXIT_SUCCESS/EXIT_FAILURE. * fuse/guestmount.c (main): Likewise. --- fish/fish.c | 4 ++-- fuse/guestmount.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fish/fish.c b/fish/fish.c index 4f51503..7dae815 100644 --- a/fish/fish.c +++ b/fish/fish.c @@ -322,10 +322,10 @@ main (int argc, char *argv[]) break; case HELP_OPTION: - usage (0); + usage (EXIT_SUCCESS); default: - usage (1); + usage (EXIT_FAILURE); } } diff --git a/fuse/guestmount.c b/fuse/guestmount.c index 07c28c0..9f0a39e 100644 --- a/fuse/guestmount.c +++ b/fuse/guestmount.c @@ -1064,10 +1064,10 @@ main (int argc, char *argv[]) exit (EXIT_SUCCESS); case HELP_OPTION: - usage (0); + usage (EXIT_SUCCESS); default: - usage (1); + usage (EXIT_FAILURE); } } -- 1.6.5.3.433.g11067>From c1f4feed83134ca1aaea4b08a761d23010122f3d Mon Sep 17 00:00:00 2001From: Jim Meyering <meyering at redhat.com> Date: Fri, 20 Nov 2009 12:18:06 +0100 Subject: [PATCH libguestfs 3/3] maint: use EXIT_* symbol (not constant, 2) to indicate key/path not found * hivex/hivexget.c (EXIT_NOT_FOUND): Define. (main): Use exit (EXIT_NOT_FOUND), not "exit (2)". --- hivex/hivexget.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hivex/hivexget.c b/hivex/hivexget.c index 8cc395a..3e89d63 100644 --- a/hivex/hivexget.c +++ b/hivex/hivexget.c @@ -27,6 +27,8 @@ #include "hivex.h" +enum { EXIT_NOT_FOUND = 2 }; + int main (int argc, char *argv[]) { @@ -82,7 +84,7 @@ main (int argc, char *argv[]) /* else node not found */ fprintf (stderr, "hivexget: %s: %s: path element not found\n", path, p); - exit (2); + exit (EXIT_NOT_FOUND); } p = pnext; @@ -103,7 +105,7 @@ main (int argc, char *argv[]) goto error; /* else key not found */ fprintf (stderr, "hivexget: %s: key not found\n", key); - exit (2); + exit (EXIT_NOT_FOUND); } /* Print the value. */ -- 1.6.5.3.433.g11067
Richard W.M. Jones
2009-Nov-20 12:04 UTC
[Libguestfs] fix new failures from latest-from-gnulib syntax-check
On Fri, Nov 20, 2009 at 12:22:19PM +0100, Jim Meyering wrote:> There's a new syntax check rule from gnulib. > It requires that you write e.g., exit (EXIT_SUCCESS), not exit (0). > And the same for 1/EXIT_FAILURE and any other constants.Was there ever a platform where 0/1 weren't used for success or failure? IIRC OS-9 was one such platform, but that was an indication of fail in OS-9. Anyway, I will push these patches shortly, with the exception of this hunk: @@ -10056,7 +10056,7 @@ public class Bindtests { } catch (Exception exn) { System.err.println (exn); - System.exit (1); + System.exit (EXIT_FAILURE); } } } Rich. PS. http://coccinelle.lip6.fr/ is great for these sorts of semantic transformations. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://et.redhat.com/~rjones/virt-df/
Possibly Parallel Threads
- [PATCH V2] virt-diff: add new virt-diff tool
- [PATCH nbdkit 2/3] Refactor plugin_* functions into a backend struct.
- [PATCH nbdkit] Add support for socket activation.
- [PATCH 2/9] Refactor plugin_* functions into a backend struct.
- [PATCH nbdkit v2 2/3] Refactor plugin_* functions into a backend struct.