rpms/mc/FC-6 mc-cloexec.patch, NONE, 1.1 mc-extensions.patch, 1.8, 1.9 mc-showfree.patch, 1.10, 1.11 mc-utf8.patch, 1.23, 1.24 mc.spec, 1.107, 1.108

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Apr 16 13:43:01 UTC 2007


Author: jnovy

Update of /cvs/dist/rpms/mc/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv24077

Modified Files:
	mc-extensions.patch mc-showfree.patch mc-utf8.patch mc.spec 
Added Files:
	mc-cloexec.patch 
Log Message:
- update to the CVS snapshot as of 24th Jan 2007 (fixes #220828)
- reenable gpm support as it is now fixed (#168076)
- display free space correctly for multiple filesystems (#225153)
  (thanks to Tomas Heinrich for patch)
- fix unowned directories (#233880)
- spec fixes, bindings fixes


mc-cloexec.patch:
 subshell.c |    2 ++
 1 files changed, 2 insertions(+)

--- NEW FILE mc-cloexec.patch ---
--- mc-2006-11-14-16/src/subshell.c.desleak	2006-05-08 22:59:48.000000000 +0200
+++ mc-2006-11-14-16/src/subshell.c	2006-11-23 09:50:30.000000000 +0100
@@ -1150,6 +1152,7 @@
 #endif				/* I_FIND && I_PUSH */
 #endif				/* __osf__ || __linux__ */
 
+    fcntl(pty_slave, F_SETFD, FD_CLOEXEC);
     return pty_slave;
 }
 
@@ -1203,6 +1207,7 @@
     }
     if ((pty_slave = open (pty_name, O_RDWR)) == -1)
 	fprintf (stderr, "open (pty_name, O_RDWR): %s\r\n", pty_name);
+    fcntl(pty_slave, F_SETFD, FD_CLOEXEC);
     return pty_slave;
 }
 

mc-extensions.patch:
 configure     |    2 -
 configure.ac  |    2 -
 lib/mc.ext.in |   82 +++++++++++++++++++++++++++++++++++++++++++---------------
 3 files changed, 64 insertions(+), 22 deletions(-)

Index: mc-extensions.patch
===================================================================
RCS file: /cvs/dist/rpms/mc/FC-6/mc-extensions.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- mc-extensions.patch	8 Mar 2006 11:13:51 -0000	1.8
+++ mc-extensions.patch	16 Apr 2007 13:42:59 -0000	1.9
@@ -1,6 +1,6 @@
---- mc-4.6.1a/configure.ac.extensions	2005-11-11 03:03:55.000000000 +0100
-+++ mc-4.6.1a/configure.ac	2006-02-28 11:54:30.000000000 +0100
-@@ -83,7 +83,7 @@ AC_PROG_LN_S
+--- mc/configure.ac.extensions	2006-12-28 06:34:31.000000000 +0100
++++ mc/configure.ac	2007-01-04 15:42:15.000000000 +0100
+@@ -83,7 +83,7 @@
  AC_CHECK_TOOL(AR, ar, ar)
  
  dnl Only list browsers here that can be run in background (i.e. with `&')
@@ -9,9 +9,9 @@
  
  dnl
  dnl Ovverriding mmap support.  This has to be before AC_FUNC_MMAP is used.
---- mc-4.6.1a/configure.extensions	2006-02-15 21:12:35.000000000 +0100
-+++ mc-4.6.1a/configure	2006-02-28 12:03:54.000000000 +0100
-@@ -5791,7 +5791,7 @@ else
+--- mc/configure.extensions	2006-12-28 06:34:48.000000000 +0100
++++ mc/configure	2007-01-04 15:42:15.000000000 +0100
+@@ -7166,7 +7166,7 @@
  fi
  
  
@@ -20,9 +20,9 @@
  do
    # Extract the first word of "$ac_prog", so it can be a program name with args.
  set dummy $ac_prog; ac_word=$2
---- mc-4.6.1a/lib/mc.ext.in.extensions	2005-09-06 11:20:01.000000000 +0200
-+++ mc-4.6.1a/lib/mc.ext.in	2005-12-06 09:22:37.000000000 +0100
-@@ -216,14 +221,25 @@ shell/.7z
+--- mc/lib/mc.ext.in.extensions	2006-12-28 04:45:29.000000000 +0100
++++ mc/lib/mc.ext.in	2007-01-04 15:53:33.000000000 +0100
+@@ -220,14 +220,25 @@
  
  # C
  shell/.c
@@ -50,19 +50,22 @@
  	Open=%var{EDITOR:vi} %f
  
  # Object
-@@ -248,9 +264,11 @@ regex/\.(te?xi|texinfo)$
+@@ -251,10 +262,12 @@
+ 
  # GNU Info page
  type/^Info\ text
- 	Open=info -f %f
-+	#Open=pinfo %f
+-	Open=info -f %f
++	#Open=info -f %f
++	Open=pinfo %f
  
  shell/.info
- 	Open=info -f %f
-+	#Open=pinfo %f
+-	Open=info -f %f
++	#Open=info -f %f
++	Open=pinfo %f
  
  # Manual page
  # Exception - .so libraries are not manual pages
-@@ -319,6 +337,12 @@ type/^PPM
+@@ -328,18 +341,24 @@
  type/^Netpbm
  	Include=image
  
@@ -73,9 +76,14 @@
 +	Include=image
 +
  shell/.xcf
- 	Open=gimp %f
+ 	Open=(gimp %f &)
+ 
+ shell/.xbm
+-	Open=bitmap %f
++	Include=image
  
-@@ -330,7 +354,7 @@ shell/.xpm
+ shell/.xpm
+ 	Include=image
  	View=sxpm %f
  
  include/image
@@ -84,22 +92,37 @@
  	View=%view{ascii} identify %f
  	#View=%view{ascii} asciiview %f
  
-@@ -348,8 +372,12 @@ regex/\.([wW][aA][wW]22)$
+@@ -347,7 +366,8 @@
+ ### 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
++	Open=play %f
++#       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
+@@ -357,11 +377,16 @@
         Open=vplay -s 22 %f
  
  regex/\.([mM][pP]3)$
--	Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f &); fi
+-	Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
 -	View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
 +	Include=audio
-+	#Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f &); fi
-+	#View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
++#	Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
++#	View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
 +
 +regex/\.([mM][kK][aA])$
 +	Include=audio
  
  regex/\.([oO][gG][gG])$
- 	Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f &); fi
-@@ -362,6 +390,9 @@ regex/\.([wW][mM][aA])$
+-	Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
++	Open=ogg123 %f
++#	Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
+ 	View=%view{ascii} ogginfo %s
+ 
+ regex/\.([mM][iI][dD][iI]?|[rR][mM][iI][dD]?)$
+@@ -371,11 +396,15 @@
  	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
  
@@ -109,7 +132,14 @@
  
  ### Play lists ###
  
-@@ -386,20 +417,27 @@ regex/\.([mM][oO][vV]|[qQ][tT])$
+ regex/\.([mM]3[uU]|[pP][lL][sS])$
+-	Open=if [ -z "$DISPLAY" ]; then mplayer -vo null -playlist %f; else (xmms -p %f >/dev/null 2>&1 &); fi
++	Open=mplayer -vo null -playlist %f
++#	Open=if [ -z "$DISPLAY" ]; then mplayer -vo null -playlist %f; else (xmms -p %f >/dev/null 2>&1 &); fi
+ 
+ 
+ ### Video ###
+@@ -395,20 +424,27 @@
  regex/\.([mM][pP]4|[mM][pP][eE]?[gG])$
  	Include=video
  
@@ -138,7 +168,7 @@
  	#Open=(gtv %f >/dev/null 2>&1 &)
  	#Open=(xanim %f >/dev/null 2>&1 &)
  
-@@ -408,12 +446,13 @@ include/video
+@@ -417,12 +453,13 @@
  
  # Postscript
  type/^PostScript
@@ -154,7 +184,7 @@
  	#Open=(acroread %f &)
  	#Open=(ghostview %f &)
  	View=%view{ascii} pdftotext %f -
-@@ -424,7 +463,7 @@ type/^PDF
+@@ -433,7 +470,7 @@
  # 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
@@ -163,3 +193,36 @@
  
  # StarOffice 5.2
  shell/.sdw
+@@ -450,22 +487,27 @@
+ 
+ # Microsoft Word Document
+ regex/\.([Dd][oO][cCtT]|[Ww][rR][iI])$
+-	Open=(abiword %f >/dev/null 2>&1 &)
++	Open=(ooffice %f &)
++#	Open=(abiword %f >/dev/null 2>&1 &)
+ 	View=%view{ascii} catdoc -w %f || word2x -f text %f - || strings %f
+ type/^Microsoft\ Word
+-	Open=(abiword %f >/dev/null 2>&1 &)
++	Open=(ooffice %f &)
++#	Open=(abiword %f >/dev/null 2>&1 &)
+ 	View=%view{ascii} catdoc -w %f || word2x -f text %f - || strings %f
+ 
+ # RTF document
+ regex/\.([rR][tT][fF])$
+-	Open=(abiword %f >/dev/null 2>&1 &)
++	Open=(ooffice %f &)
++#	Open=(abiword %f >/dev/null 2>&1 &)
+ 
+ # Microsoft Excel Worksheet
+ regex/\.([xX][lL][sSwW])$
+-	Open=(gnumeric %f >/dev/null 2>&1 &)
++	Open=(ooffice %f &)
++#	Open=(gnumeric %f >/dev/null 2>&1 &)
+ 	View=%view{ascii} xls2csv %f || strings %f
+ type/^Microsoft\ Excel
+-	Open=(gnumeric %f >/dev/null 2>&1 &)
++	Open=(ooffice %f &)
++#	Open=(gnumeric %f >/dev/null 2>&1 &)
+ 	View=%view{ascii} xls2csv %f || strings %f
+ 
+ # Use OpenOffice.org to open any MS Office documents

mc-showfree.patch:
 layout.c |   59 +++++++++++++++++++++++++++++++++--------------------------
 layout.h |    1 +
 main.c   |   41 +++++++++++++++++++++++++++++++++++++++++
 main.h   |    2 ++
 screen.c |    5 ++++-
 setup.c  |    1 +
 6 files changed, 82 insertions(+), 27 deletions(-)

Index: mc-showfree.patch
===================================================================
RCS file: /cvs/dist/rpms/mc/FC-6/mc-showfree.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- mc-showfree.patch	10 Jul 2006 12:25:08 -0000	1.10
+++ mc-showfree.patch	16 Apr 2007 13:42:59 -0000	1.11
@@ -1,5 +1,5 @@
---- mc-4.6.1a/src/setup.c.showfree	2006-02-23 16:32:18.000000000 +0100
-+++ mc-4.6.1a/src/setup.c	2006-07-10 12:44:43.000000000 +0200
+--- mc-2007-01-24-03/src/setup.c.showfree	2006-02-23 16:45:06.000000000 +0100
++++ mc-2007-01-24-03/src/setup.c	2007-02-15 09:53:48.000000000 +0100
 @@ -134,6 +134,7 @@
      { "show_mini_info", &show_mini_info },
      { "permission_mode", &permission_mode },
@@ -8,8 +8,8 @@
      { 0, 0 }
  };
  
---- mc-4.6.1a/src/main.c.showfree	2006-07-10 12:44:43.000000000 +0200
-+++ mc-4.6.1a/src/main.c	2006-07-10 14:09:24.000000000 +0200
+--- mc-2007-01-24-03/src/main.c.showfree	2007-02-15 09:53:48.000000000 +0100
++++ mc-2007-01-24-03/src/main.c	2007-02-15 09:53:48.000000000 +0100
 @@ -61,6 +61,7 @@
  #include "listmode.h"
  #include "execute.h"
@@ -40,7 +40,7 @@
      update_one_panel (get_current_index (), force_update, current_file);
      if (reload_other)
  	update_one_panel (get_other_index (), force_update, UP_KEEPSEL);
-@@ -467,6 +476,48 @@
+@@ -467,6 +476,38 @@
      }
  }
  
@@ -52,25 +52,15 @@
 +	return;
 +   
 +    if (old_cwd == NULL || strcmp(old_cwd, panel->cwd) != 0) {
-+    	struct stat st;
++	char rpath[PATH_MAX];
 +    
 +	init_my_statfs();
 +	g_free(old_cwd);
 +	old_cwd = g_strdup(panel->cwd);
 +	
-+	if ( mc_lstat (panel->cwd, &st) )
-+	    return;
-+
-+	if ( !S_ISLNK (st.st_mode) ) {
-+	    my_statfs (&myfs_stats, panel->cwd);
-+	} else
-+	{
-+	    char buf[MC_MAXPATHLEN];
-+	    memset (buf, 0, sizeof(buf));
-+	    if ( mc_readlink (panel->cwd, buf, sizeof(buf)-1) <= 0 )
-+	    	return;
-+	    my_statfs (&myfs_stats, buf);
-+	}
++	if (mc_realpath (panel->cwd, rpath) == NULL)
++            return;
++	my_statfs (&myfs_stats, rpath);
 +    }
 +   
 +    if (myfs_stats.avail > 0 || myfs_stats.total > 0) {
@@ -89,8 +79,8 @@
  static int
  quit_cmd_internal (int quiet)
  {
---- mc-4.6.1a/src/main.h.showfree	2006-07-10 12:44:43.000000000 +0200
-+++ mc-4.6.1a/src/main.h	2006-07-10 12:44:43.000000000 +0200
+--- mc-2007-01-24-03/src/main.h.showfree	2007-02-15 09:53:48.000000000 +0100
++++ mc-2007-01-24-03/src/main.h	2007-02-15 09:53:48.000000000 +0100
 @@ -55,6 +55,7 @@
  extern int show_all_if_ambiguous;
  extern int slow_terminal;
@@ -107,8 +97,8 @@
  
  void touch_bar      (void);
  void update_xterm_title_path (void);
---- mc-4.6.1a/src/screen.c.showfree	2006-07-10 12:44:43.000000000 +0200
-+++ mc-4.6.1a/src/screen.c	2006-07-10 12:44:43.000000000 +0200
+--- mc-2007-01-24-03/src/screen.c.showfree	2007-02-15 09:53:48.000000000 +0100
++++ mc-2007-01-24-03/src/screen.c	2007-02-15 09:53:48.000000000 +0100
 @@ -47,7 +47,7 @@
  #include "widget.h"
  #include "menu.h"		/* menubar_visible */
@@ -126,7 +116,7 @@
  }
  
  static void
-@@ -929,6 +930,8 @@
+@@ -910,6 +911,8 @@
      widget_move (&panel->widget, 0, panel->widget.cols - 3);
      addstr ("v");
  
@@ -135,9 +125,9 @@
      if (panel->active)
  	standend ();
  }
---- mc-4.6.1a/src/layout.c.showfree	2006-07-10 12:44:43.000000000 +0200
-+++ mc-4.6.1a/src/layout.c	2006-07-10 12:44:43.000000000 +0200
-@@ -99,6 +99,9 @@
+--- mc-2007-01-24-03/src/layout.c.showfree	2007-02-15 09:53:47.000000000 +0100
++++ mc-2007-01-24-03/src/layout.c	2007-02-15 09:53:48.000000000 +0100
+@@ -96,6 +96,9 @@
  /* Set to show current working dir in xterm window title */
  int xterm_title = 1;
  
@@ -147,7 +137,7 @@
  /* The starting line for the output of the subprogram */
  int output_start_y = 0;
  
-@@ -128,6 +131,7 @@
+@@ -125,6 +128,7 @@
  static int _keybar_visible;
  static int _message_visible;
  static int _xterm_title;
@@ -155,7 +145,7 @@
  static int _permission_mode;
  static int _filetype_mode;
  
-@@ -158,6 +162,7 @@
+@@ -155,6 +159,7 @@
      int    *variable;
      WCheck *widget;
  } check_options [] = {
@@ -163,7 +153,7 @@
      { N_("&Xterm window title"), &xterm_title,   0 },
      { N_("h&Intbar visible"),  &message_visible, 0 },
      { N_("&Keybar visible"),   &keybar_visible,  0 },
-@@ -229,8 +234,8 @@
+@@ -226,8 +231,8 @@
      if (_equal_split){
  	/* Turn equal split off */
  	_equal_split = 0;
@@ -174,7 +164,7 @@
  	dlg_select_widget (bleft_widget);
      }
      _first_panel_size++;
-@@ -244,8 +249,8 @@
+@@ -241,8 +246,8 @@
      if (_equal_split){
  	/* Turn equal split off */
  	_equal_split = 0;
@@ -185,7 +175,7 @@
  	dlg_select_widget (bright_widget);
      }
      _first_panel_size--;
-@@ -291,23 +296,24 @@
+@@ -288,23 +293,24 @@
  	    if (old_output_lines != _output_lines){
  		old_output_lines = _output_lines;
  		attrset (COLOR_NORMAL);
@@ -220,7 +210,7 @@
  	if (console_flag){
  	    int minimum;
  	    if (_output_lines < 0)
-@@ -335,7 +341,7 @@
+@@ -332,7 +338,7 @@
  	    if (old_output_lines != _output_lines){
  		old_output_lines = _output_lines;
  		attrset (COLOR_NORMAL);
@@ -229,7 +219,7 @@
  		tty_printf ("%02d", _output_lines);
  	    }
  	}
-@@ -374,7 +380,7 @@
+@@ -371,7 +377,7 @@
  		first_width = l1;
  	}
  
@@ -238,7 +228,7 @@
  	    check_options[i].text = _(check_options[i].text);
  	    l1 = mbstrlen (check_options[i].text) + 7;
  	    if (l1 > first_width)
-@@ -391,7 +397,7 @@
+@@ -388,7 +394,7 @@
  
  
  	second_width = mbstrlen (title3) + 1;
@@ -247,7 +237,7 @@
  	    check_options[i].text = _(check_options[i].text);
  	    l1 = mbstrlen (check_options[i].text) + 7;
  	    if (l1 > second_width)
-@@ -446,23 +452,23 @@
+@@ -443,23 +449,23 @@
  			    0));
      if (console_flag) {
  	add_widget (layout_dlg,
@@ -278,7 +268,7 @@
  
      _filetype_mode = filetype_mode;
      _permission_mode = permission_mode;
-@@ -472,20 +478,21 @@
+@@ -469,20 +475,21 @@
      _keybar_visible = keybar_visible;
      _message_visible = message_visible;
      _xterm_title = xterm_title;
@@ -302,8 +292,8 @@
      radio_widget = radio_new (3, 6, 2, s_split_direction);
      add_widget (layout_dlg, radio_widget);
      radio_widget->sel = horizontal_split;
---- mc-4.6.1a/src/layout.h.showfree	2004-12-03 20:17:47.000000000 +0100
-+++ mc-4.6.1a/src/layout.h	2006-07-10 12:44:43.000000000 +0200
+--- mc-2007-01-24-03/src/layout.h.showfree	2004-12-03 20:17:47.000000000 +0100
++++ mc-2007-01-24-03/src/layout.h	2007-02-15 09:53:48.000000000 +0100
 @@ -39,6 +39,7 @@
  extern int output_start_y;
  extern int message_visible;

mc-utf8.patch:
 acinclude.m4       |   16 -
 edit/edit-widget.h |   16 +
 edit/edit.c        |  266 +++++++++++++++++++-------
 edit/edit.h        |   39 +++
 edit/editcmd.c     |  523 +++++++++++++++++++++++++++++++++++++++++++++--------
 edit/editdraw.c    |  111 +++++++----
 edit/editkeys.c    |   29 ++
 edit/editwidget.c  |    3 
 edit/wordproc.c    |   79 ++++++--
 src/achown.c       |    6 
 src/boxes.c        |   50 ++---
 src/dialog.c       |    2 
 src/file.c         |   13 +
 src/filegui.c      |   47 ++--
 src/find.c         |   12 -
 src/help.c         |   24 ++
 src/hotlist.c      |   14 -
 src/layout.c       |   26 +-
 src/learn.c        |    2 
 src/main.c         |    6 
 src/menu.c         |  122 +++++++++++-
 src/menu.h         |    2 
 src/myslang.h      |   10 +
 src/option.c       |   20 +-
 src/panelize.c     |    8 
 src/screen.c       |  300 +++++++++++++++++++++++-------
 src/slint.c        |    4 
 src/tty.c          |   10 -
 src/tty.h          |    2 
 src/util.c         |  349 ++++++++++++++++++++++++++++++++---
 src/util.h         |    7 
 src/view.c         |   50 ++++-
 src/widget.c       |  371 ++++++++++++++++++++++++++++++-------
 src/widget.h       |   16 +
 src/wtools.c       |   14 -
 35 files changed, 2068 insertions(+), 501 deletions(-)

Index: mc-utf8.patch
===================================================================
RCS file: /cvs/dist/rpms/mc/FC-6/mc-utf8.patch,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- mc-utf8.patch	10 Oct 2006 11:43:56 -0000	1.23
+++ mc-utf8.patch	16 Apr 2007 13:42:59 -0000	1.24
@@ -1,5 +1,5 @@
---- mc-2006-09-25-14/acinclude.m4.utf8	2006-09-09 00:35:29.000000000 +0200
-+++ mc-2006-09-25-14/acinclude.m4	2006-10-10 09:35:14.000000000 +0200
+--- mc/acinclude.m4.utf8	2006-09-09 00:35:29.000000000 +0200
++++ mc/acinclude.m4	2007-01-04 16:20:56.000000000 +0100
 @@ -399,14 +399,14 @@ AC_DEFUN([MC_WITH_SLANG], [
      fi
  
@@ -23,8 +23,8 @@
  
      if test x$with_screen = xslang; then
  	AC_DEFINE(HAVE_SYSTEM_SLANG, 1,
---- mc-2006-09-25-14/src/layout.c.utf8	2006-09-25 16:47:33.000000000 +0200
-+++ mc-2006-09-25-14/src/layout.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/layout.c.utf8	2006-11-10 01:22:30.000000000 +0100
++++ mc/src/layout.c	2007-01-04 16:20:56.000000000 +0100
 @@ -366,36 +366,36 @@ init_layout (void)
  
  	while (i--) {
@@ -98,8 +98,8 @@
  
      widget_set_size (&the_menubar->widget, 0, 0, 1, COLS);
  
---- mc-2006-09-25-14/src/tty.c.utf8	2006-05-23 16:20:39.000000000 +0200
-+++ mc-2006-09-25-14/src/tty.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/tty.c.utf8	2006-05-23 16:20:39.000000000 +0200
++++ mc/src/tty.c	2007-01-04 16:20:56.000000000 +0100
 @@ -134,10 +134,12 @@ tty_print_char(int c)
       * defined or not. Congratulations! At least, they left the API call
       * for SLsmg_write_nchars as it has always been.
@@ -117,8 +117,8 @@
  #else
      addch(c);
  #endif
---- mc-2006-09-25-14/src/option.c.utf8	2006-02-28 18:44:28.000000000 +0100
-+++ mc-2006-09-25-14/src/option.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/option.c.utf8	2006-02-28 18:44:28.000000000 +0100
++++ mc/src/option.c	2007-01-04 16:20:56.000000000 +0100
 @@ -123,12 +123,12 @@ init_configure (void)
  	title2 = _(" Pause after run... ");
  	title3 = _(" Other options ");
@@ -166,8 +166,8 @@
  
  	i18n_config_flag = 1;
      }
---- mc-2006-09-25-14/src/menu.h.utf8	2004-12-03 20:17:47.000000000 +0100
-+++ mc-2006-09-25-14/src/menu.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/menu.h.utf8	2004-12-03 20:17:47.000000000 +0100
++++ mc/src/menu.h	2007-01-04 16:20:56.000000000 +0100
 @@ -21,6 +21,8 @@ typedef struct Menu {
      menu_entry *entries;
      int    start_x;		/* position relative to menubar start */
@@ -177,8 +177,8 @@
  } Menu;
  
  extern int menubar_visible;
---- mc-2006-09-25-14/src/menu.c.utf8	2005-09-06 22:36:23.000000000 +0200
-+++ mc-2006-09-25-14/src/menu.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/menu.c.utf8	2005-09-06 22:36:23.000000000 +0200
++++ mc/src/menu.c	2007-01-04 16:20:56.000000000 +0100
 @@ -22,6 +22,7 @@
  #include <string.h>
  
@@ -380,8 +380,8 @@
      g_free (menu->name);
      g_free (menu->help_node);
      g_free (menu);
---- mc-2006-09-25-14/src/filegui.c.utf8	2006-01-30 18:01:58.000000000 +0100
-+++ mc-2006-09-25-14/src/filegui.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/filegui.c.utf8	2006-01-30 18:01:58.000000000 +0100
++++ mc/src/filegui.c	2007-01-04 16:20:56.000000000 +0100
 @@ -65,6 +65,7 @@
  #include "filegui.h"
  #include "key.h"		/* get_event */
@@ -527,8 +527,8 @@
 +    g_free(def_text);
      return dest_dir;
  }
---- mc-2006-09-25-14/src/panelize.c.utf8	2005-05-27 05:35:15.000000000 +0200
-+++ mc-2006-09-25-14/src/panelize.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/panelize.c.utf8	2005-05-27 05:35:15.000000000 +0200
++++ mc/src/panelize.c	2007-01-04 16:20:56.000000000 +0100
 @@ -127,7 +127,7 @@ init_panelize (void)
  	i = sizeof (panelize_but) / sizeof (panelize_but[0]);
  	while (i--) {
@@ -553,8 +553,8 @@
  
  #endif				/* ENABLE_NLS */
  
---- mc-2006-09-25-14/src/slint.c.utf8	2005-09-06 22:36:23.000000000 +0200
-+++ mc-2006-09-25-14/src/slint.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/slint.c.utf8	2005-09-06 22:36:23.000000000 +0200
++++ mc/src/slint.c	2007-01-04 16:20:56.000000000 +0100
 @@ -141,7 +141,9 @@ void
  slang_init (void)
  {
@@ -566,8 +566,8 @@
     /*
      * If the terminal in not in terminfo but begins with a well-known
      * string such as "linux" or "xterm" S-Lang will go on, but the
---- mc-2006-09-25-14/src/main.c.utf8	2006-09-25 16:47:34.000000000 +0200
-+++ mc-2006-09-25-14/src/main.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/main.c.utf8	2006-09-25 16:47:34.000000000 +0200
++++ mc/src/main.c	2007-01-04 16:20:56.000000000 +0100
 @@ -704,7 +704,7 @@ load_prompt (int fd, void *unused)
  	int prompt_len;
  
@@ -589,8 +589,8 @@
  		*s = '?';
  	} while (*++s);
  	fprintf (stdout, "\33]0;mc - %s\7", p);
---- mc-2006-09-25-14/src/view.c.utf8	2006-08-03 17:50:57.000000000 +0200
-+++ mc-2006-09-25-14/src/view.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/view.c.utf8	2006-12-12 18:39:33.000000000 +0100
++++ mc/src/view.c	2007-01-04 16:20:56.000000000 +0100
 @@ -43,6 +43,10 @@
  #include <sys/stat.h>
  #include <unistd.h>
@@ -681,8 +681,8 @@
  	}
  	col++;
  	tty_setcolor (NORMAL_COLOR);
---- mc-2006-09-25-14/src/screen.c.utf8	2006-02-09 02:59:16.000000000 +0100
-+++ mc-2006-09-25-14/src/screen.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/screen.c.utf8	2006-02-09 02:59:16.000000000 +0100
++++ mc/src/screen.c	2007-01-04 16:20:56.000000000 +0100
 @@ -171,21 +171,56 @@ add_permission_string (char *dest, int w
  static const char *
  string_file_name (file_entry *fe, int len)
@@ -1110,8 +1110,8 @@
  
      paint_panel (panel);
  }
---- mc-2006-09-25-14/src/widget.h.utf8	2006-02-28 18:44:28.000000000 +0100
-+++ mc-2006-09-25-14/src/widget.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/widget.h.utf8	2006-02-28 18:44:28.000000000 +0100
++++ mc/src/widget.h	2007-01-04 16:20:56.000000000 +0100
 @@ -22,6 +22,7 @@ typedef struct WButton {
      char *text;			/* text of button */
      int hotkey;			/* hot KEY */
@@ -1154,8 +1154,8 @@
      GList *history;		/* The history */
      int  need_push;		/* need to push the current Input on hist? */
      char **completions;		/* Possible completions array */
---- mc-2006-09-25-14/src/tty.h.utf8	2006-05-15 17:46:20.000000000 +0200
-+++ mc-2006-09-25-14/src/tty.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/tty.h.utf8	2006-05-15 17:46:20.000000000 +0200
++++ mc/src/tty.h	2007-01-04 16:20:56.000000000 +0100
 @@ -8,6 +8,8 @@
      of ifdefs in the other files small.
   */
@@ -1165,8 +1165,8 @@
  #ifdef HAVE_SLANG
  #   include "myslang.h"
  #endif
---- mc-2006-09-25-14/src/hotlist.c.utf8	2006-08-08 19:55:46.000000000 +0200
-+++ mc-2006-09-25-14/src/hotlist.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/hotlist.c.utf8	2006-08-08 19:55:46.000000000 +0200
++++ mc/src/hotlist.c	2007-01-04 16:20:56.000000000 +0100
 @@ -563,7 +563,7 @@ init_i18n_stuff(int list_type, int cols)
  
  			row = hotlist_but [i].y;
@@ -1227,8 +1227,8 @@
      char *label_string = g_strdup (current_panel->cwd);
  
      strip_password (label_string, 1);
---- mc-2006-09-25-14/src/help.c.utf8	2005-07-22 11:29:50.000000000 +0200
-+++ mc-2006-09-25-14/src/help.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/help.c.utf8	2005-07-22 11:29:50.000000000 +0200
++++ mc/src/help.c	2007-01-04 16:20:56.000000000 +0100
 @@ -449,10 +449,28 @@ static void help_show (Dlg_head *h, cons
  #ifndef HAVE_SLANG
  			addch (acs_map [c]);
@@ -1271,8 +1271,8 @@
  
      if (!filename)
  	g_free (hlpfile);
---- mc-2006-09-25-14/src/wtools.c.utf8	2006-09-14 16:16:10.000000000 +0200
-+++ mc-2006-09-25-14/src/wtools.c	2006-10-10 09:36:13.000000000 +0200
+--- mc/src/wtools.c.utf8	2006-09-14 16:16:10.000000000 +0200
++++ mc/src/wtools.c	2007-01-04 16:20:56.000000000 +0100
 @@ -49,11 +49,11 @@ create_listbox_window (int cols, int lin
      /* Adjust sizes */
      lines = (lines > LINES - 6) ? LINES - 6 : lines;
@@ -1332,8 +1332,8 @@
      quick_widgets[0].x_divisions = quick_widgets[1].x_divisions = len;
  #endif				/* ENABLE_NLS */
  
---- mc-2006-09-25-14/src/util.h.utf8	2006-02-06 17:55:43.000000000 +0100
-+++ mc-2006-09-25-14/src/util.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/util.h.utf8	2006-02-06 17:55:43.000000000 +0100
++++ mc/src/util.h	2007-01-04 16:20:56.000000000 +0100
 @@ -103,6 +103,13 @@ void init_uid_gid_cache (void);
  char *get_group (int);
  char *get_owner (int);
@@ -1348,8 +1348,8 @@
  #define MAX_I18NTIMELENGTH 14
  #define MIN_I18NTIMELENGTH 10
  #define STD_I18NTIMELENGTH 12
---- mc-2006-09-25-14/src/widget.c.utf8	2006-05-30 15:46:15.000000000 +0200
-+++ mc-2006-09-25-14/src/widget.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/widget.c.utf8	2006-05-30 15:46:15.000000000 +0200
++++ mc/src/widget.c	2007-01-04 16:20:56.000000000 +0100
 @@ -36,6 +36,9 @@
  
  #include "global.h"
@@ -2065,8 +2065,8 @@
      return in;
  }
  
---- mc-2006-09-25-14/src/util.c.utf8	2005-11-03 03:01:12.000000000 +0100
-+++ mc-2006-09-25-14/src/util.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/util.c.utf8	2005-11-03 03:01:12.000000000 +0100
++++ mc/src/util.c	2007-01-04 16:20:56.000000000 +0100
 @@ -33,7 +33,11 @@
  #include <sys/types.h>
  #include <sys/stat.h>
@@ -2536,8 +2536,8 @@
      }
      *w = 0;
      return s;
---- mc-2006-09-25-14/src/file.c.utf8	2006-05-23 16:20:39.000000000 +0200
-+++ mc-2006-09-25-14/src/file.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/file.c.utf8	2006-05-23 16:20:39.000000000 +0200
++++ mc/src/file.c	2007-01-04 16:20:56.000000000 +0100
 @@ -161,15 +161,20 @@ static const char *
  do_transform_source (FileOpContext *ctx, const char *source)
  {
@@ -2592,8 +2592,8 @@
  	if (i > 0) {
  	    fmd_xlen += i;
  	    fmd_init_i18n (TRUE);	/* to recalculate positions of child widgets */
---- mc-2006-09-25-14/src/find.c.utf8	2006-02-06 17:55:43.000000000 +0100
-+++ mc-2006-09-25-14/src/find.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/find.c.utf8	2006-02-06 17:55:43.000000000 +0100
++++ mc/src/find.c	2007-01-04 16:20:56.000000000 +0100
 @@ -217,7 +217,7 @@ find_parameters (char **start_dir, char 
  	int l1, maxlen = 0;
  
@@ -2641,8 +2641,8 @@
  	    list->list[next_free].fname = name;
  	    list->list[next_free].f.marked = 0;
  	    list->list[next_free].f.link_to_dir = link_to_dir;
---- mc-2006-09-25-14/src/myslang.h.utf8	2005-09-06 22:36:23.000000000 +0200
-+++ mc-2006-09-25-14/src/myslang.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/myslang.h.utf8	2005-09-06 22:36:23.000000000 +0200
++++ mc/src/myslang.h	2007-01-04 16:20:56.000000000 +0100
 @@ -11,6 +11,16 @@
  #endif	/* HAVE_SLANG_SLANG_H */
  #endif
@@ -2660,8 +2660,8 @@
  enum {
      KEY_BACKSPACE = 400,
      KEY_END, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT,
---- mc-2006-09-25-14/src/achown.c.utf8	2005-09-06 22:36:23.000000000 +0200
-+++ mc-2006-09-25-14/src/achown.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/achown.c.utf8	2005-09-06 22:36:23.000000000 +0200
++++ mc/src/achown.c	2007-01-04 16:20:56.000000000 +0100
 @@ -584,6 +584,12 @@ init_chown_advanced (void)
      b_att[2] = button_new (XTRACT (6));
      b_user = button_new (XTRACT (5));
@@ -2675,8 +2675,8 @@
  
      add_widget (ch_dlg, b_group);
      add_widget (ch_dlg, b_user);
---- mc-2006-09-25-14/src/dialog.c.utf8	2005-09-06 22:36:23.000000000 +0200
-+++ mc-2006-09-25-14/src/dialog.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/dialog.c.utf8	2005-09-06 22:36:23.000000000 +0200
++++ mc/src/dialog.c	2007-01-04 16:20:56.000000000 +0100
 @@ -166,7 +166,7 @@ common_dialog_repaint (struct Dlg_head *
  
      if (h->title) {
@@ -2686,8 +2686,8 @@
  	addstr (h->title);
      }
  }
---- mc-2006-09-25-14/src/boxes.c.utf8	2006-02-28 18:44:28.000000000 +0100
-+++ mc-2006-09-25-14/src/boxes.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/boxes.c.utf8	2006-02-28 18:44:28.000000000 +0100
++++ mc/src/boxes.c	2007-01-04 16:20:56.000000000 +0100
 @@ -153,23 +153,23 @@ display_init (int radio_sel, char *init_
  	display_title = _(display_title);
  	for (i = 0; i < LIST_TYPES; i++) {
@@ -2860,8 +2860,8 @@
          
          i18n_flag = 1;
      }
---- mc-2006-09-25-14/src/learn.c.utf8	2005-05-27 05:35:15.000000000 +0200
-+++ mc-2006-09-25-14/src/learn.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/src/learn.c.utf8	2005-05-27 05:35:15.000000000 +0200
++++ mc/src/learn.c	2007-01-04 16:20:56.000000000 +0100
 @@ -237,7 +237,7 @@ init_learn (void)
  	learn_but[0].x = 78 / 2 + 4;
  
@@ -2871,8 +2871,8 @@
  
  	learn_title = _(learn_title);
  	i18n_flag = 1;
---- mc-2006-09-25-14/edit/edit-widget.h.utf8	2006-03-20 17:44:32.000000000 +0100
-+++ mc-2006-09-25-14/edit/edit-widget.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/edit/edit-widget.h.utf8	2006-03-20 17:44:32.000000000 +0100
++++ mc/edit/edit-widget.h	2007-01-04 16:20:56.000000000 +0100
 @@ -30,6 +30,11 @@ typedef struct edit_key_map_type {
      long command;
  } edit_key_map_type;
@@ -2912,8 +2912,8 @@
      unsigned long stack_size;
      unsigned long stack_size_mask;
      unsigned long stack_bottom;
---- mc-2006-09-25-14/edit/editkeys.c.utf8	2006-02-02 00:05:15.000000000 +0100
-+++ mc-2006-09-25-14/edit/editkeys.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/edit/editkeys.c.utf8	2006-02-02 00:05:15.000000000 +0100
++++ mc/edit/editkeys.c	2007-01-04 16:20:56.000000000 +0100
 @@ -182,10 +182,10 @@ static const edit_key_map_type common_ke
   * 'command' is one of the editor commands from editcmddef.h.
   */
@@ -2968,9 +2968,9 @@
  	/* unchanged, key has no function here */
  	return 0;
      }
---- mc-2006-09-25-14/edit/editwidget.c.utf8	2005-09-07 17:53:03.000000000 +0200
-+++ mc-2006-09-25-14/edit/editwidget.c	2006-10-10 09:35:14.000000000 +0200
-@@ -344,7 +344,8 @@ edit_callback (Widget *w, widget_msg_t m
+--- mc/edit/editwidget.c.utf8	2006-12-12 18:39:33.000000000 +0100
++++ mc/edit/editwidget.c	2007-01-04 16:20:56.000000000 +0100
+@@ -331,7 +331,8 @@ edit_callback (Widget *w, widget_msg_t m
  
      case WIDGET_KEY:
  	{
@@ -2980,8 +2980,8 @@
  
  	    /* The user may override the access-keys for the menu bar. */
  	    if (edit_translate_key (e, parm, &cmd, &ch)) {
---- mc-2006-09-25-14/edit/editcmd.c.utf8	2006-03-20 17:44:32.000000000 +0100
-+++ mc-2006-09-25-14/edit/editcmd.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/edit/editcmd.c.utf8	2006-11-27 15:19:29.000000000 +0100
++++ mc/edit/editcmd.c	2007-01-04 16:20:56.000000000 +0100
 @@ -61,7 +61,7 @@
  #define edit_get_save_file(f,h) input_expand_dialog (h, _(" Enter file name: "), f)
  
@@ -3074,7 +3074,7 @@
  /*  If 0 (quick save) then  a) create/truncate <filename> file,
  			    b) save to <filename>;
      if 1 (safe save) then   a) save to <tempnam>,
-@@ -345,32 +391,48 @@ edit_save_file (WEdit *edit, const char 
+@@ -360,32 +406,48 @@ edit_save_file (WEdit *edit, const char 
  	buf = 0;
  	filelen = edit->last_byte;
  	while (buf <= (edit->curs1 >> S_EDIT_BUF_SIZE) - 1) {
@@ -3126,7 +3126,7 @@
  			 EDIT_BUF_SIZE) != EDIT_BUF_SIZE) {
  			filelen = -1;
  			break;
-@@ -686,13 +748,21 @@ edit_delete_macro (WEdit * edit, int k)
+@@ -705,13 +767,21 @@ edit_delete_macro (WEdit * edit, int k)
  	if (!n || n == EOF)
  	    break;
  	n = 0;
@@ -3148,7 +3148,7 @@
  	    fprintf (g, ";\n");
  	}
      }
-@@ -725,7 +795,11 @@ int edit_save_macro_cmd (WEdit * edit, s
+@@ -744,7 +814,11 @@ int edit_save_macro_cmd (WEdit * edit, s
  	if (f) {
  	    fprintf (f, ("key '%d 0': "), s);
  	    for (i = 0; i < n; i++)
@@ -3160,7 +3160,7 @@
  	    fprintf (f, ";\n");
  	    fclose (f);
  	    if (saved_macros_loaded) {
-@@ -775,10 +849,18 @@ int edit_load_macro_cmd (WEdit * edit, s
+@@ -794,10 +868,18 @@ int edit_load_macro_cmd (WEdit * edit, s
  		saved_macro[i++] = s;
  	    if (!found) {
  		*n = 0;
@@ -3179,7 +3179,7 @@
  	    }
  	    fscanf (f, ";\n");
  	    if (s == k)
-@@ -925,7 +1007,7 @@ int eval_marks (WEdit * edit, long *star
+@@ -944,7 +1026,7 @@ int eval_marks (WEdit * edit, long *star
  #define space_width 1
  
  static void
@@ -3188,7 +3188,7 @@
  {
      long cursor;
      int i, col;
-@@ -973,7 +1055,7 @@ edit_block_copy_cmd (WEdit *edit)
+@@ -992,7 +1074,7 @@ edit_block_copy_cmd (WEdit *edit)
  {
      long start_mark, end_mark, current = edit->curs1;
      int size;
@@ -3197,7 +3197,7 @@
  
      edit_update_curs_col (edit);
      if (eval_marks (edit, &start_mark, &end_mark))
-@@ -1013,7 +1095,7 @@ edit_block_move_cmd (WEdit *edit)
+@@ -1032,7 +1114,7 @@ edit_block_move_cmd (WEdit *edit)
  {
      long count;
      long current;
@@ -3206,7 +3206,7 @@
      long start_mark, end_mark;
      int deleted = 0;
      int x = 0;
-@@ -1074,7 +1156,7 @@ edit_block_move_cmd (WEdit *edit)
+@@ -1093,7 +1175,7 @@ edit_block_move_cmd (WEdit *edit)
  	edit_push_action (edit, COLUMN_ON);
  	column_highlighting = 0;
      } else {
@@ -3215,7 +3215,7 @@
  	edit_cursor_move (edit, start_mark - edit->curs1);
  	edit_scroll_screen_over_cursor (edit);
  	count = start_mark;
-@@ -1413,7 +1495,11 @@ static long sargs[NUM_REPL_ARGS][256 / s
+@@ -1432,7 +1514,11 @@ static long sargs[NUM_REPL_ARGS][256 / s
  /* This function is a modification of mc-3.2.10/src/view.c:regexp_view_search() */
  /* returns -3 on error in pattern, -1 on not found, found_len = 0 if either */
  static int
@@ -3227,7 +3227,7 @@
  		      int match_bol, int icase, int *found_len, void *d)
  {
      static regex_t r;
-@@ -1422,6 +1508,11 @@ string_regexp_search (char *pattern, cha
+@@ -1441,6 +1527,11 @@ string_regexp_search (char *pattern, cha
      regmatch_t *pmatch;
      static regmatch_t s[1];
  
@@ -3239,7 +3239,7 @@
      pmatch = (regmatch_t *) d;
      if (!pmatch)
  	pmatch = s;
-@@ -1441,13 +1532,51 @@ string_regexp_search (char *pattern, cha
+@@ -1460,13 +1551,51 @@ string_regexp_search (char *pattern, cha
  	old_type = match_type;
  	old_icase = icase;
      }
@@ -3291,7 +3291,7 @@
      *found_len = pmatch[0].rm_eo - pmatch[0].rm_so;
      return (pmatch[0].rm_so);
  }
-@@ -1455,13 +1584,29 @@ string_regexp_search (char *pattern, cha
+@@ -1474,13 +1603,29 @@ string_regexp_search (char *pattern, cha
  /* thanks to  Liviu Daia <daia at stoilow.imar.ro>  for getting this
     (and the above) routines to work properly - paul */
  
@@ -3322,7 +3322,7 @@
      int n = 0;
  
      for (p = 0; p < l; p++)	/* count conversions... */
-@@ -1470,19 +1615,22 @@ edit_find_string (long start, unsigned c
+@@ -1489,19 +1634,22 @@ edit_find_string (long start, unsigned c
  		n++;
  
      if (replace_scanf || replace_regexp) {
@@ -3352,7 +3352,7 @@
  	    if (replace_case) {
  		for (p = start; p < last_byte && p < start + MAX_REPL_LEN; p++)
  		    buf[p - start] = (*get_byte) (data, p);
-@@ -1496,20 +1644,36 @@ edit_find_string (long start, unsigned c
+@@ -1515,20 +1663,36 @@ edit_find_string (long start, unsigned c
  	    }
  
  	    buf[(q = p - start)] = 0;
@@ -3390,7 +3390,7 @@
  		if (q + start < last_byte) {
  		    if (replace_case) {
  			buf[q] = (*get_byte) (data, q + start);
-@@ -1523,7 +1687,11 @@ edit_find_string (long start, unsigned c
+@@ -1542,7 +1706,11 @@ edit_find_string (long start, unsigned c
  		start++;
  		buf++;		/* move the window along */
  		if (buf == mbuf + MAX_REPL_LEN) {	/* the window is about to go past the end of array, so... */
@@ -3402,7 +3402,7 @@
  		    buf = mbuf;
  		}
  		q--;
-@@ -1549,10 +1717,16 @@ edit_find_string (long start, unsigned c
+@@ -1568,10 +1736,16 @@ edit_find_string (long start, unsigned c
  
  		buf = mbuf;
  		while (q) {
@@ -3420,7 +3420,7 @@
  			return -3;
  		    }
  		    else if (found_start == -1)	/* not found: try next line */
-@@ -1563,15 +1737,27 @@ edit_find_string (long start, unsigned c
+@@ -1582,15 +1756,27 @@ edit_find_string (long start, unsigned c
  			match_bol = 0;
  			continue;
  		    }
@@ -3450,7 +3450,7 @@
  		    memmove (mbuf, buf, q);
  		    p = start + q;
  		    move_win = 1;
-@@ -1581,36 +1767,59 @@ edit_find_string (long start, unsigned c
+@@ -1600,36 +1786,59 @@ edit_find_string (long start, unsigned c
  	    }
  	}
      } else {
@@ -3518,7 +3518,7 @@
      return -2;
  }
  
-@@ -1624,9 +1833,14 @@ edit_find_forwards (long search_start, u
+@@ -1643,9 +1852,14 @@ edit_find_forwards (long search_start, u
  
      while ((p = edit_find_string (p, exp, len, last_byte, get_byte, data, once_only, d)) >= 0) {
  	if (replace_whole) {
@@ -3533,7 +3533,7 @@
  		return p;
  	    if (once_only)
  		return -2;
-@@ -1658,6 +1872,7 @@ edit_find (long search_start, unsigned c
+@@ -1677,6 +1891,7 @@ edit_find (long search_start, unsigned c
  
  #define is_digit(x) ((x) >= '0' && (x) <= '9')
  
@@ -3541,7 +3541,7 @@
  #define snprint(v) { \
  		*p1++ = *p++; \
  		*p1 = '\0'; \
-@@ -1665,33 +1880,48 @@ edit_find (long search_start, unsigned c
+@@ -1684,33 +1899,48 @@ edit_find (long search_start, unsigned c
  		if (n >= (size_t) (e - s)) goto nospc; \
  		s += n; \
  	    }
@@ -3598,7 +3598,7 @@
  	s += n;
  	q = p;
  	p1 = q1;
-@@ -1719,45 +1949,78 @@ static int snprintf_p (char *str, size_t
+@@ -1738,45 +1968,78 @@ static int snprintf_p (char *str, size_t
  	    *p1++ = *p++;
  	if (*p == '*') {
  	    p++;
@@ -3687,7 +3687,7 @@
  	    snprint (*va_arg (ap, long *));
  	} else if (*p == 'p') {
  	    snprint (*va_arg (ap, void **));
-@@ -1766,10 +2029,17 @@ static int snprintf_p (char *str, size_t
+@@ -1785,10 +2048,17 @@ static int snprintf_p (char *str, size_t
  	q = p;
      }
      va_end (ap);
@@ -3705,7 +3705,7 @@
      return s + n - str;
  nospc:
      va_end (ap);
-@@ -1948,8 +2218,11 @@ edit_replace_cmd (WEdit *edit, int again
+@@ -1967,8 +2237,11 @@ edit_replace_cmd (WEdit *edit, int again
  		}
  	    }
  	    if (replace_yes) {	/* delete then insert new */
@@ -3718,7 +3718,7 @@
  		    int ret = 0;
  
  		    /* we need to fill in sargs just like with scanf */
-@@ -1958,17 +2231,25 @@ edit_replace_cmd (WEdit *edit, int again
+@@ -1977,17 +2250,25 @@ edit_replace_cmd (WEdit *edit, int again
  			for (k = 1;
  			     k < NUM_REPL_ARGS && pmatch[k].rm_eo >= 0;
  			     k++) {
@@ -3745,7 +3745,7 @@
  								    edit->
  								    search_start
  								    -
-@@ -1986,14 +2267,23 @@ edit_replace_cmd (WEdit *edit, int again
+@@ -2005,14 +2286,23 @@ edit_replace_cmd (WEdit *edit, int again
  		    }
  		    if (!ret)
  			ret =
@@ -3769,7 +3769,7 @@
  		    } else {
  			edit_error_dialog (_(" Replace "),
  					   ret ==
-@@ -2007,10 +2297,18 @@ edit_replace_cmd (WEdit *edit, int again
+@@ -2026,10 +2316,18 @@ edit_replace_cmd (WEdit *edit, int again
  		    times_replaced++;
  		    while (i--)
  			edit_delete (edit);
@@ -3788,7 +3788,7 @@
  	    }
  	    /* so that we don't find the same string again */
  	    if (replace_backwards) {
-@@ -2183,16 +2481,17 @@ edit_ok_to_exit (WEdit *edit)
+@@ -2202,16 +2500,17 @@ edit_ok_to_exit (WEdit *edit)
  #define TEMP_BUF_LEN 1024
  
  /* Return a null terminated length of text. Result must be g_free'd */
@@ -3810,7 +3810,7 @@
  	    x = edit_move_forward3 (edit, edit_bol (edit, start), 0,
  				    start);
  	    c = edit_get_byte (edit, start);
-@@ -2225,11 +2524,15 @@ edit_save_block (WEdit * edit, const cha
+@@ -2244,11 +2543,15 @@ edit_save_block (WEdit * edit, const cha
  	return 0;
  
      if (column_highlighting) {
@@ -3827,7 +3827,7 @@
  	    if (r < 0)
  		break;
  	    p += r;
-@@ -2237,15 +2540,19 @@ edit_save_block (WEdit * edit, const cha
+@@ -2256,15 +2559,19 @@ edit_save_block (WEdit * edit, const cha
  	}
  	g_free (block);
      } else {
@@ -3849,7 +3849,7 @@
  	    start = end;
  	}
  	g_free (buf);
-@@ -2583,17 +2890,20 @@ edit_block_process_cmd (WEdit *edit, con
+@@ -2602,17 +2909,20 @@ edit_block_process_cmd (WEdit *edit, con
  
  /* prints at the cursor */
  /* returns the number of chars printed */
@@ -3872,7 +3872,7 @@
  static void pipe_mail (WEdit *edit, char *to, char *subject, char *cc)
  {
      FILE *p = 0;
-@@ -2687,15 +2997,20 @@ void edit_mail_dialog (WEdit * edit)
+@@ -2706,15 +3016,20 @@ void edit_mail_dialog (WEdit * edit)
  /* find first character of current word */
  static int edit_find_word_start (WEdit *edit, long *word_start, int *word_len)
  {
@@ -3895,7 +3895,7 @@
  	return 0;
  
  /* search start of word to be completed */
-@@ -2705,11 +3020,19 @@ static int edit_find_word_start (WEdit *
+@@ -2724,11 +3039,19 @@ static int edit_find_word_start (WEdit *
  	    return 0;
  
  	last = c;
@@ -3916,7 +3916,7 @@
  		return 0;
  
  	    *word_start = edit->curs1 - (i - 1); /* start found */
-@@ -2742,7 +3065,7 @@ edit_collect_completions (WEdit *edit, l
+@@ -2761,7 +3084,7 @@ edit_collect_completions (WEdit *edit, l
  			  int *num)
  {
      int len, max_len = 0, i, skip;
@@ -3925,7 +3925,7 @@
  
      /* collect max MAX_WORD_COMPLETIONS completions */
      while (*num < MAX_WORD_COMPLETIONS) {
-@@ -2761,11 +3084,16 @@ edit_collect_completions (WEdit *edit, l
+@@ -2780,11 +3103,16 @@ edit_collect_completions (WEdit *edit, l
  	    buffers1[start >> S_EDIT_BUF_SIZE][start & M_EDIT_BUF_SIZE];
  	skip = 0;
  	for (i = 0; i < *num; i++) {
@@ -3945,7 +3945,7 @@
  		skip = 1;
  		break;		/* skip it, already added */
  	    }
-@@ -2773,7 +3101,7 @@ edit_collect_completions (WEdit *edit, l
+@@ -2792,7 +3120,7 @@ edit_collect_completions (WEdit *edit, l
  	if (skip)
  	    continue;
  
@@ -3954,7 +3954,7 @@
  	compl[*num].len = len;
  	for (i = 0; i < len; i++)
  	    compl[*num].text[i] = *(bufpos + i);
-@@ -2787,6 +3115,18 @@ edit_collect_completions (WEdit *edit, l
+@@ -2806,6 +3134,18 @@ edit_collect_completions (WEdit *edit, l
      return max_len;
  }
  
@@ -3973,7 +3973,7 @@
  
  /* let the user select its preferred completion */
  static void
-@@ -2799,6 +3139,9 @@ edit_completion_dialog (WEdit * edit, in
+@@ -2818,6 +3158,9 @@ edit_completion_dialog (WEdit * edit, in
      WListbox *compl_list;
      int compl_dlg_h;		/* completion dialog height */
      int compl_dlg_w;		/* completion dialog width */
@@ -3983,7 +3983,7 @@
  
      /* calculate the dialog metrics */
      compl_dlg_h = num_compl + 2;
-@@ -2834,9 +3177,18 @@ edit_completion_dialog (WEdit * edit, in
+@@ -2853,9 +3196,18 @@ edit_completion_dialog (WEdit * edit, in
      add_widget (compl_dlg, compl_list);
  
      /* fill the listbox with the completions */
@@ -4002,7 +4002,7 @@
  
      /* pop up the dialog */
      run_dlg (compl_dlg);
-@@ -2844,9 +3196,17 @@ edit_completion_dialog (WEdit * edit, in
+@@ -2863,9 +3215,17 @@ edit_completion_dialog (WEdit * edit, in
      /* apply the choosen completion */
      if (compl_dlg->ret_value == B_ENTER) {
  	listbox_get_current (compl_list, &curr, NULL);
@@ -4021,7 +4021,7 @@
      }
  
      /* destroy dialog before return */
-@@ -2863,8 +3223,9 @@ edit_complete_word_cmd (WEdit *edit)
+@@ -2882,8 +3242,9 @@ edit_complete_word_cmd (WEdit *edit)
  {
      int word_len = 0, i, num_compl = 0, max_len;
      long word_start = 0;
@@ -4033,7 +4033,7 @@
      struct selection compl[MAX_WORD_COMPLETIONS];	/* completions */
  
      /* don't want to disturb another search */
-@@ -2881,16 +3242,32 @@ edit_complete_word_cmd (WEdit *edit)
+@@ -2900,16 +3261,32 @@ edit_complete_word_cmd (WEdit *edit)
      /* prepare match expression */
      bufpos = &edit->buffers1[word_start >> S_EDIT_BUF_SIZE]
  	[word_start & M_EDIT_BUF_SIZE];
@@ -4066,8 +4066,8 @@
  
      if (num_compl > 0) {
  	/* insert completed word if there is only one match */
---- mc-2006-09-25-14/edit/wordproc.c.utf8	2006-06-17 04:55:41.000000000 +0200
-+++ mc-2006-09-25-14/edit/wordproc.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/edit/wordproc.c.utf8	2006-06-17 04:55:41.000000000 +0200
++++ mc/edit/wordproc.c	2007-01-04 16:20:56.000000000 +0100
 @@ -40,7 +40,12 @@
  
  #define tab_width option_tab_spacing
@@ -4287,8 +4287,8 @@
  		    g_free (t);
  		    return;
  		}
---- mc-2006-09-25-14/edit/edit.h.utf8	2006-02-06 17:55:42.000000000 +0100
-+++ mc-2006-09-25-14/edit/edit.h	2006-10-10 09:35:14.000000000 +0200
+--- mc/edit/edit.h.utf8	2006-12-12 18:39:33.000000000 +0100
++++ mc/edit/edit.h	2007-01-04 16:20:56.000000000 +0100
 @@ -25,6 +25,27 @@
  
  #include <stdio.h>
@@ -4349,7 +4349,7 @@
  int edit_count_lines (WEdit * edit, long current, int upto);
  long edit_move_forward (WEdit * edit, long current, int lines, long upto);
  long edit_move_forward3 (WEdit * edit, long current, int cols, long upto);
-@@ -146,11 +173,11 @@ int edit_block_delete_cmd (WEdit * edit)
+@@ -148,11 +175,11 @@ int edit_block_delete_cmd (WEdit * edit)
  void edit_delete_line (WEdit * edit);
  
  int edit_delete (WEdit * edit);
@@ -4363,7 +4363,7 @@
  long edit_write_stream (WEdit * edit, FILE * f);
  char *edit_get_write_filter (const char *writename, const char *filename);
  int edit_save_confirm_cmd (WEdit * edit);
-@@ -181,7 +208,7 @@ void edit_goto_cmd (WEdit * edit);
+@@ -183,7 +210,7 @@ void edit_goto_cmd (WEdit * edit);
  int eval_marks (WEdit * edit, long *start_mark, long *end_mark);
  void edit_status (WEdit * edit);
  void edit_execute_key_command (WEdit *edit, int command,
@@ -4372,7 +4372,7 @@
  void edit_update_screen (WEdit * edit);
  int edit_print_string (WEdit * e, const char *s);
  void edit_move_to_line (WEdit * e, long line);
-@@ -231,7 +258,7 @@ void edit_mail_dialog (WEdit *edit);
+@@ -233,7 +260,7 @@ void edit_mail_dialog (WEdit *edit);
  void format_paragraph (WEdit *edit, int force);
  
  /* either command or char_for_insertion must be passed as -1 */
@@ -4381,8 +4381,8 @@
  
  #define get_sys_error(s) (s)
  
---- mc-2006-09-25-14/edit/editdraw.c.utf8	2005-09-06 22:36:20.000000000 +0200
-+++ mc-2006-09-25-14/edit/editdraw.c	2006-10-10 09:35:14.000000000 +0200
+--- mc/edit/editdraw.c.utf8	2006-12-09 16:19:48.000000000 +0100
++++ mc/edit/editdraw.c	2007-01-04 16:20:56.000000000 +0100
 @@ -69,11 +69,16 @@ static void status_string (WEdit * edit,
       * as decimal and as hex.
       */
@@ -4473,9 +4473,9 @@
 -    unsigned int c;
 +    mc_wint_t c;
      int color;
-     int i, book_mark = -1;
+     int i;
  
-@@ -287,66 +300,96 @@ edit_draw_this_line (WEdit *edit, long b
+@@ -282,62 +295,92 @@ edit_draw_this_line (WEdit *edit, long b
  
  	if (row <= edit->total_lines - edit->start_line) {
  	    while (col <= end_col - edit->start_col) {
@@ -4505,14 +4505,9 @@
 +		    p->style |= MOD_BOLD;
  		c = edit_get_byte (edit, q);
  /* we don't use bg for mc - fg contains both */
- 		if (book_mark == -1) {
- 		    edit_get_syntax_color (edit, q, &color);
--		    *p |= color << 16;
-+		    p->style |= color << 16;
- 		} else {
--		    *p |= book_mark << 16;
-+		    p->style |= book_mark << 16;
- 		}
+ 		edit_get_syntax_color (edit, q, &color);
+-		*p |= color << 16;
++		p->style |= color << 16;
  		q++;
  		switch (c) {
  		case '\n':
@@ -4543,10 +4538,10 @@
  		    if (c < 32) {
 -			*(p++) = '^' | MOD_ABNORMAL;
 -			*(p++) = (c + 0x40) | MOD_ABNORMAL;
-+		        p->ch = '^';
++			p->ch = '^';
 +			p->style = MOD_ABNORMAL;
 +			p++;
-+		        p->ch = c + 0x40;
++			p->ch = c + 0x40;
 +			p->style = MOD_ABNORMAL;
  			col += 2;
  			break;
@@ -4592,7 +4587,7 @@
  		    }
  		    col++;
  		    break;
-@@ -356,7 +399,7 @@ edit_draw_this_line (WEdit *edit, long b
+@@ -347,7 +390,7 @@ edit_draw_this_line (WEdit *edit, long b
      } else {
  	start_col_real = start_col = 0;
      }
@@ -4601,10 +4596,10 @@
  
      print_to_widget (edit, row, start_col, start_col_real, end_col, line);
  }
---- mc-2006-09-25-14/edit/edit.c.utf8	2006-02-13 22:35:05.000000000 +0100
-+++ mc-2006-09-25-14/edit/edit.c	2006-10-10 09:35:14.000000000 +0200
-@@ -103,7 +103,11 @@ char *option_backup_ext = NULL;
- static void edit_move_to_prev_col (WEdit *edit, long p);
+--- mc/edit/edit.c.utf8	2006-12-12 18:39:33.000000000 +0100
++++ mc/edit/edit.c	2007-01-04 16:20:56.000000000 +0100
+@@ -102,7 +102,11 @@ char *option_backup_ext = NULL;
+ 
  static void user_menu (WEdit *edit);
  
 +#ifndef UTF8
@@ -4615,7 +4610,7 @@
  {
      unsigned long p;
      if (byte_index >= (edit->curs1 + edit->curs2) || byte_index < 0)
-@@ -132,7 +136,7 @@ edit_init_buffers (WEdit *edit)
+@@ -131,7 +135,7 @@ edit_init_buffers (WEdit *edit)
  
      edit->curs1 = 0;
      edit->curs2 = 0;
@@ -4624,7 +4619,7 @@
  }
  
  /*
-@@ -157,7 +161,7 @@ edit_load_file_fast (WEdit *edit, const 
+@@ -156,7 +160,7 @@ edit_load_file_fast (WEdit *edit, const 
      }
  
      if (!edit->buffers2[buf2])
@@ -4633,7 +4628,7 @@
  
      mc_read (file,
  	     (char *) edit->buffers2[buf2] + EDIT_BUF_SIZE -
-@@ -167,7 +171,7 @@ edit_load_file_fast (WEdit *edit, const 
+@@ -166,7 +170,7 @@ edit_load_file_fast (WEdit *edit, const 
      for (buf = buf2 - 1; buf >= 0; buf--) {
  	/* edit->buffers2[0] is already allocated */
  	if (!edit->buffers2[buf])
@@ -4642,7 +4637,7 @@
  	mc_read (file, (char *) edit->buffers2[buf], EDIT_BUF_SIZE);
      }
  
-@@ -240,9 +244,44 @@ edit_insert_stream (WEdit * edit, FILE *
+@@ -239,9 +243,44 @@ edit_insert_stream (WEdit * edit, FILE *
  {
      int c;
      long i = 0;
@@ -4688,7 +4683,7 @@
      }
      return i;
  }
-@@ -250,9 +289,32 @@ edit_insert_stream (WEdit * edit, FILE *
+@@ -249,9 +288,32 @@ edit_insert_stream (WEdit * edit, FILE *
  long edit_write_stream (WEdit * edit, FILE * f)
  {
      long i;
@@ -4721,7 +4716,7 @@
      return i;
  }
  
-@@ -291,12 +353,46 @@ edit_insert_file (WEdit *edit, const cha
+@@ -290,12 +352,46 @@ edit_insert_file (WEdit *edit, const cha
  	int i, file, blocklen;
  	long current = edit->curs1;
  	unsigned char *buf;
@@ -4768,7 +4763,7 @@
  	}
  	edit_cursor_move (edit, current - edit->curs1);
  	g_free (buf);
-@@ -386,7 +482,11 @@ cleanup:
+@@ -385,7 +481,11 @@ cleanup:
  static int
  edit_load_file (WEdit *edit)
  {
@@ -4780,7 +4775,7 @@
  
      /* Cannot do fast load if a filter is used */
      if (edit_find_filter (edit->filename) >= 0)
-@@ -452,6 +552,7 @@ edit_load_position (WEdit *edit)
+@@ -451,6 +551,7 @@ edit_load_position (WEdit *edit)
      edit->prev_col = column;
      edit_move_to_prev_col (edit, edit_bol (edit, edit->curs1));
      edit_move_display (edit, line - (edit->num_widget_lines / 2));
@@ -4797,22 +4792,22 @@
      if (edit_load_file (edit)) {
  	/* edit_load_file already gives an error message */
  	if (to_free)
-@@ -689,13 +790,23 @@ void edit_push_action (WEdit * edit, lon
+@@ -689,14 +790,23 @@ void edit_push_action (WEdit * edit, lon
  {
      unsigned long sp = edit->stack_pointer;
      unsigned long spm1;
 -    long *t;
-+  
-+    struct action *t; 
-+    mc_wchar_t ch = 0; 
-+
-+    if (c == CHAR_INSERT || c == CHAR_INSERT_AHEAD) { 
-+      va_list ap; 
-+      va_start (ap, c); 
-+      ch = va_arg (ap, mc_wint_t); 
-+      va_end (ap); 
-+    } 
 +
++    struct action *t;
++    mc_wchar_t ch = 0;
++
++    if (c == CHAR_INSERT || c == CHAR_INSERT_AHEAD) {
++	va_list ap;
++	va_start (ap, c);
++	ch = va_arg (ap, mc_wint_t);
++	va_end (ap);
++    }
+ 
  /* first enlarge the stack if necessary */
      if (sp > edit->stack_size - 10) {	/* say */
  	if (option_max_undo < 256)
@@ -4823,7 +4818,7 @@
  	    if (t) {
  		edit->undo_stack = t;
  		edit->stack_size <<= 1;
-@@ -710,7 +821,7 @@ void edit_push_action (WEdit * edit, lon
+@@ -711,7 +821,7 @@ void edit_push_action (WEdit * edit, lon
  #ifdef FAST_MOVE_CURSOR
      if (c == CURS_LEFT_LOTS || c == CURS_RIGHT_LOTS) {
  	va_list ap;
@@ -4832,7 +4827,7 @@
  	edit->stack_pointer = (edit->stack_pointer + 1) & edit->stack_size_mask;
  	va_start (ap, c);
  	c = -(va_arg (ap, int));
-@@ -721,12 +832,14 @@ void edit_push_action (WEdit * edit, lon
+@@ -722,12 +832,14 @@ void edit_push_action (WEdit * edit, lon
  	&& spm1 != edit->stack_bottom
  	&& ((sp - 2) & edit->stack_size_mask) != edit->stack_bottom) {
  	int d;
@@ -4852,7 +4847,7 @@
  		    return;
  		}
  	    }
-@@ -734,19 +847,20 @@ void edit_push_action (WEdit * edit, lon
+@@ -735,19 +847,20 @@ void edit_push_action (WEdit * edit, lon
  #ifndef NO_STACK_CURSMOVE_ANIHILATION
  	    else if ((c == CURS_LEFT && d == CURS_RIGHT)
  		     || (c == CURS_RIGHT && d == CURS_LEFT)) {	/* a left then a right anihilate each other */
@@ -4878,7 +4873,7 @@
  		goto check_bottom;
  	    }
  #ifndef NO_STACK_CURSMOVE_ANIHILATION
-@@ -758,7 +872,9 @@ void edit_push_action (WEdit * edit, lon
+@@ -759,7 +872,9 @@ void edit_push_action (WEdit * edit, lon
  #endif
  	}
      }
@@ -4889,7 +4884,7 @@
    check_bottom:
  
      edit->stack_pointer = (edit->stack_pointer + 1) & edit->stack_size_mask;
-@@ -771,10 +887,10 @@ void edit_push_action (WEdit * edit, lon
+@@ -772,10 +887,10 @@ void edit_push_action (WEdit * edit, lon
         (((unsigned long) c + 1) & edit->stack_size_mask) == edit->stack_bottom)
  	do {
  	    edit->stack_bottom = (edit->stack_bottom + 1) & edit->stack_size_mask;
@@ -4902,7 +4897,7 @@
  	edit->stack_bottom = edit->stack_pointer = 0;
  }
  
-@@ -783,30 +899,30 @@ void edit_push_action (WEdit * edit, lon
+@@ -784,30 +899,30 @@ void edit_push_action (WEdit * edit, lon
     then the file should be as it was when he loaded up. Then set edit->modified to 0.
   */
  static long
@@ -4944,7 +4939,7 @@
  }
  
  /* is called whenever a modification is made by one of the four routines below */
-@@ -827,7 +943,7 @@ static inline void edit_modification (WE
+@@ -828,7 +943,7 @@ static inline void edit_modification (WE
   */
  
  void
@@ -4953,7 +4948,7 @@
  {
      /* check if file has grown to large */
      if (edit->last_byte >= SIZE_LIMIT)
-@@ -865,12 +981,11 @@ edit_insert (WEdit *edit, int c)
+@@ -866,12 +981,11 @@ edit_insert (WEdit *edit, int c)
      /* add a new buffer if we've reached the end of the last one */
      if (!(edit->curs1 & M_EDIT_BUF_SIZE))
  	edit->buffers1[edit->curs1 >> S_EDIT_BUF_SIZE] =
@@ -4969,7 +4964,7 @@
  
      /* update file length */
      edit->last_byte++;
-@@ -881,7 +996,7 @@ edit_insert (WEdit *edit, int c)
+@@ -882,7 +996,7 @@ edit_insert (WEdit *edit, int c)
  
  
  /* same as edit_insert and move left */
@@ -4978,7 +4973,7 @@
  {
      if (edit->last_byte >= SIZE_LIMIT)
  	return;
-@@ -904,7 +1019,7 @@ void edit_insert_ahead (WEdit * edit, in
+@@ -905,7 +1019,7 @@ void edit_insert_ahead (WEdit * edit, in
      edit->last_get_rule += (edit->last_get_rule >= edit->curs1);
  
      if (!((edit->curs2 + 1) & M_EDIT_BUF_SIZE))
@@ -4987,7 +4982,7 @@
      edit->buffers2[edit->curs2 >> S_EDIT_BUF_SIZE][EDIT_BUF_SIZE - (edit->curs2 & M_EDIT_BUF_SIZE) - 1] = c;
  
      edit->last_byte++;
-@@ -914,7 +1029,7 @@ void edit_insert_ahead (WEdit * edit, in
+@@ -915,7 +1029,7 @@ void edit_insert_ahead (WEdit * edit, in
  
  int edit_delete (WEdit * edit)
  {
@@ -4996,7 +4991,7 @@
      if (!edit->curs2)
  	return 0;
  
-@@ -938,7 +1053,7 @@ int edit_delete (WEdit * edit)
+@@ -939,7 +1053,7 @@ int edit_delete (WEdit * edit)
  	edit->total_lines--;
  	edit->force |= REDRAW_AFTER_CURSOR;
      }
@@ -5005,7 +5000,7 @@
      if (edit->curs1 < edit->start_display) {
  	edit->start_display--;
  	if (p == '\n')
-@@ -952,7 +1067,7 @@ int edit_delete (WEdit * edit)
+@@ -953,7 +1067,7 @@ int edit_delete (WEdit * edit)
  static int
  edit_backspace (WEdit * edit)
  {
@@ -5014,7 +5009,7 @@
      if (!edit->curs1)
  	return 0;
  
-@@ -976,7 +1091,7 @@ edit_backspace (WEdit * edit)
+@@ -977,7 +1091,7 @@ edit_backspace (WEdit * edit)
  	edit->total_lines--;
  	edit->force |= REDRAW_AFTER_CURSOR;
      }
@@ -5023,7 +5018,7 @@
  
      if (edit->curs1 < edit->start_display) {
  	edit->start_display--;
-@@ -989,10 +1104,18 @@ edit_backspace (WEdit * edit)
+@@ -990,10 +1104,18 @@ edit_backspace (WEdit * edit)
  
  #ifdef FAST_MOVE_CURSOR
  
@@ -5043,7 +5038,7 @@
  	edit->curs_line--;
  	next -= (unsigned long) dest;
  	n -= next;
-@@ -1005,7 +1128,7 @@ int
+@@ -1006,7 +1128,7 @@ int
  edit_move_backward_lots (WEdit *edit, long increment)
  {
      int r, s, t;
@@ -5052,7 +5047,7 @@
  
      if (increment > edit->curs1)
  	increment = edit->curs1;
-@@ -1045,7 +1168,7 @@ edit_move_backward_lots (WEdit *edit, lo
+@@ -1046,7 +1168,7 @@ edit_move_backward_lots (WEdit *edit, lo
  	    edit->buffers2[edit->curs2 >> S_EDIT_BUF_SIZE] = p;
  	else
  	    edit->buffers2[edit->curs2 >> S_EDIT_BUF_SIZE] =
@@ -5061,7 +5056,7 @@
      } else {
  	g_free (p);
      }
-@@ -1083,7 +1206,7 @@ edit_move_backward_lots (WEdit *edit, lo
+@@ -1084,7 +1206,7 @@ edit_move_backward_lots (WEdit *edit, lo
  		edit->buffers2[edit->curs2 >> S_EDIT_BUF_SIZE] = p;
  	    else
  		edit->buffers2[edit->curs2 >> S_EDIT_BUF_SIZE] =
@@ -5070,7 +5065,7 @@
  	} else {
  	    g_free (p);
  	}
-@@ -1115,7 +1238,7 @@ int edit_cursor_move (WEdit * edit, long
+@@ -1116,7 +1238,7 @@ int edit_cursor_move (WEdit * edit, long
  
  	    c = edit_get_byte (edit, edit->curs1 - 1);
  	    if (!((edit->curs2 + 1) & M_EDIT_BUF_SIZE))
@@ -5079,7 +5074,7 @@
  	    edit->buffers2[edit->curs2 >> S_EDIT_BUF_SIZE][EDIT_BUF_SIZE - (edit->curs2 & M_EDIT_BUF_SIZE) - 1] = c;
  	    edit->curs2++;
  	    c = edit->buffers1[(edit->curs1 - 1) >> S_EDIT_BUF_SIZE][(edit->curs1 - 1) & M_EDIT_BUF_SIZE];
-@@ -1140,7 +1263,7 @@ int edit_cursor_move (WEdit * edit, long
+@@ -1141,7 +1263,7 @@ int edit_cursor_move (WEdit * edit, long
  
  	    c = edit_get_byte (edit, edit->curs1);
  	    if (!(edit->curs1 & M_EDIT_BUF_SIZE))
@@ -5088,7 +5083,7 @@
  	    edit->buffers1[edit->curs1 >> S_EDIT_BUF_SIZE][edit->curs1 & M_EDIT_BUF_SIZE] = c;
  	    edit->curs1++;
  	    c = edit->buffers2[(edit->curs2 - 1) >> S_EDIT_BUF_SIZE][EDIT_BUF_SIZE - ((edit->curs2 - 1) & M_EDIT_BUF_SIZE) - 1];
-@@ -1247,7 +1370,7 @@ long edit_move_forward3 (WEdit * edit, l
+@@ -1248,7 +1370,7 @@ long edit_move_forward3 (WEdit * edit, l
  	q = edit->last_byte + 2;
  
      for (col = 0, p = current; p < q; p++) {
@@ -5097,7 +5092,7 @@
  	if (cols != -10) {
  	    if (col == cols)
  		return p;
-@@ -1265,7 +1388,7 @@ long edit_move_forward3 (WEdit * edit, l
+@@ -1266,7 +1388,7 @@ long edit_move_forward3 (WEdit * edit, l
  	} else if (c < 32 || c == 127)
  	    col += 2; /* Caret notation for control characters */
  	else
@@ -5106,7 +5101,7 @@
      }
      return col;
  }
-@@ -1398,7 +1521,7 @@ static int
+@@ -1399,7 +1521,7 @@ static int
  is_blank (WEdit *edit, long offset)
  {
      long s, f;
@@ -5115,7 +5110,7 @@
      s = edit_bol (edit, offset);
      f = edit_eol (edit, offset) - 1;
      while (s <= f) {
-@@ -1770,13 +1893,13 @@ static void edit_left_delete_word (WEdit
+@@ -1771,13 +1893,13 @@ static void edit_left_delete_word (WEdit
  static void
  edit_do_undo (WEdit * edit)
  {
@@ -5132,7 +5127,7 @@
  	case STACK_BOTTOM:
  	    goto done_undo;
  	case CURS_RIGHT:
-@@ -1797,31 +1920,33 @@ edit_do_undo (WEdit * edit)
+@@ -1798,31 +1920,33 @@ edit_do_undo (WEdit * edit)
  	case COLUMN_OFF:
  	    column_highlighting = 0;
  	    break;
@@ -5179,7 +5174,7 @@
      edit_update_curs_row (edit);
  
    done_undo:;
-@@ -2101,7 +2226,7 @@ static void edit_goto_matching_bracket (
+@@ -2102,7 +2226,7 @@ static void edit_goto_matching_bracket (
   * passed as -1.  Commands are executed, and char_for_insertion is
   * inserted at the cursor.
   */
@@ -5188,7 +5183,7 @@
  {
      if (command == CK_Begin_Record_Macro) {
  	edit->macro_i = 0;
-@@ -2136,7 +2261,7 @@ static const char * const shell_cmd[] = 
+@@ -2137,7 +2261,7 @@ static const char * const shell_cmd[] = 
     all of them. It also does not check for the Undo command.
   */
  void
@@ -5197,7 +5192,7 @@
  {
      edit->force |= REDRAW_LINE;
  
-@@ -2169,7 +2294,7 @@ edit_execute_cmd (WEdit *edit, int comma
+@@ -2170,7 +2294,7 @@ edit_execute_cmd (WEdit *edit, int comma
      }
  
      /* An ordinary key press */


Index: mc.spec
===================================================================
RCS file: /cvs/dist/rpms/mc/FC-6/mc.spec,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -r1.107 -r1.108
--- mc.spec	22 Nov 2006 11:46:21 -0000	1.107
+++ mc.spec	16 Apr 2007 13:42:59 -0000	1.108
@@ -1,9 +1,9 @@
-%define date 2006-11-14-16
+%define date 2007-01-24-03
 
 Summary:	User-friendly text console file manager and visual shell
 Name:		mc
 Version:	4.6.1a
-Release:	35%{?dist}
+Release:	36.20070124cvs%{?dist}
 Epoch:		1
 License:	GPL
 Group:		System Environment/Shells
@@ -13,20 +13,21 @@
 BuildRequires:	glib2-devel e2fsprogs-devel slang-devel
 Requires:	dev >= 0:3.3-3
 
-Patch0:         mc-utf8.patch
-Patch1:         mc-extensions.patch
-Patch2:         mc-userhost.patch
-Patch3:         mc-64bit.patch
-Patch4:         mc-utf8-look-and-feel.patch
-Patch5:         mc-concat.patch
-Patch6:         mc-showfree.patch
-Patch7:         mc-cedit.patch
-Patch8:         mc-delcheck.patch
-Patch9:         mc-etcmc.patch
-Patch10:        mc-exit.patch
-Patch11:        mc-utf8-8bit-hex.patch
-Patch12:        mc-ipv6.patch
-Patch13:        mc-newlinedir.patch
+Patch0:		mc-utf8.patch
+Patch1:		mc-extensions.patch
+Patch2:		mc-userhost.patch
+Patch3:		mc-64bit.patch
+Patch4:		mc-utf8-look-and-feel.patch
+Patch5:		mc-concat.patch
+Patch6:		mc-showfree.patch
+Patch7:		mc-cedit.patch
+Patch8:		mc-delcheck.patch
+Patch9:		mc-etcmc.patch
+Patch10:	mc-exit.patch
+Patch11:	mc-utf8-8bit-hex.patch
+Patch12:	mc-ipv6.patch
+Patch13:	mc-newlinedir.patch
+Patch14:	mc-cloexec.patch
 
 %description
 Midnight Commander is a visual shell much like a file manager, only
@@ -52,6 +53,7 @@
 %patch11 -p1 -b .8bit-hex
 %patch12 -p1 -b .ipv6
 %patch13 -p1 -b .newlinedir
+%patch14 -p1 -b .cloexec
 
 # convert files in /lib to UTF-8
 pushd lib
@@ -115,26 +117,10 @@
 %build
 export CFLAGS="-DUTF8=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $RPM_OPT_FLAGS"
 %configure --with-screen=slang \
-	     --host=%{_host} --build=%{_build} \
-	     --target=%{_target_platform} \
-	     --program-prefix=%{?_program_prefix} \
-	     --prefix=%{_prefix} \
-	     --exec-prefix=%{_exec_prefix} \
-	     --bindir=%{_bindir} \
-	     --sbindir=%{_sbindir} \
-	     --sysconfdir=%{_sysconfdir} \
-	     --datadir=%{_datadir} \
-	     --includedir=%{_includedir} \
-	     --libdir=%{_libdir} \
-	     --libexecdir=%{_libexecdir} \
-	     --localstatedir=%{_localstatedir} \
-	     --sharedstatedir=%{_sharedstatedir} \
-	     --mandir=%{_mandir} \
-	     --infodir=%{_infodir} \
 	     --enable-charset \
 	     --with-samba \
 	     --without-x \
-	     --without-gpm-mouse
+	     --with-gpm-mouse
 make %{?_smp_mflags}
 
 %install 
@@ -144,7 +130,7 @@
 install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/mc/extfs
 install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/mc/syntax
 
-%{makeinstall} sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir}
+make install DESTDIR="$RPM_BUILD_ROOT"
 
 install lib/{mc.sh,mc.csh} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
 
@@ -190,12 +176,30 @@
 %lang(pl) %{_mandir}/pl/man1/mc.1.gz
 %lang(ru) %{_mandir}/ru/man1/mc.1.gz
 %lang(sr) %{_mandir}/sr/man1/mc.1.gz
-%config %{_sysconfdir}/profile.d/*
-%config %{_sysconfdir}/mc/*
+%{_sysconfdir}/profile.d/*
+%config %{_sysconfdir}/mc/syntax/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
 %dir %{_datadir}/mc
 %dir %{_sysconfdir}/mc
+%dir %{_sysconfdir}/mc/syntax
+%dir %{_sysconfdir}/mc/extfs
+%dir %{_libexecdir}/mc
 
 %changelog
+* Mon Apr 16 2007 Jindrich Novy <jnovy at redhat.com> 4.6.1a-36
+- update to the CVS snapshot as of 24th Jan 2007 (fixes #220828)
+- reenable gpm support as it is now fixed (#168076)
+- display free space correctly for multiple filesystems (#225153)
+  (thanks to Tomas Heinrich for patch)
+- fix unowned directories (#233880)
+- spec fixes, bindings fixes
+
 * Thu Nov 22 2006 Jindrich Novy <jnovy at redhat.com> 4.6.1a-35
 - update to new CVS snapshot
 - fix IPv6 patch (should fix #206234 and #213212), thanks to Dan Kopecek
@@ -606,7 +610,7 @@
 - fix a bunch of buffer overflows and memory leaks (CAN-2004-0226)
 - fix hardlink handling in cpio filesystem
 - fix handling of filenames with single/double quotes and backslashes
-  in %{_datadir}/mc/extfs/rpm
+  in %%{_datadir}/mc/extfs/rpm
 - update php.syntax file (#112645)
 - fix crash with large syntax file (#112644)
 - update CAN-2003-1023 fix to still make vfs symlinks relative,
@@ -779,7 +783,7 @@
 - Updated Japanese translation.
 
 * Sun Jan 14 2001 Florian La Roche <Florian.LaRoche at redhat.de>
-- do not prereq %{_sysconfdir}/init.d
+- do not prereq %%{_sysconfdir}/init.d
 - do not require gpm for s390
 
 * Mon Aug 21 2000 Jonathan Blandford <jrb at redhat.com>
@@ -866,7 +870,7 @@
   script
 
 * Fri Sep 25 1999 Bill Nottingham <notting at redhat.com>
-- chkconfig --del in %preun, not %postun
+- chkconfig --del in %%preun, not %postun
 
 * Wed Sep 22 1999 Michael Fulbright <drmike at redhat.com>
 - updated to 4.5.39-pre9
@@ -914,7 +918,7 @@
 - patched so that TERM variable set to xterm produces color
 
 * Mon Mar 22 1999 Michael Fulbright <drmike at redhat.com>
-- made sure %{_sysconfdir}/pam.d/mcserv has right permissions
+- made sure %%{_sysconfdir}/pam.d/mcserv has right permissions
 
 * Thu Mar 18 1999 Michael Fulbright <drmike at redhat.com>
 - version 4.5.27
@@ -964,7 +968,7 @@
 - removed tkmc
 
 * Wed Apr 8 1998 Marc Ewing <marc at redhat.com>
-- add %{prefix}/lib/mc/layout to gmc
+- add %%{prefix}/lib/mc/layout to gmc
 
 * Tue Dec 23 1997 Tomasz KÅ‚oczko <kloczek at rudy.mif.pg.gda.pl>
 - added --without-debug to configure,
@@ -993,10 +997,10 @@
 * Sun Oct 26 1997 Tomasz KÅ‚oczko <kloczek at rudy.mif.pg.gda.pl>
 
 - updated to 4.1.6
-- added %attr macros in %%files,
+- added %%attr macros in %%files,
 - a few simplification in %%install,
 - removed glibc patch,
-- fixed installing %{_sysconfdir}/X11/wmconfig/tkmc.
+- fixed installing %%{_sysconfdir}/X11/wmconfig/tkmc.
 
 * Thu Oct 23 1997 Michael K. Johnson <johnsonm at redhat.com>
 
@@ -1020,17 +1024,17 @@
 
 * Thu May 22 1997 Michele Marziani <marziani at fe.infn.it>
 
-- added support for mc alias in %{_sysconfdir}/profile.d/mc.csh (for csh and tcsh)
-- lowered number of SysV init scripts in %{_sysconfdir}/rc.d/rc[0,1,6].d
+- added support for mc alias in %%{_sysconfdir}/profile.d/mc.csh (for csh and tcsh)
+- lowered number of SysV init scripts in %%{_sysconfdir}/rc.d/rc[0,1,6].d
   (mcserv needs to be killed before inet)
-- removed all references to $RPM_SOURCE_DIR
+- removed all references to RPM_SOURCE_DIR
 - restored $RPM_OPT_FLAGS when compiling
 - minor cleanup of spec file: redundant directives and comments removed
 
 * Sun May 18 1997 Michele Marziani <marziani at fe.infn.it>
 
 - removed all references to non-existent mc.rpmfs
-- added mcedit.1 to the %files section
+- added mcedit.1 to the %%files section
 - reverted to un-gzipped man pages (RedHat style)
 - removed double install line for mcserv.pamd
 
@@ -1038,10 +1042,10 @@
 
 - added new rpmfs script,
 - removed mcfn_install from mc (adding mc() to bash enviroment is in
-  %{_sysconfdir}/profile.d/mc.sh),
-- %{_sysconfdir}/profile.d/mc.sh changed to %config,
-- removed %{prefix}/lib/mc/bin/create_vcs,
-- removed %{prefix}/lib/mc/term.
+  %%{_sysconfdir}/profile.d/mc.sh),
+- %%{_sysconfdir}/profile.d/mc.sh changed to %%config,
+- removed %%{prefix}/lib/mc/bin/create_vcs,
+- removed %%{prefix}/lib/mc/term.
 
 * Wed May 9 1997 Tomasz KÅ‚oczko <kloczek at rudy.mif.pg.gda.pl>
 
@@ -1051,23 +1055,23 @@
 * Tue May 7 1997 Tomasz KÅ‚oczko <kloczek at rudy.mif.pg.gda.pl>
 
 - new version 3.5.27,
-- %dir %{prefix}/lib/mc/icons and icons removed from tkmc,
+- %%dir %%{prefix}/lib/mc/icons and icons removed from tkmc,
 - added commented xmc part.
 
 * Tue Apr 22 1997 Tomasz KÅ‚oczko <kloczek at rudy.mif.pg.gda.pl>
 
 - FIX spec:
    - added URL field,
-   - in mc added missing %{prefix}/lib/mc/mc.ext, %{prefix}/lib/mc/mc.hint,
-     %{prefix}/lib/mc/mc.hlp, %{prefix}/lib/mc/mc.lib, %{prefix}/lib/mc/mc.menu.
+   - in mc added missing %%{prefix}/lib/mc/mc.ext, %%{prefix}/lib/mc/mc.hint,
+     %%{prefix}/lib/mc/mc.hlp, %%{prefix}/lib/mc/mc.lib, %%{prefix}/lib/mc/mc.menu.
 
 * Fri Apr 18 1997 Tomasz KÅ‚oczko <kloczek at rudy.mif.pg.gda.pl>
 
 - added making packages: tkmc, mcserv (xmc not work yet),
 - gziped man pages,
-- added %{_sysconfdir}/pamd.d/mcserv PAM config file.
+- added %%{_sysconfdir}/pamd.d/mcserv PAM config file.
 - added instaling icons,
-- added %{_sysconfdir}/profile.d/mc.sh,
-- in %doc added NEWS README,
-- removed %{prefix}/lib/mc/FAQ,
+- added %%{_sysconfdir}/profile.d/mc.sh,
+- in %%doc added NEWS README,
+- removed %%{prefix}/lib/mc/FAQ,
 - added mcserv.init script for mcserv (start/stop on level 86).




More information about the fedora-cvs-commits mailing list