]> Dogcows Code - chaz/tar/blobdiff - src/transform.c
(contains_dot_dot): Fix double-dot recognition in case of duplicate /. Patch by Dmitr...
[chaz/tar] / src / transform.c
index 525a7875134696289d502d8fdb3039ce19bc2e55..349a0d59e21c7394781a9d27b44c7df8f2a907ff 100644 (file)
@@ -1,9 +1,9 @@
 /* This file is part of GNU tar. 
 /* This file is part of GNU tar. 
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007 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
 
    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 2, or (at your option) any later
+   Free Software Foundation; either version 3, or (at your option) any later
    version.
 
    This program is distributed in the hope that it will be useful, but
    version.
 
    This program is distributed in the hope that it will be useful, but
@@ -64,7 +64,7 @@ struct replace_segm
 
 /* Compiled replacement expression */
 static struct replace_segm *repl_head, *repl_tail;
 
 /* Compiled replacement expression */
 static struct replace_segm *repl_head, *repl_tail;
-static segm_count; /* Number of elements in the above list */
+static size_t segm_count; /* Number of elements in the above list */
 
 static struct replace_segm *
 add_segment (void)
 
 static struct replace_segm *
 add_segment (void)
@@ -377,7 +377,6 @@ bool
 _transform_name_to_obstack (char *input)
 {
   regmatch_t *rmp;
 _transform_name_to_obstack (char *input)
 {
   regmatch_t *rmp;
-  char *p;
   int rc;
   size_t nmatches = 0;
   enum case_ctl_type case_ctl = ctl_stop,  /* Current case conversion op */
   int rc;
   size_t nmatches = 0;
   enum case_ctl_type case_ctl = ctl_stop,  /* Current case conversion op */
@@ -499,21 +498,21 @@ _transform_name_to_obstack (char *input)
 }
   
 bool
 }
   
 bool
-transform_name_fp (char **pinput, char *(*fun)(char *))
+transform_name_fp (char **pinput, char *(*fun)(char *, void *), void *dat)
 {
 {
-    char *str, *p;
+    char *str;
     bool ret = _transform_name_to_obstack (*pinput);
     if (ret)
       {
        str = obstack_finish (&stk);
     bool ret = _transform_name_to_obstack (*pinput);
     if (ret)
       {
        str = obstack_finish (&stk);
-       assign_string (pinput, fun ? fun (str) : str);
+       assign_string (pinput, fun ? fun (str, dat) : str);
        obstack_free (&stk, str);
       }
     else if (fun)
       {
        str = *pinput;
        *pinput = NULL;
        obstack_free (&stk, str);
       }
     else if (fun)
       {
        str = *pinput;
        *pinput = NULL;
-       assign_string (pinput, fun (str));
+       assign_string (pinput, fun (str, dat));
        free (str);
        ret = true;
       }
        free (str);
        ret = true;
       }
@@ -523,6 +522,6 @@ transform_name_fp (char **pinput, char *(*fun)(char *))
 bool
 transform_name (char **pinput)
 {
 bool
 transform_name (char **pinput)
 {
-  return transform_name_fp (pinput, NULL);
+  return transform_name_fp (pinput, NULL, NULL);
 }
 
 }
 
This page took 0.021953 seconds and 4 git commands to generate.