Index: patches/grep-2.6.3-fixes-1.patch
===================================================================
--- patches/grep-2.6.3-fixes-1.patch	(revision 1ac2d0ccb803d1b226c6c9114b5de46889b3be1d)
+++ 	(revision )
@@ -1,325 +1,0 @@
-Submitted By: Joe Ciccone
-Date: 2010-08-03
-Initial Package Version: 2.6.3
-Upstream Status: Unknown
-Origin: http://ftp.de.debian.org/debian/pool/main/g/grep/grep_2.6.3-3.debian.tar.bz2
-Description: Various fixes from debian for Grep
-
-diff -Naur grep-2.6.3.orig/NEWS grep-2.6.3/NEWS
---- grep-2.6.3.orig/NEWS	2010-04-02 04:55:33.000000000 -0400
-+++ grep-2.6.3/NEWS	2010-08-03 22:11:08.142326516 -0400
-@@ -1,5 +1,8 @@
- GNU grep NEWS                                    -*- outline -*-
- 
-+  --mmap was meant to be ignored in 2.6.x, but it was instead
-+  removed by mistake.  [bug introduced in 2.6]
-+
- * Noteworthy changes in release 2.6.3 (2010-04-02) [stable]
- 
- ** Bug fixes
-diff -Naur grep-2.6.3.orig/configure grep-2.6.3/configure
---- grep-2.6.3.orig/configure	2010-04-02 04:56:49.000000000 -0400
-+++ grep-2.6.3/configure	2010-08-03 22:11:08.137850711 -0400
-@@ -24372,13 +24372,14 @@
- if test "$ac_res" != no; then :
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-   test "$ac_cv_search_pcre_compile" = "none required" ||
--	 LIB_PCRE=$ac_cv_search_pcre_compile
-+	 LIB="-ldl $LIBS"
- fi
- 
-       for ac_func in pcre_compile
- do :
-   ac_fn_c_check_func "$LINENO" "pcre_compile" "ac_cv_func_pcre_compile"
- if test "x$ac_cv_func_pcre_compile" = x""yes; then :
-+  CPPFLAGS="$CPPFLAGS -DHAVE_DYNAMIC_LIBPCRE"
-   cat >>confdefs.h <<_ACEOF
- #define HAVE_PCRE_COMPILE 1
- _ACEOF
-diff -Naur grep-2.6.3.orig/doc/grep.in.1 grep-2.6.3/doc/grep.in.1
---- grep-2.6.3.orig/doc/grep.in.1	2010-04-01 04:15:35.000000000 -0400
-+++ grep-2.6.3/doc/grep.in.1	2010-08-03 22:11:08.137850711 -0400
-@@ -25,7 +25,7 @@
- .hy 0
- .
- .SH NAME
--grep, egrep, fgrep \- print lines matching a pattern
-+grep, egrep, fgrep, rgrep \- print lines matching a pattern
- .
- .SH SYNOPSIS
- .B grep
-@@ -56,10 +56,11 @@
- .B grep
- prints the matching lines.
- .PP
--In addition, two variant programs
--.B egrep
--and
-+In addition, three variant programs
-+.B egrep,
- .B fgrep
-+and
-+.B rgrep
- are available.
- .B egrep
- is the same as
-@@ -67,6 +68,9 @@
- .B fgrep
- is the same as
- .BR "grep\ \-F" .
-+.B rgrep
-+is the same as
-+.BR "grep\ \-r" .
- Direct invocation as either
- .B egrep
- or
-@@ -825,7 +829,7 @@
- is not special if it would be the start of an invalid interval
- specification.
- For example, the command
--.B "grep\ \-E\ '{1'"
-+.B "grep\ \-E\ \(aq{1\(aq"
- searches for the two-character string
- .B {1
- instead of reporting a syntax error in the regular expression.
-@@ -865,7 +869,7 @@
- For example, if
- .B GREP_OPTIONS
- is
--.BR "'\-\^\-binary-files=without-match \-\^\-directories=skip'" ,
-+.BR "\(aq\-\^\-binary-files=without-match \-\^\-directories=skip\(aq" ,
- .B grep
- behaves as if the two options
- .B \-\^\-binary\-files=without-match
-@@ -1160,23 +1164,9 @@
- is not set.
- .
- .SH "EXIT STATUS"
--Normally, the exit status is 0 if selected lines are found and 1 otherwise.
--But the exit status is 2 if an error occurred, unless the
--.B \-q
--or
--.B \-\^\-quiet
--or
--.B \-\^\-silent
--option is used and a selected line is found.
--Note, however, that \s-1POSIX\s0 only mandates, for programs such as
--.BR grep ,
--.BR cmp ,
--and
--.BR diff ,
--that the exit status in case of error be greater than 1;
--it is therefore advisable, for the sake of portability,
--to use logic that tests for this general condition
--instead of strict equality with\ 2.
-+The exit status is 0 if selected lines are found, and 1 if not found.          
-+If an error occurred the exit status is 2.  (Note: POSIX error 
-+handling code should check for '2' or greater.)
- .
- .SH COPYRIGHT
- Copyright 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.
-diff -Naur grep-2.6.3.orig/po/ca.po grep-2.6.3/po/ca.po
---- grep-2.6.3.orig/po/ca.po	2010-04-02 04:57:08.000000000 -0400
-+++ grep-2.6.3/po/ca.po	2010-08-03 22:11:08.137850711 -0400
-@@ -278,7 +278,7 @@
- #: src/main.c:1165
- #, c-format
- msgid "Binary file %s matches\n"
--msgstr "Concidència en el fitxer binari %s\n"
-+msgstr "Coincidència en el fitxer binari %s\n"
- 
- #: src/main.c:1179
- msgid "(standard input)"
-diff -Naur grep-2.6.3.orig/src/kwset.c grep-2.6.3/src/kwset.c
---- grep-2.6.3.orig/src/kwset.c	2010-04-01 04:15:35.000000000 -0400
-+++ grep-2.6.3/src/kwset.c	2010-08-03 22:11:08.142326516 -0400
-@@ -40,7 +40,7 @@
- #ifdef GREP
- # include "xalloc.h"
- # undef malloc
--# define malloc(s) xmalloc(s)
-+# define malloc xmalloc
- #endif
- 
- #define NCHAR (UCHAR_MAX + 1)
-diff -Naur grep-2.6.3.orig/src/main.c grep-2.6.3/src/main.c
---- grep-2.6.3.orig/src/main.c	2010-04-01 12:52:10.000000000 -0400
-+++ grep-2.6.3/src/main.c	2010-08-03 22:11:08.142326516 -0400
-@@ -266,6 +266,12 @@
- static char const short_options[] =
- "0123456789A:B:C:D:EFGHIPTUVX:abcd:e:f:hiKLlm:noqRrsuvwxyZz";
- 
-+/* Default for `file_list' if no files are given on the command line. */
-+static char *stdin_argv[] =
-+{
-+  "-", NULL
-+};
-+
- /* Non-boolean long options that have no corresponding short equivalents.  */
- enum
- {
-@@ -511,7 +517,16 @@
- 	 for byte sentinels fore and aft.  */
-       newalloc = newsize + pagesize + 1;
- 
--      newbuf = bufalloc < newalloc ? xmalloc (bufalloc = newalloc) : buffer;
-+      newbuf = bufalloc < newalloc ? malloc (bufalloc = newalloc) : buffer;
-+      if (newbuf == NULL)
-+	{
-+	  int saved_errno = errno;
-+	  free (buffer);
-+	  bufalloc = ALIGN_TO (INITIAL_BUFSIZE, pagesize) + pagesize + 1;
-+	  buffer = xmalloc (bufalloc);
-+	  errno = saved_errno;
-+	  return 0;
-+	}
-       readbuf = ALIGN_TO (newbuf + 1 + save, pagesize);
-       bufbeg = readbuf - save;
-       memmove (bufbeg, buffer + saved_offset, save);
-@@ -1739,6 +1754,7 @@
-   int opt, cc, status;
-   int default_context;
-   FILE *fp;
-+  char **file_list;
- 
-   initialize_main (&argc, &argv);
-   set_program_name (argv[0]);
-@@ -2061,6 +2077,7 @@
- 	label = optarg;
- 	break;
- 
-+      case MMAP_OPTION:
-       case 0:
- 	/* long options */
- 	break;
-@@ -2154,29 +2171,29 @@
-   if (max_count == 0)
-     exit (EXIT_FAILURE);
- 
--  if (optind < argc)
-+  file_list = (optind == argc ? stdin_argv : &argv[optind]);
-+
-+  status = 1;
-+  while (1)
-     {
--	status = 1;
--	do
--	{
--	  char *file = argv[optind];
--	  if ((included_patterns || excluded_patterns)
--	      && !isdir (file))
--	    {
--	      if (included_patterns &&
--		  ! excluded_file_name (included_patterns, file))
--		continue;
--	      if (excluded_patterns &&
--		  excluded_file_name (excluded_patterns, file))
--		continue;
--	    }
--	  status &= grepfile (strcmp (file, "-") == 0 ? (char *) NULL : file,
--			      &stats_base);
--	}
--	while ( ++optind < argc);
-+	char *file = *file_list++;
-+
-+	if (file == NULL)
-+	  break;
-+
-+	if ((included_patterns || excluded_patterns)
-+	   && !isdir (file))
-+	  {
-+	    if (included_patterns &&
-+	        ! excluded_file_name (included_patterns, file))
-+	      continue;
-+	    if (excluded_patterns &&
-+	        excluded_file_name (excluded_patterns, file))
-+	      continue;
-+	  }
-+	status &= grepfile (strcmp (file, "-") == 0
-+			   ? (char *) NULL : file, &stats_base);
-     }
--  else
--    status = grepfile ((char *) NULL, &stats_base);
- 
-   /* We register via atexit() to test stdout.  */
-   exit (errseen ? EXIT_TROUBLE : status);
-diff -Naur grep-2.6.3.orig/src/pcresearch.c grep-2.6.3/src/pcresearch.c
---- grep-2.6.3.orig/src/pcresearch.c	2010-04-01 04:15:35.000000000 -0400
-+++ grep-2.6.3/src/pcresearch.c	2010-08-03 22:11:08.137850711 -0400
-@@ -22,8 +22,14 @@
- #include "search.h"
- #if HAVE_PCRE_H
- # include <pcre.h>
-+# ifdef HAVE_DYNAMIC_LIBPCRE
-+#  include <dlfcn.h>
-+# endif
- #elif HAVE_PCRE_PCRE_H
- # include <pcre/pcre.h>
-+# ifdef HAVE_DYNAMIC_LIBPCRE
-+#  include <dlfcn.h>
-+# endif
- #endif
- 
- #if HAVE_LIBPCRE
-@@ -34,6 +40,50 @@
- static pcre_extra *extra;
- #endif
- 
-+#ifdef HAVE_DYNAMIC_LIBPCRE
-+
-+# define pcre_compile dl_pcre_compile
-+# define pcre_study dl_pcre_study
-+# define pcre_exec dl_pcre_exec
-+# define pcre_maketables dl_pcre_maketables
-+
-+static pcre *(*pcre_compile)(const char *pattern, int options,
-+const char **errptr, int *erroffset,
-+                               const unsigned char *tableptr);
-+static pcre_extra *(*pcre_study)(const pcre *code, int options,
-+                                   const char **errptr);
-+static int (*pcre_exec)(const pcre *code, const pcre_extra *extra,
-+                          const char *subject, int length, int startoffset,
-+                          int options, int *ovector, int ovecsize);
-+static const unsigned char *(*pcre_maketables)(void);
-+
-+static int
-+map_pcre(void)
-+{
-+  void *library;
-+
-+  if (pcre_maketables)
-+    return 1;
-+
-+  if (!(library = dlopen("libpcre.so.3", RTLD_NOW)))
-+    return 0;
-+
-+  if (!(pcre_compile = dlsym(library, "pcre_compile")))
-+    return 0;
-+  if (!(pcre_study = dlsym(library, "pcre_study")))
-+    return 0;
-+  if (!(pcre_exec = dlsym(library, "pcre_exec")))
-+    return 0;
-+  if (!(pcre_maketables = dlsym(library, "pcre_maketables")))
-+    return 0;
-+
-+  return 1;
-+}
-+
-+#else
-+#define map_pcre() (1)
-+#endif /* HAVE_DYNAMIC_LIBPCRE */
-+
- void
- Pcompile (char const *pattern, size_t size)
- {
-@@ -51,6 +101,10 @@
-   char const *p;
-   char const *pnul;
- 
-+  if (!map_pcre ())
-+    error (EXIT_TROUBLE, 0, "%s",
-+	   _("The -P option is not supported: libpcre.so.3 is not available"));
-+
-   /* FIXME: Remove these restrictions.  */
-   if (memchr(pattern, '\n', size))
-     error (EXIT_TROUBLE, 0, _("the -P option only supports a single pattern"));
