]> git.sur5r.net Git - bacula/bacula/commitdiff
Remove enh_fnmatch.c. Make code that references it use fnmatch.c
authorKern Sibbald <kern@sibbald.com>
Wed, 5 Sep 2007 08:47:33 +0000 (08:47 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 5 Sep 2007 08:47:33 +0000 (08:47 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@5459 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/findlib/find.c
bacula/src/findlib/find.h
bacula/src/lib/enh_fnmatch.c [deleted file]
bacula/src/lib/enh_fnmatch.h [deleted file]
bacula/src/version.h
bacula/technotes-2.3

index 0bffa6abe44be4997c2afc42b807ae24986c4b86..d12fcf48ff71974e268280ab6c287790eec455b0 100644 (file)
@@ -216,7 +216,8 @@ static bool accept_file(FF_PKT *ff)
    int (*match_func)(const char *pattern, const char *string, int flags);
 
    if (ff->flags & FO_ENHANCEDWILD) {
-      match_func = enh_fnmatch;
+//    match_func = enh_fnmatch;
+      match_func = fnmatch;
       if ((basename = last_path_separator(ff->fname)) != NULL)
          basename++;
       else
index cd6d8c543ebb0aefacde8b4de6cb2c17e16c8af3..b646d16834932c68b05008c0ba21589c37094b30 100644 (file)
@@ -55,7 +55,7 @@ struct utimbuf {
 #define MODE_RALL (S_IRUSR|S_IRGRP|S_IROTH)
 
 #include "lib/fnmatch.h"
-#include "lib/enh_fnmatch.h"
+// #include "lib/enh_fnmatch.h"
 
 #ifndef HAVE_REGEX_H
 #include "lib/bregex.h"
diff --git a/bacula/src/lib/enh_fnmatch.c b/bacula/src/lib/enh_fnmatch.c
deleted file mode 100644 (file)
index b3e79b4..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1996, 1997 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 2, or (at your option)
-   any later version.
-
-   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.
-
-  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.  */
-
-/* Modified version of fnmatch.c - Robert Nelson */
-
-#include "bacula.h"
-#include "enh_fnmatch.h"
-
-# ifndef errno
-extern int errno;
-# endif
-
-int
-enh_fnmatch_sub(const char *pattern, const char *string, int patternlen, int flags)
-{
-  register const char *p = pattern, *n = string;
-  register char c;
-
-/* Note that this evaluates C many times.  */
-# define FOLD(c) ((flags & FNM_CASEFOLD) && B_ISUPPER (c) ? tolower (c) : (c))
-
-  while ((p - pattern) < patternlen)
-    {
-      c = *p++;
-      c = FOLD (c);
-
-      switch (c)
-        {
-        case '?':
-          if (*n == '\0')
-            return 0;
-          else if ((flags & FNM_FILE_NAME) && IsPathSeparator(*n))
-            return 0;
-          else if ((flags & FNM_PERIOD) && *n == '.' &&
-                   (n == string || ((flags & FNM_FILE_NAME) && IsPathSeparator(n[-1]))))
-            return 0;
-          break;
-
-        case '\\':
-          if (!(flags & FNM_NOESCAPE))
-            {
-              if ((p - pattern) >= patternlen)
-                /* Trailing \ loses.  */
-                return 0;
-
-              c = *p++;
-              c = FOLD(c);
-            }
-          if (FOLD (*n) != c)
-            return 0;
-          break;
-
-        case '*':
-          if ((flags & FNM_PERIOD) && *n == '.' &&
-              (n == string || ((flags & FNM_FILE_NAME) && IsPathSeparator(n[-1]))))
-            return FNM_NOMATCH;
-
-          if ((p - pattern) >= patternlen)
-              return patternlen;
-
-          for (c = *p++; ((p - pattern) <= patternlen) && (c == '?' || c == '*'); c = *p++)
-            {
-              if ((flags & FNM_FILE_NAME) && IsPathSeparator(*n))
-                /* A slash does not match a wildcard under FNM_FILE_NAME.  */
-                return 0;
-              else if (c == '?')
-                {
-                  /* A ? needs to match one character.  */
-                  if (*n == '\0')
-                    /* There isn't another character; no match.  */
-                    return 0;
-                  else
-                    /* One character of the string is consumed in matching
-                       this ? wildcard, so *??? won't match if there are
-                       less than three characters.  */
-                    ++n;
-                }
-            }
-
-          if ((p - pattern) >= patternlen)
-              return patternlen;
-
-          {
-            char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
-            c1 = FOLD (c1);
-            for (--p; *n != '\0'; ++n)
-              {
-                if (c == '[' || c == '{' || FOLD((unsigned char)*n) == c1)
-                  {
-                    int len;
-
-                    len = enh_fnmatch_sub(p, n, (int)(patternlen - (p - pattern)), flags & ~FNM_PERIOD);
-
-                    if (len > 0 && n[len] == '\0')
-                      return (int)(n - string + len);
-                  }
-                else
-                  {
-                    if ((flags & FNM_FILE_NAME) && IsPathSeparator(*n))
-                      return 0;    /* A slash does not match a wildcard under FNM_FILE_NAME.  */
-                  }
-
-              }
-            return 0;
-          }
-
-        case '{':
-          {
-            const char *pstart = p;
-
-            while ((p - pattern) < patternlen)
-              {
-                c = *p++;
-
-                if (!(flags & FNM_NOESCAPE) && c == '\\')
-                  {
-                    if ((p - pattern) >= patternlen)
-                      return 0;
-
-                    ++p;
-                    continue;
-                  }
-              
-                if (c == ',' || c == '}')
-                  {
-                    int matchlen;
-                  
-                    matchlen = enh_fnmatch_sub(pstart, n, (int)(p - pstart - 1), flags & ~FNM_PERIOD);
-
-                    if (matchlen > 0)
-                      {
-                        n += matchlen - 1;
-                        while (c != '}')
-                          {
-                            if (!(flags & FNM_NOESCAPE) && c == '\\')
-                              {
-                                if ((p - pattern) >= patternlen)
-                                  return 0;
-
-                                ++p;
-                              }
-
-                            if ((p - pattern) >= patternlen)
-                              return 0;
-
-                            c = *p++;
-                          }
-                        break;
-                      }
-
-                    if (c == '}')
-                      return 0;
-
-                    pstart = p;
-                  }
-              }
-            break;
-          }
-
-        case '[':
-          {
-            /* Nonzero if the sense of the character class is inverted.  */
-            register int nnot;
-
-            if (*n == '\0')
-              return 0;
-
-            if ((flags & FNM_PERIOD) && *n == '.' &&
-                (n == string || ((flags & FNM_FILE_NAME) && IsPathSeparator(n[-1]))))
-              return 0;
-
-            nnot = (*p == '!' || *p == '^');
-            if (nnot)
-              ++p;
-
-            if ((p - pattern) >= patternlen)
-              /* [ (unterminated) loses.  */
-              return 0;
-
-            c = *p++;
-
-            for (;;)
-              {
-                register char cstart, cend;
-
-                cstart = cend = FOLD (c);
-
-                if ((p - pattern) >= patternlen)
-                  /* [ (unterminated) loses.  */
-                  return 0;
-
-                c = *p++;
-                c = FOLD (c);
-
-                if ((flags & FNM_FILE_NAME) && IsPathSeparator(c))
-                  /* [/] can never match.  */
-                  return 0;
-
-                if (c == '-' && *p != ']')
-                  {
-                    if ((p - pattern) >= patternlen)
-                      return 0;
-
-                    cend = *p++;
-
-                    cend = FOLD (cend);
-
-                    if ((p - pattern) >= patternlen)
-                      return 0;
-
-                    c = *p++;
-                  }
-
-                if (FOLD (*n) >= cstart && FOLD (*n) <= cend)
-                  goto matched;
-
-                if (c == ']')
-                  break;
-              }
-            if (!nnot)
-              return 0;
-            break;
-
-          matched:;
-            /* Skip the rest of the [...] that already matched.  */
-            while (c != ']')
-              {
-                if ((p - pattern) >= patternlen)
-                  return 0;
-
-                c = *p++;
-              }
-            if (nnot)
-              return 0;
-          }
-          break;
-
-        default:
-          if (c != FOLD (*n))
-            return 0;
-          break;
-        }
-
-      ++n;
-    }
-
-    return (int)(n - string);
-
-# undef FOLD
-}
-
-/* Match STRING against the filename pattern PATTERN, returning number of characters
-   in STRING that were matched if all of PATTERN matches, nonzero if not.  */
-int
-enh_fnmatch(const char *pattern, const char *string, int flags)
-{
-  int matchlen;
-
-  matchlen = enh_fnmatch_sub(pattern, string, (int)strlen(pattern), flags);
-
-  if (matchlen == 0)
-    return FNM_NOMATCH;
-
-  if (string[matchlen] == '\0')
-    return 0;
-
-  if ((flags & FNM_LEADING_DIR) && IsPathSeparator(string[matchlen]))
-    /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz".  */
-    return 0;
-
-  return FNM_NOMATCH;
-}
diff --git a/bacula/src/lib/enh_fnmatch.h b/bacula/src/lib/enh_fnmatch.h
deleted file mode 100644 (file)
index 0a53016..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
-
-NOTE: The canonical source of this file is maintained with the GNU C Library.
-Bugs can be reported to bug-glibc@prep.ai.mit.edu.
-
-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 version.
-
-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.
-
-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. */
-
-/* Modified version of fnmatch.h - Robert Nelson */
-
-#ifndef _ENH_FNMATCH_H
-
-#define _ENH_FNMATCH_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
-#undef __P
-#define __P(protos)    protos
-#else /* Not C++ or ANSI C.  */
-#undef __P
-#define __P(protos)    ()
-/* We can get away without defining `const' here only because in this file
-   it is used only inside the prototype for `fnmatch', which is elided in
-   non-ANSI C where `const' is problematical.  */
-#endif /* C++ or ANSI C.  */
-
-
-/* Match STRING against the filename pattern PATTERN,
-   returning zero if it matches, FNM_NOMATCH if not.  */
-extern int enh_fnmatch __P ((const char *__pattern, const char *__string,
-                        int __flags));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* fnmatch.h */
index 5e787abba51a68f3571930464ca802ae33f179b8..a5f317487c25381a0cfe78ee7d5ee3710811c706 100644 (file)
@@ -3,9 +3,9 @@
  */
 
 #undef  VERSION
-#define VERSION "2.3.2"
-#define BDATE   "02 September 2007"
-#define LSMDATE "02Sep07"
+#define VERSION "2.3.3"
+#define BDATE   "05 September 2007"
+#define LSMDATE "05Sep07"
 
 #define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n"
 #define BYEAR "2007"       /* year for copyright messages in progs */
index e2b9008a2e726b8326f99ecd54395e7f2b2fe80e..008575c414a96352fc6da7b74b32797b6e8d4250 100644 (file)
@@ -1,6 +1,12 @@
               Technical notes on version 2.3
 
 General:
+05Sep07
+kes  Remove enh_fnmatch.c.  Make code that references it use fnmatch.c
+04Sep07
+ebl  Detect if new PosgreSQL batch insert API is present.
+kes  Correct incorrect mempool call causing Director crash.
+sb   Update spec files for 2.2.1 release
 03Sep07
 kes  Fix memory pool call in ua_output.c. bug #934.
 kes  Replace fnmatch.c and fnmatch.h by modified BSD versions.