X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fmangle.c;h=fe37f6466c00643ca472726a579d191bd5024f51;hb=409bddf38c61520400e74332b02cc1cc9f8379ce;hp=985847f73274dc0f2c7ea1977c47abafbf1feabc;hpb=fbc8201238bb5a14653a77a0b20f3cf015386a03;p=chaz%2Ftar diff --git a/src/mangle.c b/src/mangle.c index 985847f..fe37f64 100644 --- a/src/mangle.c +++ b/src/mangle.c @@ -1,5 +1,5 @@ /* Encode long filenames for GNU tar. - Copyright 1988, 1992, 1994, 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright 1988, 92, 94, 96, 97, 99, 2000 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 @@ -13,14 +13,11 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "system.h" - -#include -time_t time (); + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include #include "common.h" +#include struct mangled { @@ -31,26 +28,19 @@ struct mangled char normal[1]; }; -/* Should use a hash table, etc. . */ -struct mangled *first_mangle; -int mangled_num = 0; - -/*---------------------------------------------------------------------. -| Extract a GNUTYPE_NAMES record contents. It seems that such are not | -| produced anymore by GNU tar, but we leave the reading code around | -| nevertheless, for salvaging old tapes. | -`---------------------------------------------------------------------*/ - +/* Extract a GNUTYPE_NAMES record contents. It seems that such are + not produced anymore by GNU tar, but we leave the reading code + around nevertheless, for salvaging old tapes. */ void extract_mangle (void) { - off_t size = current_stat.st_size; + off_t size = current_stat_info.stat.st_size; char *buffer = xmalloc ((size_t) (size + 1)); char *copy = buffer; char *cursor = buffer; if (size != (size_t) size || size == (size_t) -1) - FATAL_ERROR ((0, 0, _("Memory exhausted"))); + xalloc_die (); buffer[size] = '\0'; @@ -97,7 +87,8 @@ extract_mangle (void) next_cursor[-2] = '\0'; unquote_string (name_end + 4); if (rename (name, name_end + 4)) - ERROR ((0, errno, _("Cannot rename %s to %s"), name, name_end + 4)); + ERROR ((0, errno, _("%s: Cannot rename to %s"), + quotearg_colon (name), quote_n (1, name_end + 4))); else if (verbose_option) WARN ((0, 0, _("Renamed %s to %s"), name, name_end + 4)); } @@ -116,8 +107,8 @@ extract_mangle (void) unquote_string (name_end + 4); if (symlink (name, name_end + 4) && (unlink (name_end + 4) || symlink (name, name_end + 4))) - ERROR ((0, errno, _("Cannot symlink %s to %s"), - name, name_end + 4)); + ERROR ((0, errno, _("%s: Cannot symlink to %s"), + quotearg_colon (name), quote_n (1, name_end + 4))); else if (verbose_option) WARN ((0, 0, _("Symlinked %s to %s"), name, name_end + 4)); }