]> Dogcows Code - chaz/tar/commitdiff
*** empty log message ***
authorFrançois Pinard <pinard@iro.umontreal.ca>
Wed, 16 Nov 1994 03:05:01 +0000 (03:05 +0000)
committerFrançois Pinard <pinard@iro.umontreal.ca>
Wed, 16 Nov 1994 03:05:01 +0000 (03:05 +0000)
NEWS
src/mangle.c

diff --git a/NEWS b/NEWS
index 579a4db7be4f19cdae9265888e809731a08c6cf8..d112610c9b57104a9020a7d513586358551b31b0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -52,6 +52,7 @@ o Longnames support is redone differently--long name info directly
   longer have to wait for the extract to hit the end of the tape for
   long names to work.
 
   longer have to wait for the extract to hit the end of the tape for
   long names to work.
 
+\f
 ==================
 
 User-visible changes since 1.09:
 ==================
 
 User-visible changes since 1.09:
index 26baae79ea41d6c24f302ee8c126fafa8d44833e..628168473a1b2eb992c9733336b453088fc1041b 100644 (file)
@@ -20,233 +20,251 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <stdio.h>
 #include <sys/types.h>
 #include <time.h>
 #include <stdio.h>
 #include <sys/types.h>
 #include <time.h>
-time_t time();
+time_t time ();
 
 #include "tar.h"
 #include "port.h"
 
 
 #include "tar.h"
 #include "port.h"
 
-void add_buffer();
-extern PTR ck_malloc();
-void finish_header();
-extern PTR init_buffer();
-extern char *quote_copy_string();
-extern char *get_buffer();
-char *un_quote_string();
+void add_buffer ();
+extern PTR ck_malloc ();
+void finish_header ();
+extern PTR init_buffer ();
+extern char *quote_copy_string ();
+extern char *get_buffer ();
+char *un_quote_string ();
 
 
-extern union record *start_header();
+extern union record *start_header ();
 
 
-extern struct stat hstat;              /* Stat struct corresponding */
+extern struct stat hstat;      /* Stat struct corresponding */
 
 
-struct mangled {
-       struct mangled *next;
-       int type;
-       char mangled[NAMSIZ];
-       char *linked_to;
-       char normal[1];
-};
+struct mangled
+  {
+    struct mangled *next;
+    int type;
+    char mangled[NAMSIZ];
+    char *linked_to;
+    char normal[1];
+  };
 
 
 /* Should use a hash table, etc. .  */
 struct mangled *first_mangle;
 int mangled_num = 0;
 
 
 
 /* Should use a hash table, etc. .  */
 struct mangled *first_mangle;
 int mangled_num = 0;
 
-#if 0 /* Deleted because there is now a better way to do all this */
+#if 0                          /* Deleted because there is now a better way to do all this */
 
 char *
 find_mangled (name)
 
 char *
 find_mangled (name)
-char *name;
+     char *name;
 {
 {
-       struct mangled *munge;
+  struct mangled *munge;
 
 
-       for(munge=first_mangle;munge;munge=munge->next)
-               if(!strcmp(name,munge->normal))
-                       return munge->mangled;
-       return 0;
+  for (munge = first_mangle; munge; munge = munge->next)
+    if (!strcmp (name, munge->normal))
+      return munge->mangled;
+  return 0;
 }
 
 
 #ifdef S_ISLNK
 void
 }
 
 
 #ifdef S_ISLNK
 void
