[arch-commits] Commit in mc/trunk (6 files)

Eric Belanger eric at archlinux.org
Wed Jun 18 02:32:22 UTC 2008


    Date: Tuesday, June 17, 2008 @ 22:32:22
  Author: eric
Revision: 3023

upgpkg: mc 4.6.1-5
    rebuilt against gpm 1.20.4, added licence, added arch tag, added missing makedepends, added slang dependency and several utf8 fixes to replace mc-utf8 package (close FS#9913, FS#5078), added several misc. patches (close FS#6397), enable more functionality (close FS#7553)

Added:
  mc/trunk/mc-4.6.1-bash-all.patch
  mc/trunk/mc-4.6.1-find.patch
  mc/trunk/mc-4.6.1-invalid-mtime.patch
  mc/trunk/mc-4.6.1-largefile.patch
  mc/trunk/mc-4.6.1-nonblock.patch
Modified:
  mc/trunk/PKGBUILD

------------------------------+
 PKGBUILD                     |   54 +++++++++--
 mc-4.6.1-bash-all.patch      |   33 ++++++
 mc-4.6.1-find.patch          |  155 ++++++++++++++++++++++++++++++++
 mc-4.6.1-invalid-mtime.patch |   30 ++++++
 mc-4.6.1-largefile.patch     |  194 +++++++++++++++++++++++++++++++++++++++++
 mc-4.6.1-nonblock.patch      |   11 ++
 6 files changed, 466 insertions(+), 11 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2008-06-18 02:19:03 UTC (rev 3022)
+++ PKGBUILD	2008-06-18 02:32:22 UTC (rev 3023)
@@ -4,20 +4,52 @@
 # Contributor: Lucien Immink <l.immink at student.fnt.hvu.nl>
 pkgname=mc
 pkgver=4.6.1
-pkgrel=4
+pkgrel=5
 pkgdesc="A filemanager/shell that emulates Norton Commander"
-depends=('e2fsprogs' 'glib2' 'gpm')
-source=(http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/$pkgname-$pkgver.tar.gz \
-        http://www.archlinux.org/~dorphell/$pkgname-$pkgver-utf8.patch.bz2)
+arch=('i686' 'x86_64')
 url="http://www.ibiblio.org/mc/"
-md5sums=('18b20db6e40480a53bac2870c56fc3c4' '07ef6dc2b1e601c5164ad6030b630c3b')
+license=('GPL')
+depends=('e2fsprogs' 'glib2' 'pcre' 'gpm>=1.20.4' 'slang')
+makedepends=('libxt' 'libx11')
+conflicts=('mc-utf8')
+replaces=('mc-utf8')
+options=('!emptydirs' '!makeflags')
+source=(http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/${pkgname}-${pkgver}.tar.gz \
+        ftp://ftp.archlinux.org/other/mc/mc-4.6.1-utf8-r2.patch.bz2 \
+        mc-4.6.1-bash-all.patch mc-4.6.1-find.patch mc-4.6.1-invalid-mtime.patch \
+        mc-4.6.1-largefile.patch mc-4.6.1-nonblock.patch)
+md5sums=('18b20db6e40480a53bac2870c56fc3c4' 'f90bffe7f51883e818143dc2077eb98f'\
+         'd0c5d1f7258daf2a86b41b185524dced' '3c950491cdf44091df216cfa709d133a'\
+         '81930cce827fe93639dcd6bff630a1a4' '80b45ecf38d9b5df6d368c83d14fd89d'\
+         '00e89cfc43fe6026b61f52b218a65907')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  patch -p1 -i $startdir/src/$pkgname-$pkgver-utf8.patch
-  ./configure --prefix=/usr --with-x
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -p1 < ../mc-4.6.1-find.patch || return 1
+  patch -p1 < ../mc-4.6.1-largefile.patch || return 1
+  patch -p1 < ../mc-4.6.1-invalid-mtime.patch || return 1
+  patch -p1 < ../mc-4.6.1-utf8-r2.patch || return 1
+  patch -p1 < ../mc-4.6.1-nonblock.patch || return 1
+  patch -p1 < ../mc-4.6.1-bash-all.patch || return 1
+
+# Prevent lazy bindings in cons.saver binary.
+#  - not using bindnow-flags() because cons.saver is only built on GNU/Linux
+  sed -i -e "s:^\(cons_saver_LDADD = .*\):\1 -Wl,-z,now:" src/Makefile.in
+
+  ./configure --prefix=/usr --mandir=/usr/share/man \
+    --without-gnome --without-debug --with-screen=slang --without-included-gettext \
+    -enable-largefile --with-subshell --with-edit --with-vfs --with-samba --with-mmap \
+    --with-x --with-gpm-mouse --enable-charset
   make || return 1
-  make DESTDIR=$startdir/pkg install
-  rm -r $startdir/pkg/usr/{man/man8/,man/sr/,sbin}
+  make DESTDIR=${pkgdir} install
+
+  iconv -f koi8-r -t utf8 ${pkgdir}/usr/share/mc/mc.hint.ru > ${pkgdir}/usr/share/mc/mc.hint.ru.tmp || return 1
+  mv ${pkgdir}/usr/share/mc/mc.hint.ru.tmp ${pkgdir}/usr/share/mc/mc.hint.ru
+
+  iconv -f koi8-r -t utf8 ${pkgdir}/usr/share/mc/mc.hlp.ru > ${pkgdir}/usr/share/mc/mc.hlp.ru.tmp || return 1
+  mv ${pkgdir}/usr/share/mc/mc.hlp.ru.tmp ${pkgdir}/usr/share/mc/mc.hlp.ru
+
+  # convert man pages to utf8
+  cd ${pkgdir}/usr/share/man/ru
+  find -type f | xargs -i123 -- sh -c "mv 123 123.old && iconv -f koi8-r -t utf8 123.old >123 && rm 123.old" || return 1
 }
-

Added: mc-4.6.1-bash-all.patch
===================================================================
--- mc-4.6.1-bash-all.patch	                        (rev 0)
+++ mc-4.6.1-bash-all.patch	2008-06-18 02:32:22 UTC (rev 3023)
@@ -0,0 +1,33 @@
+--- /src/subshell.c.000	2006-05-08 23:11:48.000000000 +0200
++++ /src/subshell.c	2006-10-28 15:40:46.000000000 +0200
+@@ -745,29 +745,13 @@ subshell_name_quote (const char *s)
+     memcpy (d, cmd_start, len);
+     d += len;
+ 
+-    /*
+-     * Print every character in octal format with the leading backslash.
+-     * tcsh and zsh may require 4-digit octals, bash < 2.05b doesn't like them.
+-     */
+-    if (subshell_type == BASH) {
+ 	for (; *s; s++) {
+-	    /* Must quote numbers, so that they are not glued to octals */
+ 	    if (isalpha ((unsigned char) *s)) {
+ 		*d++ = (unsigned char) *s;
+ 	    } else {
+-		sprintf (d, "\\%03o", (unsigned char) *s);
+-		d += 4;
+-	    }
+-	}
+-    } else {
+-	for (; *s; s++) {
+-	    if (isalnum ((unsigned char) *s)) {
+-		*d++ = (unsigned char) *s;
+-	    } else {
+ 		sprintf (d, "\\0%03o", (unsigned char) *s);
+ 		d += 5;
+ 	    }
+-	}
+     }
+ 
+     memcpy (d, common_end, sizeof (common_end));
+

Added: mc-4.6.1-find.patch
===================================================================
--- mc-4.6.1-find.patch	                        (rev 0)
+++ mc-4.6.1-find.patch	2008-06-18 02:32:22 UTC (rev 3023)
@@ -0,0 +1,155 @@
+diff -Naur mc-4.6.1.orig/src/cmd.c mc-4.6.1/src/cmd.c
+--- mc-4.6.1.orig/src/cmd.c	2005-05-27 16:19:18.000000000 +0200
++++ mc-4.6.1/src/cmd.c	2006-03-19 12:57:00.000000000 +0100
+@@ -510,7 +510,7 @@
+ 		continue;
+ 	}
+ 	c = regexp_match (reg_exp_t, current_panel->dir.list[i].fname,
+-			  match_file);
++			  match_file, 0);
+ 	if (c == -1) {
+ 	    message (1, MSG_ERROR, _("  Malformed regular expression  "));
+ 	    g_free (reg_exp);
+diff -Naur mc-4.6.1.orig/src/dir.c mc-4.6.1/src/dir.c
+--- mc-4.6.1.orig/src/dir.c	2005-05-27 16:19:18.000000000 +0200
++++ mc-4.6.1/src/dir.c	2006-03-19 12:58:56.000000000 +0100
+@@ -405,7 +405,7 @@
+ 	    *stale_link = 1;
+     }
+     if (!(S_ISDIR (buf1->st_mode) || *link_to_dir) && filter
+-	&& !regexp_match (filter, dp->d_name, match_file))
++	&& !regexp_match (filter, dp->d_name, match_file, 0))
+ 	return 0;
+ 
+     /* Need to grow the *list? */
+diff -Naur mc-4.6.1.orig/src/ext.c mc-4.6.1/src/ext.c
+--- mc-4.6.1.orig/src/ext.c	2005-05-27 16:19:18.000000000 +0200
++++ mc-4.6.1/src/ext.c	2006-03-19 13:00:43.000000000 +0100
+@@ -394,7 +394,7 @@
+     }
+ 
+     if (content_string[0]
+-	&& regexp_match (ptr, content_string + content_shift, match_regex)) {
++	&& regexp_match (ptr, content_string + content_shift, match_regex, 0)) {
+ 	found = 1;
+     }
+ 
+@@ -534,11 +534,11 @@
+ 		/* Do not transform shell patterns, you can use shell/ for
+ 		 * that
+ 		 */
+-		if (regexp_match (p, filename, match_regex))
++		if (regexp_match (p, filename, match_regex, 0))
+ 		    found = 1;
+ 	    } else if (!strncmp (p, "directory/", 10)) {
+ 		if (S_ISDIR (mystat.st_mode)
+-		    && regexp_match (p + 10, filename, match_regex))
++		    && regexp_match (p + 10, filename, match_regex, 0))
+ 		    found = 1;
+ 	    } else if (!strncmp (p, "shell/", 6)) {
+ 		p += 6;
+diff -Naur mc-4.6.1.orig/src/find.c mc-4.6.1/src/find.c
+--- mc-4.6.1.orig/src/find.c	2005-05-27 16:19:18.000000000 +0200
++++ mc-4.6.1/src/find.c	2006-03-19 13:04:10.000000000 +0100
+@@ -575,6 +575,7 @@
+     struct stat tmp_stat;
+     static int pos;
+     static int subdirs_left = 0;
++    int flags = 0;
+ 
+     if (!h) { /* someone forces me to close dirp */
+ 	if (dirp) {
+@@ -586,6 +587,10 @@
+         dp = 0;
+ 	return 1;
+     }
++    
++    if (!(case_sense->state & C_BOOL))
++	flags |= REG_ICASE;
++	
+  do_search_begin:
+     while (!dp){
+ 	
+@@ -662,7 +667,7 @@
+ 	g_free (tmp_name);
+     }
+ 
+-    if (regexp_match (find_pattern, dp->d_name, match_file)){
++    if (regexp_match (find_pattern, dp->d_name, match_file, flags)){
+ 	if (content_pattern) {
+ 	    if (search_content (h, directory, dp->d_name)) {
+ 		return 1;
+diff -Naur mc-4.6.1.orig/src/user.c mc-4.6.1/src/user.c
+--- mc-4.6.1.orig/src/user.c	2005-07-01 17:47:07.000000000 +0200
++++ mc-4.6.1/src/user.c	2006-03-19 13:05:00.000000000 +0100
+@@ -412,18 +412,18 @@
+ 	    break;
+ 	case 'f': /* file name pattern */
+ 	    p = extract_arg (p, arg, sizeof (arg));
+-	    *condition = panel && regexp_match (arg, panel->dir.list [panel->selected].fname, match_file);
++	    *condition = panel && regexp_match (arg, panel->dir.list [panel->selected].fname, match_file, 0);
+ 	    break;
+ 	case 'y': /* syntax pattern */
+             if (edit_widget && edit_widget->syntax_type) {
+ 	        p = extract_arg (p, arg, sizeof (arg));
+ 	        *condition = panel &&
+-                    regexp_match (arg, edit_widget->syntax_type, match_normal);
++                    regexp_match (arg, edit_widget->syntax_type, match_normal, 0);
+ 	    }
+             break;
+ 	case 'd':
+ 	    p = extract_arg (p, arg, sizeof (arg));
+-	    *condition = panel && regexp_match (arg, panel->cwd, match_file);
++	    *condition = panel && regexp_match (arg, panel->cwd, match_file, 0);
+ 	    break;
+ 	case 't':
+ 	    p = extract_arg (p, arg, sizeof (arg));
+diff -Naur mc-4.6.1.orig/src/util.c mc-4.6.1/src/util.c
+--- mc-4.6.1.orig/src/util.c	2005-05-27 16:19:18.000000000 +0200
++++ mc-4.6.1/src/util.c	2006-03-19 13:06:58.000000000 +0100
+@@ -563,27 +563,30 @@
+ 	return  g_strdup (pattern);
+ }
+ 
+-int regexp_match (const char *pattern, const char *string, int match_type)
++int regexp_match (const char *pattern, const char *string, int match_type, int flags)
+ {
+     static regex_t r;
+     static char *old_pattern = NULL;
+     static int old_type;
++    static int old_flags;
+     int    rval;
+     char *my_pattern;
+ 
+-    if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type){
++    if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type || old_flags != flags){
+ 	if (old_pattern){
+ 	    regfree (&r);
+ 	    g_free (old_pattern);
+ 	    old_pattern = NULL;
+ 	}
+ 	my_pattern = convert_pattern (pattern, match_type, 0);
+-	if (regcomp (&r, my_pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS)) {
++	
++	if (regcomp (&r, my_pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS|flags)) {
+ 	    g_free (my_pattern);
+ 	    return -1;
+ 	}
+ 	old_pattern = my_pattern;
+ 	old_type = match_type;
++	old_flags = flags;
+     }
+     rval = !regexec (&r, string, 0, NULL, 0);
+     return rval;
+diff -Naur mc-4.6.1.orig/src/util.h mc-4.6.1/src/util.h
+--- mc-4.6.1.orig/src/util.h	2005-01-13 20:20:47.000000000 +0100
++++ mc-4.6.1/src/util.h	2006-03-19 13:07:16.000000000 +0100
+@@ -116,7 +116,7 @@
+ 
+ extern int easy_patterns;
+ char *convert_pattern (const char *pattern, int match_type, int do_group);
+-int regexp_match (const char *pattern, const char *string, int match_type);
++int regexp_match (const char *pattern, const char *string, int match_type, int flags);
+ 
+ /* Error pipes */
+ void open_error_pipe (void);

Added: mc-4.6.1-invalid-mtime.patch
===================================================================
--- mc-4.6.1-invalid-mtime.patch	                        (rev 0)
+++ mc-4.6.1-invalid-mtime.patch	2008-06-18 02:32:22 UTC (rev 3023)
@@ -0,0 +1,30 @@
+
+  Invalid timestamps on files caused mc to segfault by passing a null
+  pointer to strftime. Avoid trying to print the time in this case.
+
+  Reported by Maxim Britov <maxim at office.modum.by>
+  at http://bugs.gentoo.org/184296
+
+--- mc-4.6.1/src/util.c
++++ mc-4.6.1/src/util.c
+@@ -717,6 +717,7 @@
+     static size_t i18n_timelength = 0;
+     static const char *fmtyear, *fmttime;
+     const char *fmt;
++    struct tm *whentm;
+ 
+     if (i18n_timelength == 0){
+ 	i18n_timelength = i18n_checktimelength() + 1;
+@@ -740,7 +741,11 @@
+     else
+ 	fmt = fmttime;
+     
+-    strftime (timebuf, i18n_timelength, fmt, localtime(&when));
++    whentm = localtime(&when);
++    if (whentm == NULL)
++	return "(invalid)";
++
++    strftime (timebuf, i18n_timelength, fmt, whentm);
+     return timebuf;
+ }
+ 

Added: mc-4.6.1-largefile.patch
===================================================================
--- mc-4.6.1-largefile.patch	                        (rev 0)
+++ mc-4.6.1-largefile.patch	2008-06-18 02:32:22 UTC (rev 3023)
@@ -0,0 +1,194 @@
+diff -Naur mc-4.6.1.orig/intl/loadmsgcat.c mc-4.6.1/intl/loadmsgcat.c
+--- mc-4.6.1.orig/intl/loadmsgcat.c	2005-07-23 18:52:57.000000000 +0200
++++ mc-4.6.1/intl/loadmsgcat.c	2006-03-19 17:11:14.000000000 +0100
+@@ -1002,7 +1002,7 @@
+       /* The magic number is wrong: not a message catalog file.  */
+ #ifdef HAVE_MMAP
+       if (use_mmap)
+-	munmap ((caddr_t) data, size);
++	munmap ((void *) data, size);
+       else
+ #endif
+ 	free (data);
+@@ -1271,7 +1271,7 @@
+ 	free (domain->malloced);
+ #ifdef HAVE_MMAP
+       if (use_mmap)
+-	munmap ((caddr_t) data, size);
++	munmap ((void *) data, size);
+       else
+ #endif
+ 	free (data);
+@@ -1306,7 +1306,7 @@
+ 
+ # ifdef _POSIX_MAPPED_FILES
+   if (domain->use_mmap)
+-    munmap ((caddr_t) domain->data, domain->mmap_size);
++    munmap ((void *) domain->data, domain->mmap_size);
+   else
+ # endif	/* _POSIX_MAPPED_FILES */
+     free ((void *) domain->data);
+diff -Naur mc-4.6.1.orig/src/view.c mc-4.6.1/src/view.c
+--- mc-4.6.1.orig/src/view.c	2005-05-27 16:19:18.000000000 +0200
++++ mc-4.6.1/src/view.c	2006-03-19 17:10:34.000000000 +0100
+@@ -76,6 +76,12 @@
+ #define vwidth (view->widget.cols - (view->have_frame ? 2 : 0))
+ #define vheight (view->widget.lines - (view->have_frame ? 2 : 0))
+ 
++#if GLIB_MAJOR_VERSION >= 2
++#  define my_g_malloc g_try_malloc
++#else
++#  define my_g_malloc g_malloc
++#endif
++
+ /* Offset in bytes into a file */
+ typedef unsigned long offset_type;
+ #define INVALID_OFFSET ((offset_type) -1)
+@@ -560,8 +566,8 @@
+ 	view->data = mc_mmap (0, view->s.st_size, PROT_READ,
+ 			      MAP_FILE | MAP_SHARED, view->file, 0);
+     else
+-	view->data = (caddr_t) -1;
+-    if ((caddr_t) view->data != (caddr_t) - 1) {
++	view->data = (void *) -1;
++    if (view->data != (void *)-1) {
+ 	/* mmap worked */
+ 	view->first = 0;
+ 	view->bytes_read = view->s.st_size;
+@@ -573,6 +579,9 @@
+     /* For the OSes that don't provide mmap call, try to load all the
+      * file into memory (alex at bcs.zaporizhzhe.ua).  Also, mmap can fail
+      * for any reason, so we use this as fallback (pavel at ucw.cz) */
++     
++    /* If large file support is enabled, st_size is a 64 bit value and
++     * will thus on 32 bit platforms possibly be beyond the range of gulong */
+ 
+     /* Make sure view->s.st_size is not truncated when passed to g_malloc */
+     if ((gulong) view->s.st_size == view->s.st_size)
+diff -Naur mc-4.6.1.orig/vfs/local.c mc-4.6.1/vfs/local.c
+--- mc-4.6.1.orig/vfs/local.c	2004-09-25 01:00:18.000000000 +0200
++++ mc-4.6.1/vfs/local.c	2006-03-19 17:00:45.000000000 +0100
+@@ -243,8 +243,8 @@
+ }
+ 
+ #ifdef HAVE_MMAP
+-caddr_t
+-local_mmap (struct vfs_class *me, caddr_t addr, size_t len, int prot, int flags, void *data, off_t offset)
++void *
++local_mmap (struct vfs_class *me, void *addr, size_t len, int prot, int flags, void *data, off_t offset)
+ {
+     int fd = * (int *)data;
+ 
+@@ -252,7 +252,7 @@
+ }
+ 
+ int
+-local_munmap (struct vfs_class *me, caddr_t addr, size_t len, void *data)
++local_munmap (struct vfs_class *me, void *addr, size_t len, void *data)
+ {
+     return munmap (addr, len);
+ }
+diff -Naur mc-4.6.1.orig/vfs/local.h mc-4.6.1/vfs/local.h
+--- mc-4.6.1.orig/vfs/local.h	2004-08-17 11:17:43.000000000 +0200
++++ mc-4.6.1/vfs/local.h	2006-03-19 17:01:35.000000000 +0100
+@@ -13,9 +13,9 @@
+ extern int local_errno (struct vfs_class *me);
+ extern int local_lseek (void *data, off_t offset, int whence);
+ #ifdef HAVE_MMAP
+-extern caddr_t local_mmap (struct vfs_class *me, caddr_t addr, size_t len,
++extern void *local_mmap (struct vfs_class *me, void *addr, size_t len,
+                            int prot, int flags, void *data, off_t offset);
+-extern int local_munmap (struct vfs_class *me, caddr_t addr, size_t len, void *data);
++extern int local_munmap (struct vfs_class *me, void *addr, size_t len, void *data);
+ #endif
+ 
+ #endif
+diff -Naur mc-4.6.1.orig/vfs/samba/lib/util.c mc-4.6.1/vfs/samba/lib/util.c
+--- mc-4.6.1.orig/vfs/samba/lib/util.c	2005-05-27 16:19:19.000000000 +0200
++++ mc-4.6.1/vfs/samba/lib/util.c	2006-03-19 17:06:39.000000000 +0100
+@@ -1836,7 +1836,7 @@
+ 	
+   /* Look up the host address in the address list we just got. */
+   for (i = 0; hp->h_addr_list[i]; i++) {
+-    if (memcmp(hp->h_addr_list[i], (caddr_t) & addr, sizeof(addr)) == 0)
++    if (memcmp(hp->h_addr_list[i], &addr, sizeof(addr)) == 0)
+       return True;
+   }
+ 
+diff -Naur mc-4.6.1.orig/vfs/vfs.c mc-4.6.1/vfs/vfs.c
+--- mc-4.6.1.orig/vfs/vfs.c	2005-05-27 16:19:19.000000000 +0200
++++ mc-4.6.1/vfs/vfs.c	2006-03-19 17:03:48.000000000 +0100
+@@ -740,27 +740,27 @@
+ 
+ #ifdef HAVE_MMAP
+ static struct mc_mmapping {
+-    caddr_t addr;
++    void *addr;
+     void *vfs_info;
+     struct vfs_class *vfs;
+     struct mc_mmapping *next;
+ } *mc_mmaparray = NULL;
+ 
+-caddr_t
+-mc_mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset)
++void *
++mc_mmap (void *addr, size_t len, int prot, int flags, int fd, off_t offset)
+ {
+     struct vfs_class *vfs;
+-    caddr_t result;
++    void *result;
+     struct mc_mmapping *mcm;
+ 
+     if (fd == -1)
+-	return (caddr_t) -1;
++	return (void *) -1;
+     
+     vfs = vfs_op (fd);
+-    result = vfs->mmap ? (*vfs->mmap)(vfs, addr, len, prot, flags, vfs_info (fd), offset) : (caddr_t)-1;
+-    if (result == (caddr_t)-1){
++    result = vfs->mmap ? (*vfs->mmap)(vfs, addr, len, prot, flags, vfs_info (fd), offset) : (void *)-1;
++    if (result == (void *)-1){
+ 	errno = ferrno (vfs);
+-	return (caddr_t)-1;
++	return (void *)-1;
+     }
+     mcm =g_new (struct mc_mmapping, 1);
+     mcm->addr = result;
+@@ -772,7 +772,7 @@
+ }
+ 
+ int
+-mc_munmap (caddr_t addr, size_t len)
++mc_munmap (void *addr, size_t len)
+ {
+     struct mc_mmapping *mcm, *mcm2 = NULL;
+     
+diff -Naur mc-4.6.1.orig/vfs/vfs.h mc-4.6.1/vfs/vfs.h
+--- mc-4.6.1.orig/vfs/vfs.h	2004-11-16 17:16:08.000000000 +0100
++++ mc-4.6.1/vfs/vfs.h	2006-03-19 17:05:57.000000000 +0100
+@@ -49,8 +49,8 @@
+ int mc_ctl (int fd, int ctlop, void *arg);
+ int mc_setctl (const char *path, int ctlop, void *arg);
+ #ifdef HAVE_MMAP
+-caddr_t mc_mmap (caddr_t, size_t, int, int, int, off_t);
+-int mc_munmap (caddr_t addr, size_t len);
++void *mc_mmap (void *, size_t, int, int, int, off_t);
++int mc_munmap (void *addr, size_t len);
+ #endif				/* HAVE_MMAP */
+ 
+ /* Operations for mc_ctl - on open file */
+diff -Naur mc-4.6.1.orig/vfs/vfs-impl.h mc-4.6.1/vfs/vfs-impl.h
+--- mc-4.6.1.orig/vfs/vfs-impl.h	2004-09-02 15:57:59.000000000 +0200
++++ mc-4.6.1/vfs/vfs-impl.h	2006-03-19 17:12:01.000000000 +0100
+@@ -72,9 +72,9 @@
+     int (*setctl) (struct vfs_class *me, const char *path, int ctlop,
+ 		   void *arg);
+ #ifdef HAVE_MMAP
+-    caddr_t (*mmap) (struct vfs_class *me, caddr_t addr, size_t len,
++    void *(*mmap) (struct vfs_class *me, void *addr, size_t len,
+ 		     int prot, int flags, void *vfs_info, off_t offset);
+-    int (*munmap) (struct vfs_class *me, caddr_t addr, size_t len,
++    int (*munmap) (struct vfs_class *me, void *addr, size_t len,
+ 		   void *vfs_info);
+ #endif
+ };

Added: mc-4.6.1-nonblock.patch
===================================================================
--- mc-4.6.1-nonblock.patch	                        (rev 0)
+++ mc-4.6.1-nonblock.patch	2008-06-18 02:32:22 UTC (rev 3023)
@@ -0,0 +1,11 @@
+--- mc-4.6.1/src/cons.saver.c.old	2006-04-30 20:45:11.725128977 +0200
++++ mc-4.6.1/src/cons.saver.c	2006-04-30 20:45:55.545063247 +0200
+@@ -134,7 +134,7 @@
+ 
+   if (seteuid (uid) < 0)
+     die ();
+-  console_fd = open (tty_name, O_RDONLY);
++  console_fd = open (tty_name, O_RDONLY | O_NONBLOCK);
+   if (console_fd < 0)
+     die ();
+   if (fstat (console_fd, &st) < 0 || ! S_ISCHR (st.st_mode))





More information about the arch-commits mailing list