X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcheckpoint.c;h=54c2cd6048956b16ef782643036c0063146a1e13;hb=cd7bdd4076ca154575bbef85eb2157e59befcfe2;hp=cde5e590284e74cc0ca1208febc72a234830de25;hpb=745832a280f635b26d67e2cb8d8882ac0432e5a0;p=chaz%2Ftar diff --git a/src/checkpoint.c b/src/checkpoint.c index cde5e59..54c2cd6 100644 --- a/src/checkpoint.c +++ b/src/checkpoint.c @@ -1,19 +1,21 @@ /* Checkpoint management for tar. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright 2007, 2013 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 3, or (at your option) any later - version. + This file is part of GNU tar. - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. + GNU tar is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. - You should have received a copy of the GNU General Public License along - with this program. If not, see . */ + GNU tar is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include #include "common.h" @@ -77,10 +79,10 @@ void checkpoint_compile_action (const char *str) { struct checkpoint_action *act; - + if (strcmp (str, ".") == 0 || strcmp (str, "dot") == 0) alloc_action (cop_dot); - if (strcmp (str, "bell") == 0) + else if (strcmp (str, "bell") == 0) alloc_action (cop_bell); else if (strcmp (str, "echo") == 0) alloc_action (cop_echo); @@ -113,20 +115,20 @@ checkpoint_compile_action (const char *str) } void -checkpoint_finish_compile () +checkpoint_finish_compile (void) { if (checkpoint_option) { if (!checkpoint_action) /* Provide a historical default */ - checkpoint_compile_action ("echo"); + checkpoint_compile_action ("echo"); } else if (checkpoint_action) /* Otherwise, set default checkpoint rate */ checkpoint_option = DEFAULT_CHECKPOINT; } -char * +static char * expand_checkpoint_string (const char *input, bool do_write, unsigned cpn) { const char *opstr = do_write ? gettext ("write") : gettext ("read"); @@ -147,7 +149,7 @@ expand_checkpoint_string (const char *input, bool do_write, unsigned cpn) case 'u': outlen += cpslen - 2; break; - + case 's': outlen += opstrlen - 2; } @@ -164,11 +166,11 @@ expand_checkpoint_string (const char *input, bool do_write, unsigned cpn) case 'u': op = stpcpy (op, cps); break; - + case 's': op = stpcpy (op, opstr); break; - + default: *op++ = '%'; *op++ = *ip; @@ -188,7 +190,7 @@ run_checkpoint_actions (bool do_write) { struct checkpoint_action *p; FILE *tty = NULL; - + for (p = checkpoint_action; p; p = p->next) { switch (p->opcode) @@ -207,7 +209,7 @@ run_checkpoint_actions (bool do_write) fflush (tty); } break; - + case cop_echo: { char *tmp; @@ -215,16 +217,16 @@ run_checkpoint_actions (bool do_write) if (!str) { if (do_write) - /* TRANSLATORS: This is a ``checkpoint of write operation'', - *not* ``Writing a checkpoint''. - E.g. in Spanish ``Punto de comprobaci@'on de escritura'', - *not* ``Escribiendo un punto de comprobaci@'on'' */ + /* TRANSLATORS: This is a "checkpoint of write operation", + *not* "Writing a checkpoint". + E.g. in Spanish "Punto de comprobaci@'on de escritura", + *not* "Escribiendo un punto de comprobaci@'on" */ str = gettext ("Write checkpoint %u"); else - /* TRANSLATORS: This is a ``checkpoint of read operation'', - *not* ``Reading a checkpoint''. - E.g. in Spanish ``Punto de comprobaci@'on de lectura'', - *not* ``Leyendo un punto de comprobaci@'on'' */ + /* TRANSLATORS: This is a "checkpoint of read operation", + *not* "Reading a checkpoint". + E.g. in Spanish "Punto de comprobaci@'on de lectura", + *not* "Leyendo un punto de comprobaci@'on" */ str = gettext ("Read checkpoint %u"); } tmp = expand_checkpoint_string (str, do_write, checkpoint); @@ -232,7 +234,7 @@ run_checkpoint_actions (bool do_write) free (tmp); } break; - + case cop_ttyout: if (!tty) tty = fopen ("/dev/tty", "w"); @@ -245,11 +247,11 @@ run_checkpoint_actions (bool do_write) free (tmp); } break; - + case cop_sleep: sleep (p->v.time); break; - + case cop_exec: sys_exec_checkpoint_script (p->v.command, archive_name_cursor[0], @@ -266,5 +268,4 @@ checkpoint_run (bool do_write) { if (checkpoint_option && !(++checkpoint % checkpoint_option)) run_checkpoint_actions (do_write); -} - +}