-add_symlink_mangle(symlink, linkto, buffer)
-char *symlink;
-char *linkto;
-char *buffer;
+add_symlink_mangle (symlink, linkto, buffer)
+     char *symlink;
+     char *linkto;
+     char *buffer;
 {
 {
-       struct mangled *munge,*kludge;
-
-       munge=(struct mangled *)ck_malloc(sizeof(struct mangled)+strlen(symlink)+strlen(linkto)+2);
-       if(!first_mangle)
-               first_mangle=munge;
-       else {
-               for(kludge=first_mangle;kludge->next;kludge=kludge->next)
-                       ;
-               kludge->next=munge;
-       }
-       munge->type=1;
-       munge->next=0;
-       strcpy(munge->normal,symlink);
-       munge->linked_to=munge->normal+strlen(symlink)+1;
-       strcpy(munge->linked_to,linkto);
-       sprintf(munge->mangled,"@@MaNgLeD.%d",mangled_num++);
-       strncpy(buffer,munge->mangled,NAMSIZ);
+  struct mangled *munge, *kludge;
+
+  munge = (struct mangled *) ck_malloc (sizeof (struct mangled) + strlen (symlink) + strlen (linkto) + 2);
+  if (!first_mangle)
+    first_mangle = munge;
+  else
+    {
+      for (kludge = first_mangle; kludge->next; kludge = kludge->next)
+       ;
+      kludge->next = munge;
+    }
+  munge->type = 1;
+  munge->next = 0;
+  strcpy (munge->normal, symlink);
+  munge->linked_to = munge->normal + strlen (symlink) + 1;
+  strcpy (munge->linked_to, linkto);
+  sprintf (munge->mangled, "@@MaNgLeD.%d", mangled_num++);
+  strncpy (buffer, munge->mangled, NAMSIZ);
 }
 }
+
 #endif
 
 void
 add_mangle (name, buffer)
 #endif
 
 void
 add_mangle (name, buffer)
-char *name;
-char *buffer;
+     char *name;
+     char *buffer;
 {
 {
-       struct mangled *munge,*kludge;
-
-       munge=(struct mangled *)ck_malloc(sizeof(struct mangled)+strlen(name));
-       if(!first_mangle)
-               first_mangle=munge;
-       else {
-               for(kludge=first_mangle;kludge->next;kludge=kludge->next)
-                       ;
-               kludge->next=munge;
-       }
-       munge->next=0;
-       munge->type=0;
-       strcpy(munge->normal,name);
-       sprintf(munge->mangled,"@@MaNgLeD.%d",mangled_num++);
-       strncpy(buffer,munge->mangled,NAMSIZ);
+  struct mangled *munge, *kludge;
+
+  munge = (struct mangled *) ck_malloc (sizeof (struct mangled) + strlen (name));
+  if (!first_mangle)
+    first_mangle = munge;
+  else
+    {
+      for (kludge = first_mangle; kludge->next; kludge = kludge->next)
+       ;
+      kludge->next = munge;
+    }
+  munge->next = 0;
+  munge->type = 0;
+  strcpy (munge->normal, name);
+  sprintf (munge->mangled, "@@MaNgLeD.%d", mangled_num++);
+  strncpy (buffer, munge->mangled, NAMSIZ);
 }
 
 void
 }
 
 void
