rpms/mc/F-12 mc-rpmvfs.patch, NONE, 1.1 .cvsignore, 1.40, 1.41 mc-extensions.patch, 1.16, 1.17 mc.spec, 1.148, 1.149 sources, 1.48, 1.49

Jindrich Novy jnovy at fedoraproject.org
Thu Dec 10 19:53:31 UTC 2009


Author: jnovy

Update of /cvs/pkgs/rpms/mc/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24200

Modified Files:
	.cvsignore mc-extensions.patch mc.spec sources 
Added Files:
	mc-rpmvfs.patch 
Log Message:
* Thu Dec 10 2009 Jindrich Novy <jnovy at redhat.com> 4.7.0-0.5.pre4
- update to pre4:
  - fixes color parsing (#545805)
  - editor/viewer issues (#539292)
  - configuration saving (#537778)
  - tar VFS fix (#495791)
  - enhanced file search (#210620)
  - UTF-8 is added in Display Bits/Select (#196358)
- update bindings (#532784)
- show empty directories in RPM VFS (#529645)
- add gpm-devel to BR (#440580)


mc-rpmvfs.patch:
 b/vfs/cpio.c     |  283 ++++++++++++++++++++++++++++---------------------------
 b/vfs/direntry.c |   13 +-
 b/vfs/vfs.c      |    3 
 vfs/cpio.c       |    7 -
 4 files changed, 162 insertions(+), 144 deletions(-)

--- NEW FILE mc-rpmvfs.patch ---
commit 698385bdd0bfb485bcc42a634f86a8cd0ffae564
Author: Andrew Borodin <aborodin at vmail.ru>
Date:   Wed Nov 18 16:26:24 2009 +0300

    Ticket #1732: cpio VFS skips empty directories in the root of archive
    
    Initial step: some optimization and type accuracy.
    
    Signed-off-by: Andrew Borodin <aborodin at vmail.ru>

diff --git a/vfs/cpio.c b/vfs/cpio.c
index 5eeef95..8c24573 100644
--- a/vfs/cpio.c
+++ b/vfs/cpio.c
@@ -103,7 +103,6 @@ struct defer_inode {
 static int cpio_position;
 
 static int cpio_find_head(struct vfs_class *me, struct vfs_s_super *super);
-static int cpio_create_entry(struct vfs_class *me, struct vfs_s_super *super, struct stat *, char *name);
 static ssize_t cpio_read_bin_head(struct vfs_class *me, struct vfs_s_super *super);
 static ssize_t cpio_read_oldc_head(struct vfs_class *me, struct vfs_s_super *super);
 static ssize_t cpio_read_crc_head(struct vfs_class *me, struct vfs_s_super *super);
@@ -234,8 +233,8 @@ static int cpio_find_head(struct vfs_class *me, struct vfs_s_super *super)
 {
     char buf[256];
     int ptr = 0;
-    int top;
-    int tmp;
+    ssize_t top;
+    ssize_t tmp;
 
     top = mc_read (super->u.arch.fd, buf, 256);
     if (top > 0)
@@ -271,6 +270,140 @@ static int cpio_find_head(struct vfs_class *me, struct vfs_s_super *super)
 #undef RETURN
 #undef SEEKBACK
 
+static int
+cpio_create_entry (struct vfs_class *me, struct vfs_s_super *super,
+		   struct stat *st, char *name)
+{
+    struct vfs_s_inode *inode = NULL;
+    struct vfs_s_inode *root = super->root;
+    struct vfs_s_entry *entry = NULL;
+    char *tn;
+
+    switch (st->st_mode & S_IFMT) {	/* For case of HP/UX archives */
+    case S_IFCHR:
+    case S_IFBLK:
+#ifdef S_IFSOCK
+    case S_IFSOCK:
+#endif
+#ifdef S_IFIFO
+    case S_IFIFO:
+#endif
+#ifdef S_IFNAM
+    case S_IFNAM:
+#endif
+	if ((st->st_size != 0) && (st->st_rdev == 0x0001)) {
+	    /* FIXME: representation of major/minor differs between */
+	    /* different operating systems. */
+	    st->st_rdev = (unsigned) st->st_size;
+	    st->st_size = 0;
+	}
+	break;
+    default:
+	break;
+    }
+
+    if ((st->st_nlink > 1)
+	     && ((super->u.arch.type == CPIO_NEWC)
+		    || (super->u.arch.type == CPIO_CRC))) {	/* For case of hardlinked files */
+	struct defer_inode i, *l;
+	i.inumber = st->st_ino;
+	i.device = st->st_dev;
+	i.inode = NULL;
+
+	l = cpio_defer_find (super->u.arch.deferred, &i);
+	if (l != NULL) {
+	    inode = l->inode;
+	    if (inode->st.st_size != 0 && st->st_size != 0
+		    && (inode->st.st_size != st->st_size)) {
+		message (D_ERROR, MSG_ERROR,
+			_("Inconsistent hardlinks of\n%s\nin cpio archive\n%s"),
+			name, super->name);
+		inode = NULL;
+	    } else if (inode->st.st_size == 0)
+		inode->st.st_size = st->st_size;
+	}
+    }
+
+    /* remove trailing slashes */
+    for (tn = name + strlen (name) - 1; tn >= name && *tn == PATH_SEP; tn--)
+	*tn = '\0';
+
+    tn = strrchr (name, PATH_SEP);
+    if (tn == NULL)
+	tn = name;
+    else {
+	*tn = '\0';
+	root = vfs_s_find_inode (me, super, name, LINK_FOLLOW, FL_MKDIR);
+	*tn = PATH_SEP;
+	tn++;
+    }
+
+    entry = MEDATA->find_entry (me, root, tn, LINK_FOLLOW, FL_NONE);	/* In case entry is already there */
+
+    if (entry != NULL) {
+	/* This shouldn't happen! (well, it can happen if there is a record for a 
+	   file and than a record for a directory it is in; cpio would die with
+	   'No such file or directory' is such case) */
+
+	if (!S_ISDIR (entry->ino->st.st_mode)) {
+	    /* This can be considered archive inconsistency */
+	    message (D_ERROR, MSG_ERROR,
+		     _("%s contains duplicate entries! Skipping!"),
+		     super->name);
+	} else {
+	    entry->ino->st.st_mode = st->st_mode;
+	    entry->ino->st.st_uid = st->st_uid;
+	    entry->ino->st.st_gid = st->st_gid;
+	    entry->ino->st.st_atime = st->st_atime;
+	    entry->ino->st.st_mtime = st->st_mtime;
+	    entry->ino->st.st_ctime = st->st_ctime;
+	}
+
+	g_free (name);
+    } else {			/* !entry */
+	if (inode == NULL) {
+	    inode = vfs_s_new_inode (me, super, st);
+	    if ((st->st_nlink > 0)
+		     && ((super->u.arch.type == CPIO_NEWC)
+			    || (super->u.arch.type == CPIO_CRC))) {
+		/* For case of hardlinked files */
+		struct defer_inode *i;
+		i = g_new (struct defer_inode, 1);
+		i->inumber = st->st_ino;
+		i->device = st->st_dev;
+		i->inode = inode;
+		i->next = super->u.arch.deferred;
+		super->u.arch.deferred = i;
+	    }
+	}
+
+	if (st->st_size != 0)
+	    inode->data_offset = CPIO_POS (super);
+
+	entry = vfs_s_new_entry (me, tn, inode);
+	vfs_s_insert_entry (me, root, entry);
+
+	g_free (name);
+
+	if (!S_ISLNK (st->st_mode))
+	    CPIO_SEEK_CUR (super, st->st_size);
+	else {
+	    inode->linkname = g_malloc (st->st_size + 1);
+
+	    if (mc_read (super->u.arch.fd, inode->linkname, st->st_size) < st->st_size) {
+		inode->linkname[0] = '\0';
+		return STATUS_EOF;
+	    }
+
+	    inode->linkname[st->st_size] = '\0';	/* Linkname stored without terminating \0 !!! */
+	    CPIO_POS (super) += st->st_size;
+	    cpio_skip_padding (super);
+	}
+    }				/* !entry */
+
+    return STATUS_OK;
+}
+
 #define HEAD_LENGTH (26)
 static ssize_t cpio_read_bin_head(struct vfs_class *me, struct vfs_s_super *super)
 {
@@ -278,7 +411,7 @@ static ssize_t cpio_read_bin_head(struct vfs_class *me, struct vfs_s_super *supe
 	struct old_cpio_header buf;
 	short shorts[HEAD_LENGTH >> 1];
     } u;
-    int len;
+    ssize_t len;
     char *name;
     struct stat st;
 
@@ -333,7 +466,7 @@ static ssize_t cpio_read_oldc_head(struct vfs_class *me, struct vfs_s_super *sup
 	struct stat st;
 	char buf[HEAD_LENGTH + 1];
     } u;
-    int len;
+    ssize_t len;
     char *name;
 
     if (mc_read (super->u.arch.fd, u.buf, HEAD_LENGTH) != HEAD_LENGTH)
@@ -385,25 +518,28 @@ static ssize_t cpio_read_oldc_head(struct vfs_class *me, struct vfs_s_super *sup
 #undef HEAD_LENGTH
 
 #define HEAD_LENGTH (110)
-static ssize_t cpio_read_crc_head(struct vfs_class *me, struct vfs_s_super *super)
+static ssize_t
+cpio_read_crc_head (struct vfs_class *me, struct vfs_s_super *super)
 {
     struct new_cpio_header hd;
     union {
 	struct stat st;
 	char buf[HEAD_LENGTH + 1];
     } u;
-    int len;
+    ssize_t len;
     char *name;
 
     if (mc_read (super->u.arch.fd, u.buf, HEAD_LENGTH) != HEAD_LENGTH)
 	return STATUS_EOF;
+
     CPIO_POS (super) += HEAD_LENGTH;
-    u.buf[HEAD_LENGTH] = 0;
+    u.buf[HEAD_LENGTH] = '\0';
 
     if (sscanf (u.buf, "%6ho%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx",
 	      &hd.c_magic, &hd.c_ino, &hd.c_mode, &hd.c_uid, &hd.c_gid,
 	      &hd.c_nlink,  &hd.c_mtime, &hd.c_filesize,
-	      (unsigned long *)&hd.c_dev, (unsigned long *)&hd.c_devmin, (unsigned long *)&hd.c_rdev, (unsigned long *)&hd.c_rdevmin,
+	      (unsigned long *)&hd.c_dev, (unsigned long *)&hd.c_devmin,
+	      (unsigned long *)&hd.c_rdev, (unsigned long *)&hd.c_rdevmin,
 	      &hd.c_namesize, &hd.c_chksum) < 14) {
 	message (D_ERROR, MSG_ERROR, _("Corrupted cpio header encountered in\n%s"),
 		   super->name);
@@ -421,8 +557,9 @@ static ssize_t cpio_read_crc_head(struct vfs_class *me, struct vfs_s_super *supe
     }
 
     name = g_malloc(hd.c_namesize);
-    if((len = mc_read (super->u.arch.fd, name, hd.c_namesize)) == -1 ||
-       (unsigned long) len < hd.c_namesize) {
+    len = mc_read (super->u.arch.fd, name, hd.c_namesize);
+
+    if ((len == -1) || ((unsigned long) len < hd.c_namesize)) {
 	g_free (name);
 	return STATUS_EOF;
     }
@@ -430,7 +567,7 @@ static ssize_t cpio_read_crc_head(struct vfs_class *me, struct vfs_s_super *supe
     CPIO_POS(super) += len;
     cpio_skip_padding(super);
 
-    if(!strcmp("TRAILER!!!", name)) { /* We got to the last record */
+    if (strcmp ("TRAILER!!!", name) == 0) { /* We got to the last record */
 	g_free(name);
 	return STATUS_TRAIL;
     }
@@ -448,128 +585,6 @@ static ssize_t cpio_read_crc_head(struct vfs_class *me, struct vfs_s_super *supe
     return cpio_create_entry (me, super, &u.st, name);
 }
 
-static int
-cpio_create_entry (struct vfs_class *me, struct vfs_s_super *super,
-		   struct stat *st, char *name)
-{
-    struct vfs_s_inode *inode = NULL;
-    struct vfs_s_inode *root = super->root;
-    struct vfs_s_entry *entry = NULL;
-    char *tn;
-
-    switch (st->st_mode & S_IFMT) {	/* For case of HP/UX archives */
-    case S_IFCHR:
-    case S_IFBLK:
-#ifdef S_IFSOCK
-    case S_IFSOCK:
-#endif
-#ifdef S_IFIFO
-    case S_IFIFO:
-#endif
-#ifdef S_IFNAM
-    case S_IFNAM:
-#endif
-	if ((st->st_size != 0) && (st->st_rdev == 0x0001)) {
-	    /* FIXME: representation of major/minor differs between */
-	    /* different operating systems. */
-	    st->st_rdev = (unsigned) st->st_size;
-	    st->st_size = 0;
-	}
-	break;
-    default:
-	break;
-    }
-
-    if ((st->st_nlink > 1) && (super->u.arch.type == CPIO_NEWC || super->u.arch.type == CPIO_CRC)) {	/* For case of hardlinked files */
-	struct defer_inode i, *l;
-	i.inumber = st->st_ino;
-	i.device = st->st_dev;
-	i.inode = NULL;
-	if ((l = cpio_defer_find (super->u.arch.deferred, &i)) != NULL) {
-	    inode = l->inode;
-	    if (inode->st.st_size && st->st_size
-		&& (inode->st.st_size != st->st_size)) {
-		message (D_ERROR, MSG_ERROR,
-			 _
-			 ("Inconsistent hardlinks of\n%s\nin cpio archive\n%s"),
-			 name, super->name);
-		inode = NULL;
-	    } else if (!inode->st.st_size)
-		inode->st.st_size = st->st_size;
-	}
-    }
-
-    for (tn = name + strlen (name) - 1; tn >= name && *tn == PATH_SEP; tn--)
-	*tn = 0;
-    if ((tn = strrchr (name, PATH_SEP))) {
-	*tn = 0;
-	root = vfs_s_find_inode (me, super, name, LINK_FOLLOW, FL_MKDIR);
-	*tn = PATH_SEP;
-	tn++;
-    } else
-	tn = name;
-
-    entry = MEDATA->find_entry (me, root, tn, LINK_FOLLOW, FL_NONE);	/* In case entry is already there */
-
-    if (entry) {		/* This shouldn't happen! (well, it can happen if there is a record for a 
-				   file and than a record for a directory it is in; cpio would die with
-				   'No such file or directory' is such case) */
-
-	if (!S_ISDIR (entry->ino->st.st_mode)) {	/* This can be considered archive inconsistency */
-	    message (D_ERROR, MSG_ERROR,
-		     _("%s contains duplicate entries! Skipping!"),
-		     super->name);
-	} else {
-	    entry->ino->st.st_mode = st->st_mode;
-	    entry->ino->st.st_uid = st->st_uid;
-	    entry->ino->st.st_gid = st->st_gid;
-	    entry->ino->st.st_atime = st->st_atime;
-	    entry->ino->st.st_mtime = st->st_mtime;
-	    entry->ino->st.st_ctime = st->st_ctime;
-	}
-
-    } else {			/* !entry */
-
-	if (!inode) {
-	    inode = vfs_s_new_inode (me, super, st);
-	    if ((st->st_nlink > 0) && (super->u.arch.type == CPIO_NEWC || super->u.arch.type == CPIO_CRC)) {	/* For case of hardlinked files */
-		struct defer_inode *i;
-		i = g_new (struct defer_inode, 1);
-		i->inumber = st->st_ino;
-		i->device = st->st_dev;
-		i->inode = inode;
-		i->next = super->u.arch.deferred;
-		super->u.arch.deferred = i;
-	    }
-	}
-
-	if (st->st_size)
-	    inode->data_offset = CPIO_POS (super);
-
-	entry = vfs_s_new_entry (me, tn, inode);
-	vfs_s_insert_entry (me, root, entry);
-
-	if (S_ISLNK (st->st_mode)) {
-	    inode->linkname = g_malloc (st->st_size + 1);
-	    if (mc_read (super->u.arch.fd, inode->linkname, st->st_size)
-		< st->st_size) {
-		inode->linkname[0] = 0;
-		g_free (name);
-		return STATUS_EOF;
-	    }
-	    inode->linkname[st->st_size] = 0;	/* Linkname stored without terminating \0 !!! */
-	    CPIO_POS (super) += st->st_size;
-	    cpio_skip_padding (super);
-	} else {
-	    CPIO_SEEK_CUR (super, st->st_size);
-	}
-
-    }				/* !entry */
-
-    g_free (name);
-    return STATUS_OK;
-}
-
 /* Need to CPIO_SEEK_CUR to skip the file at the end of add entry!!!! */
 
 static int
diff --git a/vfs/direntry.c b/vfs/direntry.c
index f7a8bfb..80b0b12 100644
--- a/vfs/direntry.c
+++ b/vfs/direntry.c
@@ -400,12 +400,12 @@ vfs_s_find_inode (struct vfs_class *me, const struct vfs_s_super *super,
 		  const char *path, int follow, int flags)
 {
     struct vfs_s_entry *ent;
-    if (!(MEDATA->flags & VFS_S_REMOTE) && (!*path))
+
+    if (((MEDATA->flags & VFS_S_REMOTE) == 0) && (*path == '\0'))
 	return super->root;
+
     ent = (MEDATA->find_entry) (me, super->root, path, follow, flags);
-    if (!ent)
-	return NULL;
-    return ent->ino;
+    return (ent != NULL) ? ent->ino : NULL;
 }
 
 /* Ook, these were functions around directory entries / inodes */
@@ -488,9 +488,8 @@ vfs_s_get_path_mangle (struct vfs_class *me, char *inname,
 
     for (super = MEDATA->supers; super != NULL; super = super->next) {
 	/* 0 == other, 1 == same, return it, 2 == other but stop scanning */
-	int i;
-	if ((i =
-	     MEDATA->archive_same (me, super, archive_name, op, cookie))) {
+	int i = MEDATA->archive_same (me, super, archive_name, op, cookie);
+	if (i != 0) {
 	    if (i == 1)
 		goto return_success;
 	    else
diff --git a/vfs/vfs.c b/vfs/vfs.c
index 7c1de54..f8eb7a1 100644
--- a/vfs/vfs.c
+++ b/vfs/vfs.c
@@ -1124,7 +1124,8 @@ static char *
 mc_def_getlocalcopy (const char *filename)
 {
     char *tmp;
-    int fdin, fdout, i;
+    int fdin, fdout;
+    ssize_t i;
     char buffer[8192];
     struct stat mystat;
 
commit f84917a188f6f88cdc0d0d0067beefc13d42f40a
Author: Andrew Borodin <aborodin at vmail.ru>
Date:   Thu Nov 19 10:51:21 2009 +0300

    Fixed skip of empty directories in the root of cpio archive.
    
    Signed-off-by: Andrew Borodin <aborodin at vmail.ru>

diff --git a/vfs/cpio.c b/vfs/cpio.c
index 8c24573..0af9cda 100644
--- a/vfs/cpio.c
+++ b/vfs/cpio.c
@@ -331,7 +331,10 @@ cpio_create_entry (struct vfs_class *me, struct vfs_s_super *super,
     tn = strrchr (name, PATH_SEP);
     if (tn == NULL)
 	tn = name;
-    else {
+    else if (tn == name + 1) {
+	/* started with "./" -- directory in the root of archive */
+	tn++;
+    } else {
 	*tn = '\0';
 	root = vfs_s_find_inode (me, super, name, LINK_FOLLOW, FL_MKDIR);
 	*tn = PATH_SEP;
@@ -341,7 +344,7 @@ cpio_create_entry (struct vfs_class *me, struct vfs_s_super *super,
     entry = MEDATA->find_entry (me, root, tn, LINK_FOLLOW, FL_NONE);	/* In case entry is already there */
 
     if (entry != NULL) {
-	/* This shouldn't happen! (well, it can happen if there is a record for a 
+	/* This shouldn't happen! (well, it can happen if there is a record for a
 	   file and than a record for a directory it is in; cpio would die with
 	   'No such file or directory' is such case) */
 


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/mc/F-12/.cvsignore,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -p -r1.40 -r1.41
--- .cvsignore	1 Sep 2009 05:59:44 -0000	1.40
+++ .cvsignore	10 Dec 2009 19:53:30 -0000	1.41
@@ -1 +1 @@
-mc-4.7.0-pre2.tar.bz2
+mc-4.7.0-pre4.tar.bz2

mc-extensions.patch:
 configure.ac   |    2 +-
 misc/mc.ext.in |   54 +++++++++++++++++++++++++++++++++++++-----------------
 2 files changed, 38 insertions(+), 18 deletions(-)

Index: mc-extensions.patch
===================================================================
RCS file: /cvs/pkgs/rpms/mc/F-12/mc-extensions.patch,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- mc-extensions.patch	1 Sep 2009 05:59:44 -0000	1.16
+++ mc-extensions.patch	10 Dec 2009 19:53:30 -0000	1.17
@@ -1,7 +1,7 @@
-diff -up mc-4.7.0-pre1/configure.ac.extensions mc-4.7.0-pre1/configure.ac
---- mc-4.7.0-pre1/configure.ac.extensions	2009-07-31 18:36:24.000000000 +0200
-+++ mc-4.7.0-pre1/configure.ac	2009-08-05 12:51:08.000000000 +0200
-@@ -67,7 +67,7 @@ AC_PROG_LN_S
+diff -up mc-4.7.0-pre4/configure.ac.extensions mc-4.7.0-pre4/configure.ac
+--- mc-4.7.0-pre4/configure.ac.extensions	2009-10-30 19:44:38.000000000 +0100
++++ mc-4.7.0-pre4/configure.ac	2009-12-10 20:41:43.000000000 +0100
+@@ -69,7 +69,7 @@ AC_PROG_LN_S
  AC_CHECK_TOOL(AR, ar, ar)
  
  dnl Only list browsers here that can be run in background (i.e. with `&')
@@ -10,10 +10,10 @@ diff -up mc-4.7.0-pre1/configure.ac.exte
  
  dnl
  dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
-diff -up mc-4.7.0-pre1/misc/mc.ext.in.extensions mc-4.7.0-pre1/misc/mc.ext.in
---- mc-4.7.0-pre1/misc/mc.ext.in.extensions	2009-06-23 20:55:11.000000000 +0200
-+++ mc-4.7.0-pre1/misc/mc.ext.in	2009-08-05 13:01:48.000000000 +0200
-@@ -221,8 +221,8 @@ regex/\.rpm$
+diff -up mc-4.7.0-pre4/misc/mc.ext.in.extensions mc-4.7.0-pre4/misc/mc.ext.in
+--- mc-4.7.0-pre4/misc/mc.ext.in.extensions	2009-10-29 20:02:37.000000000 +0100
++++ mc-4.7.0-pre4/misc/mc.ext.in	2009-12-10 20:46:47.000000000 +0100
+@@ -226,8 +226,8 @@ regex/\.rpm$
  
  # deb
  regex/\.u?deb$
@@ -24,7 +24,26 @@ diff -up mc-4.7.0-pre1/misc/mc.ext.in.ex
  
  # dpkg
  shell/.debd
-@@ -397,11 +397,16 @@ regex/\.([wW][aA][wW]22)$
+@@ -387,7 +387,7 @@ shell/.ico
+ 	Include=image
+ 
+ include/image
+-	Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (gqview %f &); fi
++	Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (eog %f &); fi
+ 	View=%view{ascii} identify %f
+ 	#View=%view{ascii} asciiview %f
+ 
+@@ -395,7 +395,8 @@ include/image
+ ### Sound files ###
+ 
+ regex/\.([wW][aA][vV]|[sS][nN][dD]|[vV][oO][cC]|[aA][uU]|[sS][mM][pP]|[aA][iI][fF][fF]|[sS][nN][dD])$
+-       Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
++	Include=audio
++#       Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
+ 
+ regex/\.([mM][oO][dD]|[sS]3[mM]|[xX][mM]|[iI][tT]|[mM][tT][mM]|669|[sS][tT][mM]|[uU][lL][tT]|[fF][aA][rR])$
+        Open=mikmod %f
+@@ -405,15 +406,22 @@ regex/\.([wW][aA][wW]22)$
         Open=vplay -s 22 %f
  
  regex/\.([mM][pP]3)$
@@ -39,12 +58,19 @@ diff -up mc-4.7.0-pre1/misc/mc.ext.in.ex
  
  regex/\.([oO][gG][gG|aA|vV|xX])$
 -	Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
-+	Open=ogg123 %f
++	Include=audio
++#	Open=ogg123 %f
 +#	Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
  	View=%view{ascii} ogginfo %s
  
  regex/\.([sS][pP][xX]|[fF][lL][aA][cC])$
-@@ -414,11 +419,15 @@ regex/\.([wW][mM][aA])$
+-	Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
++	Include=audio
++#	Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
+ 
+ regex/\.([mM][iI][dD][iI]?|[rR][mM][iI][dD]?)$
+ 	Open=timidity %f
+@@ -422,11 +430,15 @@ regex/\.([wW][mM][aA])$
  	Open=mplayer -vo null %f
  	View=%view{ascii} mplayer -quiet -slave -frames 0 -vo null -ao null -identify %f 2>/dev/null | tail +13 || file %f
  
@@ -61,7 +87,7 @@ diff -up mc-4.7.0-pre1/misc/mc.ext.in.ex
  
  
  ### Video ###
-@@ -432,6 +441,9 @@ regex/\.([aA][sS][fFxX])$
+@@ -440,6 +452,9 @@ regex/\.([aA][sS][fFxX])$
  regex/\.([dD][iI][vV][xX])$
  	Include=video
  
@@ -71,7 +97,31 @@ diff -up mc-4.7.0-pre1/misc/mc.ext.in.ex
  regex/\.([mM][oO][vV]|[qQ][tT])$
  	Include=video
  
-@@ -496,22 +508,27 @@ shell/.abw
+@@ -471,12 +486,12 @@ include/video
+ 
+ # Postscript
+ type/^PostScript
+-	Open=(gv %f &)
++	Open=(xdg-open %f &)
+ 	View=%view{ascii} ps2ascii %f
+ 
+ # PDF
+ type/^PDF
+-	Open=(xpdf %f &)
++	Open=(xdg-open %f &)
+ 	#Open=(acroread %f &)
+ 	#Open=(ghostview %f &)
+ 	View=%view{ascii} pdftotext %f -
+@@ -486,7 +501,7 @@ type/^PDF
+ 
+ # html
+ regex/\.([hH][tT][mM][lL]?)$
+-	Open=(if test -n "@X11_WWW@" && test -n "$DISPLAY"; then (@X11_WWW@ file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
++	Open=(if test -n "$DISPLAY"; then (xdg-open file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
+ 	View=%view{ascii} links -dump %f 2>/dev/null || w3m -dump %f 2>/dev/null || lynx -dump -force_html %f
+ 
+ # StarOffice 5.2
+@@ -504,22 +519,27 @@ shell/.abw
  
  # Microsoft Word Document
  regex/\.([Dd][oO][cCtT]|[Ww][rR][iI])$


Index: mc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/mc/F-12/mc.spec,v
retrieving revision 1.148
retrieving revision 1.149
diff -u -p -r1.148 -r1.149
--- mc.spec	1 Sep 2009 05:59:44 -0000	1.148
+++ mc.spec	10 Dec 2009 19:53:30 -0000	1.149
@@ -1,19 +1,19 @@
 Summary:	User-friendly text console file manager and visual shell
 Name:		mc
 Version:	4.7.0
-Release:	0.4.pre2%{?dist}
+Release:	0.5.pre4%{?dist}
 Epoch:		1
 License:	GPLv2
 Group:		System Environment/Shells
 # tarball created from git clone git://midnight-commander.org/git/mc.git
-Source0:	mc-%{version}-pre2.tar.bz2
+Source0:	mc-%{version}-pre4.tar.bz2
 URL:		http://www.midnight-commander.org/
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires:	glib2-devel e2fsprogs-devel slang-devel
+BuildRequires:	glib2-devel e2fsprogs-devel slang-devel gpm-devel
 Requires:	dev >= 3.3-3
 
-Patch1:		mc-exit.patch
-Patch2:		mc-extensions.patch
+Patch1:		mc-extensions.patch
+Patch2:		mc-rpmvfs.patch
 
 %description
 Midnight Commander is a visual shell much like a file manager, only
@@ -23,9 +23,9 @@ ability to FTP, view tar and zip files, 
 specific files.
 
 %prep
-%setup -q -n mc-%{version}-pre2
-%patch1 -p1 -b .exit
-%patch2 -p1 -b .extensions
+%setup -q -n mc-%{version}-pre4
+%patch1 -p1 -b .extensions
+%patch2 -p1 -b .rpmvfs
 
 %build
 export CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $RPM_OPT_FLAGS"
@@ -70,17 +70,30 @@ rm -rf $RPM_BUILD_ROOT
 %config %{_sysconfdir}/mc/Syntax
 %config %{_sysconfdir}/mc/mc.charsets
 %config %{_sysconfdir}/mc/mc.lib
-%config(noreplace) %{_sysconfdir}/mc/*edit*
 %config(noreplace) %{_sysconfdir}/mc/mc.ext
-%config(noreplace) %{_sysconfdir}/mc/mc.menu
-%config(noreplace) %{_sysconfdir}/mc/extfs/extfs.ini
-%config(noreplace) %{_sysconfdir}/mc/extfs/sfs.ini
+%config(noreplace) %{_sysconfdir}/mc/*edit*
+%config(noreplace) %{_sysconfdir}/mc/mc.keymap*
+%config(noreplace) %{_sysconfdir}/mc/mc.menu*
+%config(noreplace) %{_sysconfdir}/mc/*.ini
+%config(noreplace) %{_sysconfdir}/mc/extfs/*.ini
 %dir %{_datadir}/mc
 %dir %{_sysconfdir}/mc
 %dir %{_sysconfdir}/mc/extfs
 %dir %{_libexecdir}/mc
 
 %changelog
+* Thu Dec 10 2009 Jindrich Novy <jnovy at redhat.com> 4.7.0-0.5.pre4
+- update to pre4:
+  - fixes color parsing (#545805)
+  - editor/viewer issues (#539292)
+  - configuration saving (#537778)
+  - tar VFS fix (#495791)
+  - enhanced file search (#210620)
+  - UTF-8 is added in Display Bits/Select (#196358)
+- update bindings (#532784)
+- show empty directories in RPM VFS (#529645)
+- add gpm-devel to BR (#440580)
+
 * Tue Sep  1 2009 Jindrich Novy <jnovy at redhat.com> 4.7.0-0.4.pre2
 - update to 4.7.0-pre2
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/mc/F-12/sources,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -p -r1.48 -r1.49
--- sources	1 Sep 2009 05:59:45 -0000	1.48
+++ sources	10 Dec 2009 19:53:30 -0000	1.49
@@ -1 +1 @@
-347d0144709ed342302787e314146eef  mc-4.7.0-pre2.tar.bz2
+7bdc0ac4fe57c19a6bf2fd3e8894a073  mc-4.7.0-pre4.tar.bz2




More information about the fedora-extras-commits mailing list