-write_mangled()
+write_mangled ()
 {
 {
-       struct mangled *munge;
-       struct stat hstat;
-       union record *header;
-       char *ptr1,*ptr2;
-       PTR the_buffer;
-       int size;
-       int bufsize;
-
-       if(!first_mangle)
-               return;
-       the_buffer=init_buffer();
-       for(munge=first_mangle,size=0;munge;munge=munge->next) {
-               ptr1=quote_copy_string(munge->normal);
-               if(!ptr1)
-                       ptr1=munge->normal;
-               if(munge->type) {
-                       add_buffer(the_buffer,"Symlink ",8);
-                       add_buffer(the_buffer,ptr1,strlen(ptr1));
-                       add_buffer(the_buffer," to ",4);
-                       
-                       if(ptr2=quote_copy_string(munge->linked_to)) {
-                               add_buffer(the_buffer,ptr2,strlen(ptr2));
-                               free(ptr2);
-                       } else
-                               add_buffer(the_buffer,munge->linked_to,strlen(munge->linked_to));
-               } else {
-                       add_buffer(the_buffer,"Rename ",7);
-                       add_buffer(the_buffer,munge->mangled,strlen(munge->mangled));
-                       add_buffer(the_buffer," to ",4);
-                       add_buffer(the_buffer,ptr1,strlen(ptr1));
-               }
-               add_buffer(the_buffer,"\n",1);
-               if(ptr1!=munge->normal)
-                       free(ptr1);
-       }
+  struct mangled *munge;
+  struct stat hstat;
+  union record *header;
+  char *ptr1, *ptr2;
+  PTR the_buffer;
+  int size;
+  int bufsize;
 
 
-       bzero(&hstat,sizeof(struct stat));
-       hstat.st_atime=hstat.st_mtime=hstat.st_ctime=time(0);
-       ptr1=get_buffer(the_buffer);
-       hstat.st_size=strlen(ptr1);
-
-       header=start_header("././@MaNgLeD_NaMeS",&hstat);
-       header->header.linkflag=LF_NAMES;
-       finish_header(header);
-       size=hstat.st_size;
-       header=findrec();
-       bufsize = endofrecs()->charptr - header->charptr;
-
-       while(bufsize<size) {
-               bcopy(ptr1,header->charptr,bufsize);
-               ptr1+=bufsize;
-               size-=bufsize;
-               userec(header+(bufsize-1)/RECORDSIZE);
-               header=findrec();
-               bufsize = endofrecs()->charptr - header->charptr;
+  if (!first_mangle)
+    return;
+  the_buffer = init_buffer ();
+  for (munge = first_mangle, size = 0; munge; munge = munge->next)
+    {
+      ptr1 = quote_copy_string (munge->normal);
+      if (!ptr1)
+       ptr1 = munge->normal;
+      if (munge->type)
+       {
+         add_buffer (the_buffer, "Symlink ", 8);
+         add_buffer (the_buffer, ptr1, strlen (ptr1));
+         add_buffer (the_buffer, " to ", 4);
+
+         if (ptr2 = quote_copy_string (munge->linked_to))
+           {
+             add_buffer (the_buffer, ptr2, strlen (ptr2));
+             free (ptr2);
+           }
+         else
+           add_buffer (the_buffer, munge->linked_to, strlen (munge->linked_to));
+       }
+      else
+       {
+         add_buffer (the_buffer, "Rename ", 7);
+         add_buffer (the_buffer, munge->mangled, strlen (munge->mangled));
+         add_buffer (the_buffer, " to ", 4);
+         add_buffer (the_buffer, ptr1, strlen (ptr1));
        }
        }
-       bcopy(ptr1,header->charptr,size);
-       bzero(header->charptr+size,bufsize-size);
-       userec(header+(size-1)/RECORDSIZE);
+      add_buffer (the_buffer, "\n", 1);
+      if (ptr1 != munge->normal)
+       free (ptr1);
+    }
+
+  bzero (&hstat, sizeof (struct stat));
+  hstat.st_atime = hstat.st_mtime = hstat.st_ctime = time (0);
+  ptr1 = get_buffer (the_buffer);
+  hstat.st_size = strlen (ptr1);
+
+  header = start_header ("././@MaNgLeD_NaMeS", &hstat);
+  header->header.linkflag = LF_NAMES;
+  finish_header (header);
+  size = hstat.st_size;
+  header = findrec ();
+  bufsize = endofrecs ()->charptr - header->charptr;
+
+  while (bufsize < size)
+    {
+      bcopy (ptr1, header->charptr, bufsize);
+      ptr1 += bufsize;
+      size -= bufsize;
+      userec (header + (bufsize - 1) / RECORDSIZE);
+      header = findrec ();
+      bufsize = endofrecs ()->charptr - header->charptr;
+    }
+  bcopy (ptr1, header->charptr, size);
+  bzero (header->charptr + size, bufsize - size);
+  userec (header + (size - 1) / RECORDSIZE);
 }
 
 #endif
 
 void
 }
 
 #endif
 
 void
-extract_mangle(head)
-union record *head;
+extract_mangle (head)
+     union record *head;
 {
 {
-       char *buf;
-       char *fromtape;
-       char *to;
-       char *ptr,*ptrend;
-       char *nam1,*nam1end;
-       int size;
-       int copied;
-
-       size=hstat.st_size;
-       buf=to=ck_malloc(size+1);
-       buf[size]='\0';
-       while(size>0) {
-               fromtape=findrec()->charptr;
-               if(fromtape==0) {
-                       msg("Unexpected EOF in mangled names!");
-                       return;
-               }
-               copied=endofrecs()->charptr-fromtape;
-               if(copied>size)
-                       copied=size;
-               bcopy(fromtape,to,copied);
-               to+=copied;
-               size-=copied;
-               userec((union record *)(fromtape+copied-1));
+  char *buf;
+  char *fromtape;
+  char *to;
+  char *ptr, *ptrend;
+  char *nam1, *nam1end;
+  int size;
+  int copied;
+
+  size = hstat.st_size;
+  buf = to = ck_malloc (size + 1);
+  buf[size] = '\0';
+  while (size > 0)
+    {
+      fromtape = findrec ()->charptr;
+      if (fromtape == 0)
+       {
+         msg ("Unexpected EOF in mangled names!");
+         return;
+       }
+      copied = endofrecs ()->charptr - fromtape;
+      if (copied > size)
+       copied = size;
+      bcopy (fromtape, to, copied);
+      to += copied;
+      size -= copied;
+      userec ((union record *) (fromtape + copied - 1));
+    }
+  for (ptr = buf; *ptr; ptr = ptrend)
+    {
+      ptrend = index (ptr, '\n');
+      *ptrend++ = '\0';
+
+      if (!strncmp (ptr, "Rename ", 7))
+       {
+         nam1 = ptr + 7;
+         nam1end = index (nam1, ' ');
+         while (strncmp (nam1end, " to ", 4))
+           {
+             nam1end++;
+             nam1end = index (nam1end, ' ');
+           }
+         *nam1end = '\0';
+         if (ptrend[-2] == '/')
+           ptrend[-2] = '\0';
+         un_quote_string (nam1end + 4);
+         if (rename (nam1, nam1end + 4))
+           msg_perror ("Can't rename %s to %s", nam1, nam1end + 4);
+         else if (f_verbose)
+           msg ("Renamed %s to %s", nam1, nam1end + 4);
        }
        }
-       for(ptr=buf;*ptr;ptr=ptrend) {
-               ptrend=index(ptr,'\n');
-               *ptrend++='\0';
-
-               if(!strncmp(ptr,"Rename ",7)) {
-                       nam1=ptr+7;
-                       nam1end=index(nam1,' ');
-                       while(strncmp(nam1end," to ",4)) {
-                               nam1end++;
-                               nam1end=index(nam1end,' ');
-                       }
-                       *nam1end='\0';
-                       if(ptrend[-2]=='/')
-                               ptrend[-2]='\0';
-                       un_quote_string(nam1end+4);
-                       if(rename(nam1,nam1end+4))
-                               msg_perror("Can't rename %s to %s",nam1,nam1end+4);
-                       else if(f_verbose)
-                               msg("Renamed %s to %s",nam1,nam1end+4);
-               }
 #ifdef S_ISLNK
 #ifdef S_ISLNK
-               else if(!strncmp(ptr,"Symlink ",8)) {
-                       nam1=ptr+8;
-                       nam1end=index(nam1,' ');
-                       while(strncmp(nam1end," to ",4)) {
-                               nam1end++;
-                               nam1end=index(nam1end,' ');
-                       }
-                       *nam1end = '\0';
-                       un_quote_string(nam1);
-                       un_quote_string(nam1end+4);
-                       if(symlink(nam1,nam1end+4) && (unlink(nam1end+4) || symlink(nam1,nam1end+4)))
-                               msg_perror("Can't symlink %s to %s",nam1,nam1end+4);
-                       else if(f_verbose)
-                               msg("Symlinkd %s to %s",nam1,nam1end+4);
-               }
-#endif
-               else
-                       msg("Unknown demangling command %s",ptr);
+      else if (!strncmp (ptr, "Symlink ", 8))
+       {
+         nam1 = ptr + 8;
+         nam1end = index (nam1, ' ');
+         while (strncmp (nam1end, " to ", 4))
+           {
+             nam1end++;
+             nam1end = index (nam1end, ' ');
+           }
+         *nam1end = '\0';
+         un_quote_string (nam1);
+         un_quote_string (nam1end + 4);
+         if (symlink (nam1, nam1end + 4) && (unlink (nam1end + 4) || symlink (nam1, nam1end + 4)))
+           msg_perror ("Can't symlink %s to %s", nam1, nam1end + 4);
+         else if (f_verbose)
+           msg ("Symlinkd %s to %s", nam1, nam1end + 4);
        }
        }
+#endif
+      else
+       msg ("Unknown demangling command %s", ptr);
+    }
 }
 }
This page took 0.037422 seconds and 4 git commands to generate.