Karsten Hopp f598ff
To: vim-dev@vim.org
Karsten Hopp f598ff
Subject: Patch 7.2.055
Karsten Hopp f598ff
Fcc: outbox
Karsten Hopp f598ff
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp f598ff
Mime-Version: 1.0
Karsten Hopp f598ff
Content-Type: text/plain; charset=ISO-8859-1
Karsten Hopp f598ff
Content-Transfer-Encoding: 8bit
Karsten Hopp f598ff
------------
Karsten Hopp f598ff
Karsten Hopp f598ff
Patch 7.2.055
Karsten Hopp f598ff
Problem:    Various compiler warnings with strict checking.
Karsten Hopp f598ff
Solution:   Avoid the warnings by using return values and renaming.
Karsten Hopp f598ff
Files:	    src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
Karsten Hopp f598ff
	    src/fileio.c, src/fold.c, src/globals.h, src/gui.c,
Karsten Hopp f598ff
	    src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c,
Karsten Hopp f598ff
	    src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c,
Karsten Hopp f598ff
	    src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c,
Karsten Hopp f598ff
	    src/ui.c, src/window.c
Karsten Hopp f598ff
Karsten Hopp f598ff
Karsten Hopp f598ff
*** ../vim-7.2.054/src/diff.c	Fri Jan 18 17:39:32 2008
Karsten Hopp f598ff
--- src/diff.c	Fri Nov 28 17:23:35 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 661,666 ****
Karsten Hopp f598ff
--- 665,671 ----
Karsten Hopp f598ff
      char_u	*tmp_diff;
Karsten Hopp f598ff
      FILE	*fd;
Karsten Hopp f598ff
      int		ok;
Karsten Hopp f598ff
+     int		io_error = FALSE;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
      /* Delete all diffblocks. */
Karsten Hopp f598ff
      diff_clear(curtab);
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 697,714 ****
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	ok = FALSE;
Karsten Hopp f598ff
  	fd = mch_fopen((char *)tmp_orig, "w");
Karsten Hopp f598ff
! 	if (fd != NULL)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    fwrite("line1\n", (size_t)6, (size_t)1, fd);
Karsten Hopp f598ff
  	    fclose(fd);
Karsten Hopp f598ff
  	    fd = mch_fopen((char *)tmp_new, "w");
Karsten Hopp f598ff
! 	    if (fd != NULL)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
! 		fwrite("line2\n", (size_t)6, (size_t)1, fd);
Karsten Hopp f598ff
  		fclose(fd);
Karsten Hopp f598ff
  		diff_file(tmp_orig, tmp_new, tmp_diff);
Karsten Hopp f598ff
  		fd = mch_fopen((char *)tmp_diff, "r");
Karsten Hopp f598ff
! 		if (fd != NULL)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
  		    char_u	linebuf[LBUFLEN];
Karsten Hopp f598ff
  
Karsten Hopp f598ff
--- 702,727 ----
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	ok = FALSE;
Karsten Hopp f598ff
  	fd = mch_fopen((char *)tmp_orig, "w");
Karsten Hopp f598ff
! 	if (fd == NULL)
Karsten Hopp f598ff
! 	    io_error = TRUE;
Karsten Hopp f598ff
! 	else
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 1)
Karsten Hopp f598ff
! 		io_error = TRUE;
Karsten Hopp f598ff
  	    fclose(fd);
Karsten Hopp f598ff
  	    fd = mch_fopen((char *)tmp_new, "w");
Karsten Hopp f598ff
! 	    if (fd == NULL)
Karsten Hopp f598ff
! 		io_error = TRUE;
Karsten Hopp f598ff
! 	    else
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
! 		if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1)
Karsten Hopp f598ff
! 		    io_error = TRUE;
Karsten Hopp f598ff
  		fclose(fd);
Karsten Hopp f598ff
  		diff_file(tmp_orig, tmp_new, tmp_diff);
Karsten Hopp f598ff
  		fd = mch_fopen((char *)tmp_diff, "r");
Karsten Hopp f598ff
! 		if (fd == NULL)
Karsten Hopp f598ff
! 		    io_error = TRUE;
Karsten Hopp f598ff
! 		else
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
  		    char_u	linebuf[LBUFLEN];
Karsten Hopp f598ff
  
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 761,766 ****
Karsten Hopp f598ff
--- 774,781 ----
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      if (!ok)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
+ 	if (io_error)
Karsten Hopp f598ff
+ 	    EMSG(_("E810: Cannot read or write temp files"));
Karsten Hopp f598ff
  	EMSG(_("E97: Cannot create diffs"));
Karsten Hopp f598ff
  	diff_a_works = MAYBE;
Karsten Hopp f598ff
  #if defined(MSWIN) || defined(MSDOS)
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 925,934 ****
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  # ifdef TEMPDIRNAMES
Karsten Hopp f598ff
  	if (vim_tempdir != NULL)
Karsten Hopp f598ff
! 	    mch_chdir((char *)vim_tempdir);
Karsten Hopp f598ff
  	else
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
! 	    mch_chdir("/tmp");
Karsten Hopp f598ff
  	shorten_fnames(TRUE);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
--- 940,949 ----
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  # ifdef TEMPDIRNAMES
Karsten Hopp f598ff
  	if (vim_tempdir != NULL)
Karsten Hopp f598ff
! 	    ignored = mch_chdir((char *)vim_tempdir);
Karsten Hopp f598ff
  	else
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
! 	    ignored = mch_chdir("/tmp");
Karsten Hopp f598ff
  	shorten_fnames(TRUE);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
*** ../vim-7.2.054/src/eval.c	Fri Nov 28 11:15:10 2008
Karsten Hopp f598ff
--- src/eval.c	Fri Nov 28 12:23:13 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 10641,10647 ****
Karsten Hopp f598ff
  # ifdef FEAT_WINDOWS
Karsten Hopp f598ff
  	    win_T	*wp;
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
! 	    int		n = 1;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    if (row >= 0 && col >= 0)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
--- 10641,10647 ----
Karsten Hopp f598ff
  # ifdef FEAT_WINDOWS
Karsten Hopp f598ff
  	    win_T	*wp;
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
! 	    int		winnr = 1;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    if (row >= 0 && col >= 0)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 10651,10659 ****
Karsten Hopp f598ff
  		(void)mouse_comp_pos(win, &row, &col, &lnum);
Karsten Hopp f598ff
  # ifdef FEAT_WINDOWS
Karsten Hopp f598ff
  		for (wp = firstwin; wp != win; wp = wp->w_next)
Karsten Hopp f598ff
! 		    ++n;
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
! 		vimvars[VV_MOUSE_WIN].vv_nr = n;
Karsten Hopp f598ff
  		vimvars[VV_MOUSE_LNUM].vv_nr = lnum;
Karsten Hopp f598ff
  		vimvars[VV_MOUSE_COL].vv_nr = col + 1;
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
--- 10651,10659 ----
Karsten Hopp f598ff
  		(void)mouse_comp_pos(win, &row, &col, &lnum);
Karsten Hopp f598ff
  # ifdef FEAT_WINDOWS
Karsten Hopp f598ff
  		for (wp = firstwin; wp != win; wp = wp->w_next)
Karsten Hopp f598ff
! 		    ++winnr;
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
! 		vimvars[VV_MOUSE_WIN].vv_nr = winnr;
Karsten Hopp f598ff
  		vimvars[VV_MOUSE_LNUM].vv_nr = lnum;
Karsten Hopp f598ff
  		vimvars[VV_MOUSE_COL].vv_nr = col + 1;
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
*** ../vim-7.2.054/src/ex_cmds.c	Sat Nov 15 14:10:23 2008
Karsten Hopp f598ff
--- src/ex_cmds.c	Fri Nov 28 17:24:08 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1941,1947 ****
Karsten Hopp f598ff
  	     * root.
Karsten Hopp f598ff
  	     */
Karsten Hopp f598ff
  	    if (fp_out != NULL)
Karsten Hopp f598ff
! 		(void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid);
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
--- 1941,1947 ----
Karsten Hopp f598ff
  	     * root.
Karsten Hopp f598ff
  	     */
Karsten Hopp f598ff
  	    if (fp_out != NULL)
Karsten Hopp f598ff
! 		ignored = fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid);
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
*** ../vim-7.2.054/src/ex_docmd.c	Sat Nov 15 14:10:23 2008
Karsten Hopp f598ff
--- src/ex_docmd.c	Fri Nov 28 17:26:13 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 8753,8760 ****
Karsten Hopp f598ff
  		else if (*dirnow != NUL
Karsten Hopp f598ff
  			&& (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
! 		    (void)mch_chdir((char *)globaldir);
Karsten Hopp f598ff
! 		    shorten_fnames(TRUE);
Karsten Hopp f598ff
  		}
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		failed |= (makeopens(fd, dirnow) == FAIL);
Karsten Hopp f598ff
--- 8753,8760 ----
Karsten Hopp f598ff
  		else if (*dirnow != NUL
Karsten Hopp f598ff
  			&& (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
! 		    if (mch_chdir((char *)globaldir) == OK)
Karsten Hopp f598ff
! 			shorten_fnames(TRUE);
Karsten Hopp f598ff
  		}
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		failed |= (makeopens(fd, dirnow) == FAIL);
Karsten Hopp f598ff
*** ../vim-7.2.054/src/fileio.c	Wed Nov 12 16:04:43 2008
Karsten Hopp f598ff
--- src/fileio.c	Fri Nov 28 17:35:54 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 2214,2220 ****
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	/* Use stderr for stdin, makes shell commands work. */
Karsten Hopp f598ff
  	close(0);
Karsten Hopp f598ff
! 	dup(2);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  
Karsten Hopp f598ff
--- 2214,2220 ----
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	/* Use stderr for stdin, makes shell commands work. */
Karsten Hopp f598ff
  	close(0);
Karsten Hopp f598ff
! 	ignored = dup(2);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 3449,3455 ****
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
  # ifdef UNIX
Karsten Hopp f598ff
  #  ifdef HAVE_FCHOWN
Karsten Hopp f598ff
! 		    fchown(fd, st_old.st_uid, st_old.st_gid);
Karsten Hopp f598ff
  #  endif
Karsten Hopp f598ff
  		    if (mch_stat((char *)IObuff, &st) < 0
Karsten Hopp f598ff
  			    || st.st_uid != st_old.st_uid
Karsten Hopp f598ff
--- 3449,3455 ----
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
  # ifdef UNIX
Karsten Hopp f598ff
  #  ifdef HAVE_FCHOWN
Karsten Hopp f598ff
! 		    ignored = fchown(fd, st_old.st_uid, st_old.st_gid);
Karsten Hopp f598ff
  #  endif
Karsten Hopp f598ff
  		    if (mch_stat((char *)IObuff, &st) < 0
Karsten Hopp f598ff
  			    || st.st_uid != st_old.st_uid
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4365,4371 ****
Karsten Hopp f598ff
  		|| st.st_uid != st_old.st_uid
Karsten Hopp f598ff
  		|| st.st_gid != st_old.st_gid)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    fchown(fd, st_old.st_uid, st_old.st_gid);
Karsten Hopp f598ff
  	    if (perm >= 0)	/* set permission again, may have changed */
Karsten Hopp f598ff
  		(void)mch_setperm(wfname, perm);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
--- 4365,4371 ----
Karsten Hopp f598ff
  		|| st.st_uid != st_old.st_uid
Karsten Hopp f598ff
  		|| st.st_gid != st_old.st_gid)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    ignored = fchown(fd, st_old.st_uid, st_old.st_gid);
Karsten Hopp f598ff
  	    if (perm >= 0)	/* set permission again, may have changed */
Karsten Hopp f598ff
  		(void)mch_setperm(wfname, perm);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 6030,6038 ****
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    tbuf[FGETS_SIZE - 2] = NUL;
Karsten Hopp f598ff
  #ifdef USE_CR
Karsten Hopp f598ff
! 	    fgets_cr((char *)tbuf, FGETS_SIZE, fp);
Karsten Hopp f598ff
  #else
Karsten Hopp f598ff
! 	    fgets((char *)tbuf, FGETS_SIZE, fp);
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  	} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
--- 6030,6038 ----
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    tbuf[FGETS_SIZE - 2] = NUL;
Karsten Hopp f598ff
  #ifdef USE_CR
Karsten Hopp f598ff
! 	    ignoredp = fgets_cr((char *)tbuf, FGETS_SIZE, fp);
Karsten Hopp f598ff
  #else
Karsten Hopp f598ff
! 	    ignoredp = fgets((char *)tbuf, FGETS_SIZE, fp);
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  	} while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
*** ../vim-7.2.054/src/fold.c	Wed Aug  6 18:59:40 2008
Karsten Hopp f598ff
--- src/fold.c	Fri Nov 28 12:24:16 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 48,54 ****
Karsten Hopp f598ff
  static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp));
Karsten Hopp f598ff
  static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum));
Karsten Hopp f598ff
  static void checkupdate __ARGS((win_T *wp));
Karsten Hopp f598ff
! static void setFoldRepeat __ARGS((linenr_T lnum, long count, int open));
Karsten Hopp f598ff
  static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep));
Karsten Hopp f598ff
  static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep));
Karsten Hopp f598ff
  static void foldOpenNested __ARGS((fold_T *fpr));
Karsten Hopp f598ff
--- 48,54 ----
Karsten Hopp f598ff
  static int foldFind __ARGS((garray_T *gap, linenr_T lnum, fold_T **fpp));
Karsten Hopp f598ff
  static int foldLevelWin __ARGS((win_T *wp, linenr_T lnum));
Karsten Hopp f598ff
  static void checkupdate __ARGS((win_T *wp));
Karsten Hopp f598ff
! static void setFoldRepeat __ARGS((linenr_T lnum, long count, int do_open));
Karsten Hopp f598ff
  static linenr_T setManualFold __ARGS((linenr_T lnum, int opening, int recurse, int *donep));
Karsten Hopp f598ff
  static linenr_T setManualFoldWin __ARGS((win_T *wp, linenr_T lnum, int opening, int recurse, int *donep));
Karsten Hopp f598ff
  static void foldOpenNested __ARGS((fold_T *fpr));
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1241,1250 ****
Karsten Hopp f598ff
   * Repeat "count" times.
Karsten Hopp f598ff
   */
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! setFoldRepeat(lnum, count, open)
Karsten Hopp f598ff
      linenr_T	lnum;
Karsten Hopp f598ff
      long	count;
Karsten Hopp f598ff
!     int		open;
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
      int		done;
Karsten Hopp f598ff
      long	n;
Karsten Hopp f598ff
--- 1241,1250 ----
Karsten Hopp f598ff
   * Repeat "count" times.
Karsten Hopp f598ff
   */
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! setFoldRepeat(lnum, count, do_open)
Karsten Hopp f598ff
      linenr_T	lnum;
Karsten Hopp f598ff
      long	count;
Karsten Hopp f598ff
!     int		do_open;
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
      int		done;
Karsten Hopp f598ff
      long	n;
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1252,1258 ****
Karsten Hopp f598ff
      for (n = 0; n < count; ++n)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	done = DONE_NOTHING;
Karsten Hopp f598ff
! 	(void)setManualFold(lnum, open, FALSE, &done);
Karsten Hopp f598ff
  	if (!(done & DONE_ACTION))
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    /* Only give an error message when no fold could be opened. */
Karsten Hopp f598ff
--- 1252,1258 ----
Karsten Hopp f598ff
      for (n = 0; n < count; ++n)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	done = DONE_NOTHING;
Karsten Hopp f598ff
! 	(void)setManualFold(lnum, do_open, FALSE, &done);
Karsten Hopp f598ff
  	if (!(done & DONE_ACTION))
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    /* Only give an error message when no fold could be opened. */
Karsten Hopp f598ff
*** ../vim-7.2.054/src/globals.h	Thu Sep 18 21:29:07 2008
Karsten Hopp f598ff
--- src/globals.h	Fri Nov 28 17:35:50 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1549,1554 ****
Karsten Hopp f598ff
--- 1549,1562 ----
Karsten Hopp f598ff
  EXTERN time_t starttime;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*
Karsten Hopp f598ff
+  * Some compilers warn for not using a return value, but in some situations we
Karsten Hopp f598ff
+  * can't do anything useful with the value.  Assign to this variable to avoid
Karsten Hopp f598ff
+  * the warning.
Karsten Hopp f598ff
+  */
Karsten Hopp f598ff
+ EXTERN int ignored;
Karsten Hopp f598ff
+ EXTERN char *ignoredp;
Karsten Hopp f598ff
+ 
Karsten Hopp f598ff
+ /*
Karsten Hopp f598ff
   * Optional Farsi support.  Include it here, so EXTERN and INIT are defined.
Karsten Hopp f598ff
   */
Karsten Hopp f598ff
  #ifdef FEAT_FKMAP
Karsten Hopp f598ff
*** ../vim-7.2.054/src/gui.c	Wed Aug  6 14:37:26 2008
Karsten Hopp f598ff
--- src/gui.c	Fri Nov 28 18:48:31 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 139,145 ****
Karsten Hopp f598ff
  		/* The read returns when the child closes the pipe (or when
Karsten Hopp f598ff
  		 * the child dies for some reason). */
Karsten Hopp f598ff
  		close(pipefd[1]);
Karsten Hopp f598ff
! 		(void)read(pipefd[0], &dummy, (size_t)1);
Karsten Hopp f598ff
  		close(pipefd[0]);
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
--- 139,145 ----
Karsten Hopp f598ff
  		/* The read returns when the child closes the pipe (or when
Karsten Hopp f598ff
  		 * the child dies for some reason). */
Karsten Hopp f598ff
  		close(pipefd[1]);
Karsten Hopp f598ff
! 		ignored = (int)read(pipefd[0], &dummy, (size_t)1);
Karsten Hopp f598ff
  		close(pipefd[0]);
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
*** ../vim-7.2.054/src/gui_at_sb.c	Sun Jun 13 21:37:13 2004
Karsten Hopp f598ff
--- src/gui_at_sb.c	Fri Nov 28 12:19:19 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1078,1083 ****
Karsten Hopp f598ff
--- 1078,1089 ----
Karsten Hopp f598ff
      Cardinal	*num_params;	/* unused */
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
      ScrollbarWidget sbw = (ScrollbarWidget)w;
Karsten Hopp f598ff
+     /* Use a union to avoid a warning for the weird conversion from float to
Karsten Hopp f598ff
+      * XtPointer.  Comes from Xaw/Scrollbar.c. */
Karsten Hopp f598ff
+     union {
Karsten Hopp f598ff
+ 	XtPointer xtp;
Karsten Hopp f598ff
+ 	float xtf;
Karsten Hopp f598ff
+     } xtpf;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
      if (LookAhead(w, event))
Karsten Hopp f598ff
  	return;
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1085,1091 ****
Karsten Hopp f598ff
      /* thumbProc is not pretty, but is necessary for backwards
Karsten Hopp f598ff
         compatibility on those architectures for which it work{s,ed};
Karsten Hopp f598ff
         the intent is to pass a (truncated) float by value. */
Karsten Hopp f598ff
!     XtCallCallbacks(w, XtNthumbProc, *(XtPointer*)&sbw->scrollbar.top);
Karsten Hopp f598ff
      XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top);
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
--- 1091,1098 ----
Karsten Hopp f598ff
      /* thumbProc is not pretty, but is necessary for backwards
Karsten Hopp f598ff
         compatibility on those architectures for which it work{s,ed};
Karsten Hopp f598ff
         the intent is to pass a (truncated) float by value. */
Karsten Hopp f598ff
!     xtpf.xtf = sbw->scrollbar.top;
Karsten Hopp f598ff
!     XtCallCallbacks(w, XtNthumbProc, xtpf.xtp);
Karsten Hopp f598ff
      XtCallCallbacks(w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top);
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
*** ../vim-7.2.054/src/gui_gtk_x11.c	Tue Jul  8 12:46:08 2008
Karsten Hopp f598ff
--- src/gui_gtk_x11.c	Fri Nov 28 21:06:38 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4070,4083 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	if (mask & (XValue | YValue))
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    int w, h;
Karsten Hopp f598ff
! 	    gui_mch_get_screen_dimensions(&w, &h);
Karsten Hopp f598ff
! 	    h += p_ghr + get_menu_tool_height();
Karsten Hopp f598ff
! 	    w += get_menu_tool_width();
Karsten Hopp f598ff
  	    if (mask & XNegative)
Karsten Hopp f598ff
! 		x += w - pixel_width;
Karsten Hopp f598ff
  	    if (mask & YNegative)
Karsten Hopp f598ff
! 		y += h - pixel_height;
Karsten Hopp f598ff
  #ifdef HAVE_GTK2
Karsten Hopp f598ff
  	    gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
Karsten Hopp f598ff
  #else
Karsten Hopp f598ff
--- 4070,4083 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	if (mask & (XValue | YValue))
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    int ww, hh;
Karsten Hopp f598ff
! 	    gui_mch_get_screen_dimensions(&ww, &hh;;
Karsten Hopp f598ff
! 	    hh += p_ghr + get_menu_tool_height();
Karsten Hopp f598ff
! 	    ww += get_menu_tool_width();
Karsten Hopp f598ff
  	    if (mask & XNegative)
Karsten Hopp f598ff
! 		x += ww - pixel_width;
Karsten Hopp f598ff
  	    if (mask & YNegative)
Karsten Hopp f598ff
! 		y += hh - pixel_height;
Karsten Hopp f598ff
  #ifdef HAVE_GTK2
Karsten Hopp f598ff
  	    gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
Karsten Hopp f598ff
  #else
Karsten Hopp f598ff
*** ../vim-7.2.054/src/gui_xmdlg.c	Tue Jun 24 23:39:32 2008
Karsten Hopp f598ff
--- src/gui_xmdlg.c	Fri Nov 28 21:04:08 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 369,378 ****
Karsten Hopp f598ff
      char	buf[TEMP_BUF_SIZE];
Karsten Hopp f598ff
      XmString	items[MAX_ENTRIES_IN_LIST];
Karsten Hopp f598ff
      int		i;
Karsten Hopp f598ff
!     int		index;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
!     for (index = (int)ENCODING; index < (int)NONE; ++index)
Karsten Hopp f598ff
! 	count[index] = 0;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
      /* First we insert the wild char into every single list. */
Karsten Hopp f598ff
      if (fix != ENCODING)
Karsten Hopp f598ff
--- 369,378 ----
Karsten Hopp f598ff
      char	buf[TEMP_BUF_SIZE];
Karsten Hopp f598ff
      XmString	items[MAX_ENTRIES_IN_LIST];
Karsten Hopp f598ff
      int		i;
Karsten Hopp f598ff
!     int		idx;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
!     for (idx = (int)ENCODING; idx < (int)NONE; ++idx)
Karsten Hopp f598ff
! 	count[idx] = 0;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
      /* First we insert the wild char into every single list. */
Karsten Hopp f598ff
      if (fix != ENCODING)
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 503,516 ****
Karsten Hopp f598ff
      /*
Karsten Hopp f598ff
       * Now loop trough the remaining lists and set them up.
Karsten Hopp f598ff
       */
Karsten Hopp f598ff
!     for (index = (int)NAME; index < (int)NONE; ++index)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	Widget w;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	if (fix == (enum ListSpecifier)index)
Karsten Hopp f598ff
  	    continue;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	switch ((enum ListSpecifier)index)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    case NAME:
Karsten Hopp f598ff
  		w = data->list[NAME];
Karsten Hopp f598ff
--- 503,516 ----
Karsten Hopp f598ff
      /*
Karsten Hopp f598ff
       * Now loop trough the remaining lists and set them up.
Karsten Hopp f598ff
       */
Karsten Hopp f598ff
!     for (idx = (int)NAME; idx < (int)NONE; ++idx)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	Widget w;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	if (fix == (enum ListSpecifier)idx)
Karsten Hopp f598ff
  	    continue;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	switch ((enum ListSpecifier)idx)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    case NAME:
Karsten Hopp f598ff
  		w = data->list[NAME];
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 525,545 ****
Karsten Hopp f598ff
  		w = (Widget)0;	/* for lint */
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	for (i = 0; i < count[index]; ++i)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    items[i] = XmStringCreateLocalized(list[index][i]);
Karsten Hopp f598ff
! 	    XtFree(list[index][i]);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
  	XmListDeleteAllItems(w);
Karsten Hopp f598ff
! 	XmListAddItems(w, items, count[index], 1);
Karsten Hopp f598ff
! 	if (data->sel[index])
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    XmStringFree(items[0]);
Karsten Hopp f598ff
! 	    items[0] = XmStringCreateLocalized(data->sel[index]);
Karsten Hopp f598ff
  	    XmListSelectItem(w, items[0], False);
Karsten Hopp f598ff
  	    XmListSetBottomItem(w, items[0]);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
! 	for (i = 0; i < count[index]; ++i)
Karsten Hopp f598ff
  	    XmStringFree(items[i]);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
--- 525,545 ----
Karsten Hopp f598ff
  		w = (Widget)0;	/* for lint */
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	for (i = 0; i < count[idx]; ++i)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    items[i] = XmStringCreateLocalized(list[idx][i]);
Karsten Hopp f598ff
! 	    XtFree(list[idx][i]);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
  	XmListDeleteAllItems(w);
Karsten Hopp f598ff
! 	XmListAddItems(w, items, count[idx], 1);
Karsten Hopp f598ff
! 	if (data->sel[idx])
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    XmStringFree(items[0]);
Karsten Hopp f598ff
! 	    items[0] = XmStringCreateLocalized(data->sel[idx]);
Karsten Hopp f598ff
  	    XmListSelectItem(w, items[0], False);
Karsten Hopp f598ff
  	    XmListSetBottomItem(w, items[0]);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
! 	for (i = 0; i < count[idx]; ++i)
Karsten Hopp f598ff
  	    XmStringFree(items[i]);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 695,708 ****
Karsten Hopp f598ff
  	int	    n;
Karsten Hopp f598ff
  	XmString    str;
Karsten Hopp f598ff
  	Arg	    args[4];
Karsten Hopp f598ff
! 	char	    *msg = _("no specific match");
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	n = 0;
Karsten Hopp f598ff
! 	str = XmStringCreateLocalized(msg);
Karsten Hopp f598ff
  	XtSetArg(args[n], XmNlabelString, str); ++n;
Karsten Hopp f598ff
  	XtSetValues(data->sample, args, n);
Karsten Hopp f598ff
  	apply_fontlist(data->sample);
Karsten Hopp f598ff
! 	XmTextSetString(data->name, msg);
Karsten Hopp f598ff
  	XmStringFree(str);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	return False;
Karsten Hopp f598ff
--- 695,708 ----
Karsten Hopp f598ff
  	int	    n;
Karsten Hopp f598ff
  	XmString    str;
Karsten Hopp f598ff
  	Arg	    args[4];
Karsten Hopp f598ff
! 	char	    *nomatch_msg = _("no specific match");
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	n = 0;
Karsten Hopp f598ff
! 	str = XmStringCreateLocalized(nomatch_msg);
Karsten Hopp f598ff
  	XtSetArg(args[n], XmNlabelString, str); ++n;
Karsten Hopp f598ff
  	XtSetValues(data->sample, args, n);
Karsten Hopp f598ff
  	apply_fontlist(data->sample);
Karsten Hopp f598ff
! 	XmTextSetString(data->name, nomatch_msg);
Karsten Hopp f598ff
  	XmStringFree(str);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	return False;
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 886,906 ****
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	int	i;
Karsten Hopp f598ff
  	int	max;
Karsten Hopp f598ff
! 	int	index = 0;
Karsten Hopp f598ff
  	int	size;
Karsten Hopp f598ff
! 	char	str[128];
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	for (i = 0, max = 0; i < data->num; i++)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    get_part(fn(data, i), 7, str);
Karsten Hopp f598ff
! 	    size = atoi(str);
Karsten Hopp f598ff
  	    if ((size > max) && (size < MAX_DISPLAY_SIZE))
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
! 		index = i;
Karsten Hopp f598ff
  		max = size;
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
! 	strcpy(big_font, fn(data, index));
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      data->old = XLoadQueryFont(XtDisplay(parent), big_font);
Karsten Hopp f598ff
      data->old_list = gui_motif_create_fontlist(data->old);
Karsten Hopp f598ff
--- 886,906 ----
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	int	i;
Karsten Hopp f598ff
  	int	max;
Karsten Hopp f598ff
! 	int	idx = 0;
Karsten Hopp f598ff
  	int	size;
Karsten Hopp f598ff
! 	char	buf[128];
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	for (i = 0, max = 0; i < data->num; i++)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    get_part(fn(data, i), 7, buf);
Karsten Hopp f598ff
! 	    size = atoi(buf);
Karsten Hopp f598ff
  	    if ((size > max) && (size < MAX_DISPLAY_SIZE))
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
! 		idx = i;
Karsten Hopp f598ff
  		max = size;
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
! 	strcpy(big_font, fn(data, idx));
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      data->old = XLoadQueryFont(XtDisplay(parent), big_font);
Karsten Hopp f598ff
      data->old_list = gui_motif_create_fontlist(data->old);
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1217,1244 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	if (i != 0)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    char name[TEMP_BUF_SIZE];
Karsten Hopp f598ff
! 	    char style[TEMP_BUF_SIZE];
Karsten Hopp f598ff
! 	    char size[TEMP_BUF_SIZE];
Karsten Hopp f598ff
! 	    char encoding[TEMP_BUF_SIZE];
Karsten Hopp f598ff
  	    char *found;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    found = names[0];
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	    name_part(found, name);
Karsten Hopp f598ff
! 	    style_part(found, style);
Karsten Hopp f598ff
! 	    size_part(found, size, data->in_pixels);
Karsten Hopp f598ff
! 	    encoding_part(found, encoding);
Karsten Hopp f598ff
! 
Karsten Hopp f598ff
! 	    if (strlen(name) > 0
Karsten Hopp f598ff
! 		    && strlen(style) > 0
Karsten Hopp f598ff
! 		    && strlen(size) > 0
Karsten Hopp f598ff
! 		    && strlen(encoding) > 0)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
! 		data->sel[NAME] = XtNewString(name);
Karsten Hopp f598ff
! 		data->sel[STYLE] = XtNewString(style);
Karsten Hopp f598ff
! 		data->sel[SIZE] = XtNewString(size);
Karsten Hopp f598ff
! 		data->sel[ENCODING] = XtNewString(encoding);
Karsten Hopp f598ff
  		data->font_name = XtNewString(names[0]);
Karsten Hopp f598ff
  		display_sample(data);
Karsten Hopp f598ff
  		XmTextSetString(data->name, data->font_name);
Karsten Hopp f598ff
--- 1217,1244 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	if (i != 0)
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
! 	    char namebuf[TEMP_BUF_SIZE];
Karsten Hopp f598ff
! 	    char stylebuf[TEMP_BUF_SIZE];
Karsten Hopp f598ff
! 	    char sizebuf[TEMP_BUF_SIZE];
Karsten Hopp f598ff
! 	    char encodingbuf[TEMP_BUF_SIZE];
Karsten Hopp f598ff
  	    char *found;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    found = names[0];
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 	    name_part(found, namebuf);
Karsten Hopp f598ff
! 	    style_part(found, stylebuf);
Karsten Hopp f598ff
! 	    size_part(found, sizebuf, data->in_pixels);
Karsten Hopp f598ff
! 	    encoding_part(found, encodingbuf);
Karsten Hopp f598ff
! 
Karsten Hopp f598ff
! 	    if (strlen(namebuf) > 0
Karsten Hopp f598ff
! 		    && strlen(stylebuf) > 0
Karsten Hopp f598ff
! 		    && strlen(sizebuf) > 0
Karsten Hopp f598ff
! 		    && strlen(encodingbuf) > 0)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
! 		data->sel[NAME] = XtNewString(namebuf);
Karsten Hopp f598ff
! 		data->sel[STYLE] = XtNewString(stylebuf);
Karsten Hopp f598ff
! 		data->sel[SIZE] = XtNewString(sizebuf);
Karsten Hopp f598ff
! 		data->sel[ENCODING] = XtNewString(encodingbuf);
Karsten Hopp f598ff
  		data->font_name = XtNewString(names[0]);
Karsten Hopp f598ff
  		display_sample(data);
Karsten Hopp f598ff
  		XmTextSetString(data->name, data->font_name);
Karsten Hopp f598ff
*** ../vim-7.2.054/src/gui_xmebw.c	Thu Nov  8 20:48:14 2007
Karsten Hopp f598ff
--- src/gui_xmebw.c	Fri Nov 28 18:58:53 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1256,1262 ****
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      else
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
! 	int adjust = 0;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  #if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
Karsten Hopp f598ff
  	/*
Karsten Hopp f598ff
--- 1256,1262 ----
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      else
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
! 	adjust = 0;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  #if !defined(LESSTIF_VERSION) && (XmVersion > 1002)
Karsten Hopp f598ff
  	/*
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1268,1279 ****
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    case XmEXTERNAL_HIGHLIGHT:
Karsten Hopp f598ff
  		adjust = (eb->primitive.highlight_thickness -
Karsten Hopp f598ff
! 			(eb->pushbutton.default_button_shadow_thickness ?
Karsten Hopp f598ff
! 			 Xm3D_ENHANCE_PIXEL : 0));
Karsten Hopp f598ff
  		break;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    case XmINTERNAL_HIGHLIGHT:
Karsten Hopp f598ff
- 		adjust = 0;
Karsten Hopp f598ff
  		break;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    default:
Karsten Hopp f598ff
--- 1268,1278 ----
Karsten Hopp f598ff
  	{
Karsten Hopp f598ff
  	    case XmEXTERNAL_HIGHLIGHT:
Karsten Hopp f598ff
  		adjust = (eb->primitive.highlight_thickness -
Karsten Hopp f598ff
! 			 (eb->pushbutton.default_button_shadow_thickness
Karsten Hopp f598ff
! 			  ?  Xm3D_ENHANCE_PIXEL : 0));
Karsten Hopp f598ff
  		break;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    case XmINTERNAL_HIGHLIGHT:
Karsten Hopp f598ff
  		break;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    default:
Karsten Hopp f598ff
*** ../vim-7.2.054/src/main.c	Thu Nov 20 14:11:47 2008
Karsten Hopp f598ff
--- src/main.c	Fri Nov 28 18:32:48 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 2372,2378 ****
Karsten Hopp f598ff
       * Is there any other system that cannot do this?
Karsten Hopp f598ff
       */
Karsten Hopp f598ff
      close(0);
Karsten Hopp f598ff
!     dup(2);
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
--- 2372,2378 ----
Karsten Hopp f598ff
       * Is there any other system that cannot do this?
Karsten Hopp f598ff
       */
Karsten Hopp f598ff
      close(0);
Karsten Hopp f598ff
!     ignored = dup(2);
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
*** ../vim-7.2.054/src/mbyte.c	Thu Nov 20 17:09:09 2008
Karsten Hopp f598ff
--- src/mbyte.c	Fri Nov 28 18:44:05 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 717,723 ****
Karsten Hopp f598ff
  		     * where mblen() returns 0 for invalid character.
Karsten Hopp f598ff
  		     * Therefore, following condition includes 0.
Karsten Hopp f598ff
  		     */
Karsten Hopp f598ff
! 		    (void)mblen(NULL, 0);	/* First reset the state. */
Karsten Hopp f598ff
  		    if (mblen(buf, (size_t)1) <= 0)
Karsten Hopp f598ff
  			n = 2;
Karsten Hopp f598ff
  		    else
Karsten Hopp f598ff
--- 717,723 ----
Karsten Hopp f598ff
  		     * where mblen() returns 0 for invalid character.
Karsten Hopp f598ff
  		     * Therefore, following condition includes 0.
Karsten Hopp f598ff
  		     */
Karsten Hopp f598ff
! 		    ignored = mblen(NULL, 0);	/* First reset the state. */
Karsten Hopp f598ff
  		    if (mblen(buf, (size_t)1) <= 0)
Karsten Hopp f598ff
  			n = 2;
Karsten Hopp f598ff
  		    else
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 5278,5284 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_start_cbproc(XIC xic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
  #ifdef XIM_DEBUG
Karsten Hopp f598ff
      xim_log("xim_decide_input_style()\n");
Karsten Hopp f598ff
--- 5278,5284 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_start_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
  #ifdef XIM_DEBUG
Karsten Hopp f598ff
      xim_log("xim_decide_input_style()\n");
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 5312,5318 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_draw_cbproc(XIC xic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
      XIMPreeditDrawCallbackStruct *draw_data;
Karsten Hopp f598ff
      XIMText	*text;
Karsten Hopp f598ff
--- 5312,5318 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_draw_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
      XIMPreeditDrawCallbackStruct *draw_data;
Karsten Hopp f598ff
      XIMText	*text;
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 5453,5459 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_caret_cbproc(XIC xic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
  #ifdef XIM_DEBUG
Karsten Hopp f598ff
      xim_log("preedit_caret_cbproc()\n");
Karsten Hopp f598ff
--- 5453,5459 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_caret_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
  #ifdef XIM_DEBUG
Karsten Hopp f598ff
      xim_log("preedit_caret_cbproc()\n");
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 5462,5468 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_done_cbproc(XIC xic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
  #ifdef XIM_DEBUG
Karsten Hopp f598ff
      xim_log("preedit_done_cbproc()\n");
Karsten Hopp f598ff
--- 5462,5468 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  /*ARGSUSED*/
Karsten Hopp f598ff
      static void
Karsten Hopp f598ff
! preedit_done_cbproc(XIC thexic, XPointer client_data, XPointer call_data)
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
  #ifdef XIM_DEBUG
Karsten Hopp f598ff
      xim_log("preedit_done_cbproc()\n");
Karsten Hopp f598ff
*** ../vim-7.2.054/src/message.c	Sun Jul 13 19:18:44 2008
Karsten Hopp f598ff
--- src/message.c	Fri Nov 28 12:26:56 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4585,4645 ****
Karsten Hopp f598ff
  			if (remove_trailing_zeroes)
Karsten Hopp f598ff
  			{
Karsten Hopp f598ff
  			    int i;
Karsten Hopp f598ff
! 			    char *p;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  			    /* Using %g or %G: remove superfluous zeroes. */
Karsten Hopp f598ff
  			    if (fmt_spec == 'f')
Karsten Hopp f598ff
! 				p = tmp + str_arg_l - 1;
Karsten Hopp f598ff
  			    else
Karsten Hopp f598ff
  			    {
Karsten Hopp f598ff
! 				p = (char *)vim_strchr((char_u *)tmp,
Karsten Hopp f598ff
  						 fmt_spec == 'e' ? 'e' : 'E');
Karsten Hopp f598ff
! 				if (p != NULL)
Karsten Hopp f598ff
  				{
Karsten Hopp f598ff
  				    /* Remove superfluous '+' and leading
Karsten Hopp f598ff
  				     * zeroes from the exponent. */
Karsten Hopp f598ff
! 				    if (p[1] == '+')
Karsten Hopp f598ff
  				    {
Karsten Hopp f598ff
  					/* Change "1.0e+07" to "1.0e07" */
Karsten Hopp f598ff
! 					STRMOVE(p + 1, p + 2);
Karsten Hopp f598ff
  					--str_arg_l;
Karsten Hopp f598ff
  				    }
Karsten Hopp f598ff
! 				    i = (p[1] == '-') ? 2 : 1;
Karsten Hopp f598ff
! 				    while (p[i] == '0')
Karsten Hopp f598ff
  				    {
Karsten Hopp f598ff
  					/* Change "1.0e07" to "1.0e7" */
Karsten Hopp f598ff
! 					STRMOVE(p + i, p + i + 1);
Karsten Hopp f598ff
  					--str_arg_l;
Karsten Hopp f598ff
  				    }
Karsten Hopp f598ff
! 				    --p;
Karsten Hopp f598ff
  				}
Karsten Hopp f598ff
  			    }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 			    if (p != NULL && !precision_specified)
Karsten Hopp f598ff
  				/* Remove trailing zeroes, but keep the one
Karsten Hopp f598ff
  				 * just after a dot. */
Karsten Hopp f598ff
! 				while (p > tmp + 2 && *p == '0' && p[-1] != '.')
Karsten Hopp f598ff
  				{
Karsten Hopp f598ff
! 				    STRMOVE(p, p + 1);
Karsten Hopp f598ff
! 				    --p;
Karsten Hopp f598ff
  				    --str_arg_l;
Karsten Hopp f598ff
  				}
Karsten Hopp f598ff
  			}
Karsten Hopp f598ff
  			else
Karsten Hopp f598ff
  			{
Karsten Hopp f598ff
! 			    char *p;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  			    /* Be consistent: some printf("%e") use 1.0e+12
Karsten Hopp f598ff
  			     * and some 1.0e+012.  Remove one zero in the last
Karsten Hopp f598ff
  			     * case. */
Karsten Hopp f598ff
! 			    p = (char *)vim_strchr((char_u *)tmp,
Karsten Hopp f598ff
  						 fmt_spec == 'e' ? 'e' : 'E');
Karsten Hopp f598ff
! 			    if (p != NULL && (p[1] == '+' || p[1] == '-')
Karsten Hopp f598ff
! 					  && p[2] == '0'
Karsten Hopp f598ff
! 					  && vim_isdigit(p[3])
Karsten Hopp f598ff
! 					  && vim_isdigit(p[4]))
Karsten Hopp f598ff
  			    {
Karsten Hopp f598ff
! 				STRMOVE(p + 2, p + 3);
Karsten Hopp f598ff
  				--str_arg_l;
Karsten Hopp f598ff
  			    }
Karsten Hopp f598ff
  			}
Karsten Hopp f598ff
--- 4585,4646 ----
Karsten Hopp f598ff
  			if (remove_trailing_zeroes)
Karsten Hopp f598ff
  			{
Karsten Hopp f598ff
  			    int i;
Karsten Hopp f598ff
! 			    char *tp;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  			    /* Using %g or %G: remove superfluous zeroes. */
Karsten Hopp f598ff
  			    if (fmt_spec == 'f')
Karsten Hopp f598ff
! 				tp = tmp + str_arg_l - 1;
Karsten Hopp f598ff
  			    else
Karsten Hopp f598ff
  			    {
Karsten Hopp f598ff
! 				tp = (char *)vim_strchr((char_u *)tmp,
Karsten Hopp f598ff
  						 fmt_spec == 'e' ? 'e' : 'E');
Karsten Hopp f598ff
! 				if (tp != NULL)
Karsten Hopp f598ff
  				{
Karsten Hopp f598ff
  				    /* Remove superfluous '+' and leading
Karsten Hopp f598ff
  				     * zeroes from the exponent. */
Karsten Hopp f598ff
! 				    if (tp[1] == '+')
Karsten Hopp f598ff
  				    {
Karsten Hopp f598ff
  					/* Change "1.0e+07" to "1.0e07" */
Karsten Hopp f598ff
! 					STRMOVE(tp + 1, tp + 2);
Karsten Hopp f598ff
  					--str_arg_l;
Karsten Hopp f598ff
  				    }
Karsten Hopp f598ff
! 				    i = (tp[1] == '-') ? 2 : 1;
Karsten Hopp f598ff
! 				    while (tp[i] == '0')
Karsten Hopp f598ff
  				    {
Karsten Hopp f598ff
  					/* Change "1.0e07" to "1.0e7" */
Karsten Hopp f598ff
! 					STRMOVE(tp + i, tp + i + 1);
Karsten Hopp f598ff
  					--str_arg_l;
Karsten Hopp f598ff
  				    }
Karsten Hopp f598ff
! 				    --tp;
Karsten Hopp f598ff
  				}
Karsten Hopp f598ff
  			    }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
! 			    if (tp != NULL && !precision_specified)
Karsten Hopp f598ff
  				/* Remove trailing zeroes, but keep the one
Karsten Hopp f598ff
  				 * just after a dot. */
Karsten Hopp f598ff
! 				while (tp > tmp + 2 && *tp == '0'
Karsten Hopp f598ff
! 							     && tp[-1] != '.')
Karsten Hopp f598ff
  				{
Karsten Hopp f598ff
! 				    STRMOVE(tp, tp + 1);
Karsten Hopp f598ff
! 				    --tp;
Karsten Hopp f598ff
  				    --str_arg_l;
Karsten Hopp f598ff
  				}
Karsten Hopp f598ff
  			}
Karsten Hopp f598ff
  			else
Karsten Hopp f598ff
  			{
Karsten Hopp f598ff
! 			    char *tp;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  			    /* Be consistent: some printf("%e") use 1.0e+12
Karsten Hopp f598ff
  			     * and some 1.0e+012.  Remove one zero in the last
Karsten Hopp f598ff
  			     * case. */
Karsten Hopp f598ff
! 			    tp = (char *)vim_strchr((char_u *)tmp,
Karsten Hopp f598ff
  						 fmt_spec == 'e' ? 'e' : 'E');
Karsten Hopp f598ff
! 			    if (tp != NULL && (tp[1] == '+' || tp[1] == '-')
Karsten Hopp f598ff
! 					  && tp[2] == '0'
Karsten Hopp f598ff
! 					  && vim_isdigit(tp[3])
Karsten Hopp f598ff
! 					  && vim_isdigit(tp[4]))
Karsten Hopp f598ff
  			    {
Karsten Hopp f598ff
! 				STRMOVE(tp + 2, tp + 3);
Karsten Hopp f598ff
  				--str_arg_l;
Karsten Hopp f598ff
  			    }
Karsten Hopp f598ff
  			}
Karsten Hopp f598ff
*** ../vim-7.2.054/src/netbeans.c	Sat Nov 15 14:10:23 2008
Karsten Hopp f598ff
--- src/netbeans.c	Fri Nov 28 18:51:43 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1043,1049 ****
Karsten Hopp f598ff
  	nbdebug(("EVT: %s", buf));
Karsten Hopp f598ff
  /*	nb_send(buf, "netbeans_end");    avoid "write failed" messages */
Karsten Hopp f598ff
  	if (sd >= 0)
Karsten Hopp f598ff
! 	    sock_write(sd, buf, (int)STRLEN(buf));  /* ignore errors */
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
--- 1043,1049 ----
Karsten Hopp f598ff
  	nbdebug(("EVT: %s", buf));
Karsten Hopp f598ff
  /*	nb_send(buf, "netbeans_end");    avoid "write failed" messages */
Karsten Hopp f598ff
  	if (sd >= 0)
Karsten Hopp f598ff
! 	    ignored = sock_write(sd, buf, (int)STRLEN(buf));
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 2277,2285 ****
Karsten Hopp f598ff
  	    int serNum;
Karsten Hopp f598ff
  	    int localTypeNum;
Karsten Hopp f598ff
  	    int typeNum;
Karsten Hopp f598ff
- # ifdef NBDEBUG
Karsten Hopp f598ff
- 	    int len;
Karsten Hopp f598ff
- # endif
Karsten Hopp f598ff
  	    pos_T *pos;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    if (buf == NULL || buf->bufp == NULL)
Karsten Hopp f598ff
--- 2277,2282 ----
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 2303,2315 ****
Karsten Hopp f598ff
  	    pos = get_off_or_lnum(buf->bufp, &args);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    cp = (char *)args;
Karsten Hopp f598ff
! # ifdef NBDEBUG
Karsten Hopp f598ff
! 	    len =
Karsten Hopp f598ff
! # endif
Karsten Hopp f598ff
! 		strtol(cp, &cp, 10);
Karsten Hopp f598ff
  	    args = (char_u *)cp;
Karsten Hopp f598ff
  # ifdef NBDEBUG
Karsten Hopp f598ff
! 	    if (len != -1)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
  		nbdebug(("    partial line annotation -- Not Yet Implemented!\n"));
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
--- 2300,2309 ----
Karsten Hopp f598ff
  	    pos = get_off_or_lnum(buf->bufp, &args);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  	    cp = (char *)args;
Karsten Hopp f598ff
! 	    ignored = (int)strtol(cp, &cp, 10);
Karsten Hopp f598ff
  	    args = (char_u *)cp;
Karsten Hopp f598ff
  # ifdef NBDEBUG
Karsten Hopp f598ff
! 	    if (ignored != -1)
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
  		nbdebug(("    partial line annotation -- Not Yet Implemented!\n"));
Karsten Hopp f598ff
  	    }
Karsten Hopp f598ff
*** ../vim-7.2.054/src/option.c	Sun Nov  9 13:43:25 2008
Karsten Hopp f598ff
--- src/option.c	Fri Nov 28 12:27:34 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 8232,8244 ****
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
  		if (number == 0 && string != NULL)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
! 		    int index;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* Either we are given a string or we are setting option
Karsten Hopp f598ff
  		     * to zero. */
Karsten Hopp f598ff
! 		    for (index = 0; string[index] == '0'; ++index)
Karsten Hopp f598ff
  			;
Karsten Hopp f598ff
! 		    if (string[index] != NUL || index == 0)
Karsten Hopp f598ff
  		    {
Karsten Hopp f598ff
  			/* There's another character after zeros or the string
Karsten Hopp f598ff
  			 * is empty.  In both cases, we are trying to set a
Karsten Hopp f598ff
--- 8232,8244 ----
Karsten Hopp f598ff
  	    {
Karsten Hopp f598ff
  		if (number == 0 && string != NULL)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
! 		    int idx;
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* Either we are given a string or we are setting option
Karsten Hopp f598ff
  		     * to zero. */
Karsten Hopp f598ff
! 		    for (idx = 0; string[idx] == '0'; ++idx)
Karsten Hopp f598ff
  			;
Karsten Hopp f598ff
! 		    if (string[idx] != NUL || idx == 0)
Karsten Hopp f598ff
  		    {
Karsten Hopp f598ff
  			/* There's another character after zeros or the string
Karsten Hopp f598ff
  			 * is empty.  In both cases, we are trying to set a
Karsten Hopp f598ff
*** ../vim-7.2.054/src/os_unix.c	Wed Nov 12 14:09:38 2008
Karsten Hopp f598ff
--- src/os_unix.c	Fri Nov 28 18:39:55 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 315,326 ****
Karsten Hopp f598ff
      {-1,	    "Unknown!", FALSE}
Karsten Hopp f598ff
  };
Karsten Hopp f598ff
  
Karsten Hopp f598ff
      void
Karsten Hopp f598ff
  mch_write(s, len)
Karsten Hopp f598ff
      char_u	*s;
Karsten Hopp f598ff
      int		len;
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
!     write(1, (char *)s, len);
Karsten Hopp f598ff
      if (p_wd)		/* Unix is too fast, slow down a bit more */
Karsten Hopp f598ff
  	RealWaitForChar(read_cmd_fd, p_wd, NULL);
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
--- 315,329 ----
Karsten Hopp f598ff
      {-1,	    "Unknown!", FALSE}
Karsten Hopp f598ff
  };
Karsten Hopp f598ff
  
Karsten Hopp f598ff
+ /*
Karsten Hopp f598ff
+  * Write s[len] to the screen.
Karsten Hopp f598ff
+  */
Karsten Hopp f598ff
      void
Karsten Hopp f598ff
  mch_write(s, len)
Karsten Hopp f598ff
      char_u	*s;
Karsten Hopp f598ff
      int		len;
Karsten Hopp f598ff
  {
Karsten Hopp f598ff
!     ignored = (int)write(1, (char *)s, len);
Karsten Hopp f598ff
      if (p_wd)		/* Unix is too fast, slow down a bit more */
Karsten Hopp f598ff
  	RealWaitForChar(read_cmd_fd, p_wd, NULL);
Karsten Hopp f598ff
  }
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 3927,3935 ****
Karsten Hopp f598ff
  		 */
Karsten Hopp f598ff
  		if (fd >= 0)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
! 		    dup(fd); /* To replace stdin  (file descriptor 0) */
Karsten Hopp f598ff
! 		    dup(fd); /* To replace stdout (file descriptor 1) */
Karsten Hopp f598ff
! 		    dup(fd); /* To replace stderr (file descriptor 2) */
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* Don't need this now that we've duplicated it */
Karsten Hopp f598ff
  		    close(fd);
Karsten Hopp f598ff
--- 3930,3938 ----
Karsten Hopp f598ff
  		 */
Karsten Hopp f598ff
  		if (fd >= 0)
Karsten Hopp f598ff
  		{
Karsten Hopp f598ff
! 		    ignored = dup(fd); /* To replace stdin  (fd 0) */
Karsten Hopp f598ff
! 		    ignored = dup(fd); /* To replace stdout (fd 1) */
Karsten Hopp f598ff
! 		    ignored = dup(fd); /* To replace stderr (fd 2) */
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* Don't need this now that we've duplicated it */
Karsten Hopp f598ff
  		    close(fd);
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 3997,4009 ****
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* set up stdin/stdout/stderr for the child */
Karsten Hopp f598ff
  		    close(0);
Karsten Hopp f598ff
! 		    dup(pty_slave_fd);
Karsten Hopp f598ff
  		    close(1);
Karsten Hopp f598ff
! 		    dup(pty_slave_fd);
Karsten Hopp f598ff
  		    if (gui.in_use)
Karsten Hopp f598ff
  		    {
Karsten Hopp f598ff
  			close(2);
Karsten Hopp f598ff
! 			dup(pty_slave_fd);
Karsten Hopp f598ff
  		    }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    close(pty_slave_fd);    /* has been dupped, close it now */
Karsten Hopp f598ff
--- 4000,4012 ----
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* set up stdin/stdout/stderr for the child */
Karsten Hopp f598ff
  		    close(0);
Karsten Hopp f598ff
! 		    ignored = dup(pty_slave_fd);
Karsten Hopp f598ff
  		    close(1);
Karsten Hopp f598ff
! 		    ignored = dup(pty_slave_fd);
Karsten Hopp f598ff
  		    if (gui.in_use)
Karsten Hopp f598ff
  		    {
Karsten Hopp f598ff
  			close(2);
Karsten Hopp f598ff
! 			ignored = dup(pty_slave_fd);
Karsten Hopp f598ff
  		    }
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    close(pty_slave_fd);    /* has been dupped, close it now */
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4014,4026 ****
Karsten Hopp f598ff
  		    /* set up stdin for the child */
Karsten Hopp f598ff
  		    close(fd_toshell[1]);
Karsten Hopp f598ff
  		    close(0);
Karsten Hopp f598ff
! 		    dup(fd_toshell[0]);
Karsten Hopp f598ff
  		    close(fd_toshell[0]);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* set up stdout for the child */
Karsten Hopp f598ff
  		    close(fd_fromshell[0]);
Karsten Hopp f598ff
  		    close(1);
Karsten Hopp f598ff
! 		    dup(fd_fromshell[1]);
Karsten Hopp f598ff
  		    close(fd_fromshell[1]);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  # ifdef FEAT_GUI
Karsten Hopp f598ff
--- 4017,4029 ----
Karsten Hopp f598ff
  		    /* set up stdin for the child */
Karsten Hopp f598ff
  		    close(fd_toshell[1]);
Karsten Hopp f598ff
  		    close(0);
Karsten Hopp f598ff
! 		    ignored = dup(fd_toshell[0]);
Karsten Hopp f598ff
  		    close(fd_toshell[0]);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  		    /* set up stdout for the child */
Karsten Hopp f598ff
  		    close(fd_fromshell[0]);
Karsten Hopp f598ff
  		    close(1);
Karsten Hopp f598ff
! 		    ignored = dup(fd_fromshell[1]);
Karsten Hopp f598ff
  		    close(fd_fromshell[1]);
Karsten Hopp f598ff
  
Karsten Hopp f598ff
  # ifdef FEAT_GUI
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4028,4034 ****
Karsten Hopp f598ff
  		    {
Karsten Hopp f598ff
  			/* set up stderr for the child */
Karsten Hopp f598ff
  			close(2);
Karsten Hopp f598ff
! 			dup(1);
Karsten Hopp f598ff
  		    }
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
  		}
Karsten Hopp f598ff
--- 4031,4037 ----
Karsten Hopp f598ff
  		    {
Karsten Hopp f598ff
  			/* set up stderr for the child */
Karsten Hopp f598ff
  			close(2);
Karsten Hopp f598ff
! 			ignored = dup(1);
Karsten Hopp f598ff
  		    }
Karsten Hopp f598ff
  # endif
Karsten Hopp f598ff
  		}
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4159,4165 ****
Karsten Hopp f598ff
  					    && (lnum !=
Karsten Hopp f598ff
  						    curbuf->b_ml.ml_line_count
Karsten Hopp f598ff
  						    || curbuf->b_p_eol)))
Karsten Hopp f598ff
! 				    write(toshell_fd, "\n", (size_t)1);
Karsten Hopp f598ff
  				++lnum;
Karsten Hopp f598ff
  				if (lnum > curbuf->b_op_end.lnum)
Karsten Hopp f598ff
  				{
Karsten Hopp f598ff
--- 4162,4169 ----
Karsten Hopp f598ff
  					    && (lnum !=
Karsten Hopp f598ff
  						    curbuf->b_ml.ml_line_count
Karsten Hopp f598ff
  						    || curbuf->b_p_eol)))
Karsten Hopp f598ff
! 				    ignored = write(toshell_fd, "\n",
Karsten Hopp f598ff
! 								   (size_t)1);
Karsten Hopp f598ff
  				++lnum;
Karsten Hopp f598ff
  				if (lnum > curbuf->b_op_end.lnum)
Karsten Hopp f598ff
  				{
Karsten Hopp f598ff
*** ../vim-7.2.054/src/spell.c	Fri Nov 28 10:08:05 2008
Karsten Hopp f598ff
--- src/spell.c	Fri Nov 28 12:28:24 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4950,4956 ****
Karsten Hopp f598ff
  static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd));
Karsten Hopp f598ff
  static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname));
Karsten Hopp f598ff
  static void clear_node __ARGS((wordnode_T *node));
Karsten Hopp f598ff
! static int put_node __ARGS((FILE *fd, wordnode_T *node, int index, int regionmask, int prefixtree));
Karsten Hopp f598ff
  static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname));
Karsten Hopp f598ff
  static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang));
Karsten Hopp f598ff
  static int sug_maketable __ARGS((spellinfo_T *spin));
Karsten Hopp f598ff
--- 4950,4956 ----
Karsten Hopp f598ff
  static void put_sugtime __ARGS((spellinfo_T *spin, FILE *fd));
Karsten Hopp f598ff
  static int write_vim_spell __ARGS((spellinfo_T *spin, char_u *fname));
Karsten Hopp f598ff
  static void clear_node __ARGS((wordnode_T *node));
Karsten Hopp f598ff
! static int put_node __ARGS((FILE *fd, wordnode_T *node, int idx, int regionmask, int prefixtree));
Karsten Hopp f598ff
  static void spell_make_sugfile __ARGS((spellinfo_T *spin, char_u *wfname));
Karsten Hopp f598ff
  static int sug_filltree __ARGS((spellinfo_T *spin, slang_T *slang));
Karsten Hopp f598ff
  static int sug_maketable __ARGS((spellinfo_T *spin));
Karsten Hopp f598ff
*** ../vim-7.2.054/src/ui.c	Sun Sep 14 15:57:54 2008
Karsten Hopp f598ff
--- src/ui.c	Fri Nov 28 19:04:36 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 1820,1826 ****
Karsten Hopp f598ff
  #ifdef HAVE_DUP
Karsten Hopp f598ff
  	    /* Use stderr for stdin, also works for shell commands. */
Karsten Hopp f598ff
  	    close(0);
Karsten Hopp f598ff
! 	    dup(2);
Karsten Hopp f598ff
  #else
Karsten Hopp f598ff
  	    read_cmd_fd = 2;	/* read from stderr instead of stdin */
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
--- 1820,1826 ----
Karsten Hopp f598ff
  #ifdef HAVE_DUP
Karsten Hopp f598ff
  	    /* Use stderr for stdin, also works for shell commands. */
Karsten Hopp f598ff
  	    close(0);
Karsten Hopp f598ff
! 	    ignored = dup(2);
Karsten Hopp f598ff
  #else
Karsten Hopp f598ff
  	    read_cmd_fd = 2;	/* read from stderr instead of stdin */
Karsten Hopp f598ff
  #endif
Karsten Hopp f598ff
*** ../vim-7.2.054/src/window.c	Sat Nov 15 14:10:23 2008
Karsten Hopp f598ff
--- src/window.c	Fri Nov 28 18:46:45 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 4029,4042 ****
Karsten Hopp f598ff
  	    if (mch_dirname(cwd, MAXPATHL) == OK)
Karsten Hopp f598ff
  		globaldir = vim_strsave(cwd);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
! 	mch_chdir((char *)curwin->w_localdir);
Karsten Hopp f598ff
! 	shorten_fnames(TRUE);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      else if (globaldir != NULL)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	/* Window doesn't have a local directory and we are not in the global
Karsten Hopp f598ff
  	 * directory: Change to the global directory. */
Karsten Hopp f598ff
! 	mch_chdir((char *)globaldir);
Karsten Hopp f598ff
  	vim_free(globaldir);
Karsten Hopp f598ff
  	globaldir = NULL;
Karsten Hopp f598ff
  	shorten_fnames(TRUE);
Karsten Hopp f598ff
--- 4029,4042 ----
Karsten Hopp f598ff
  	    if (mch_dirname(cwd, MAXPATHL) == OK)
Karsten Hopp f598ff
  		globaldir = vim_strsave(cwd);
Karsten Hopp f598ff
  	}
Karsten Hopp f598ff
! 	if (mch_chdir((char *)curwin->w_localdir) == 0)
Karsten Hopp f598ff
! 	    shorten_fnames(TRUE);
Karsten Hopp f598ff
      }
Karsten Hopp f598ff
      else if (globaldir != NULL)
Karsten Hopp f598ff
      {
Karsten Hopp f598ff
  	/* Window doesn't have a local directory and we are not in the global
Karsten Hopp f598ff
  	 * directory: Change to the global directory. */
Karsten Hopp f598ff
! 	ignored = mch_chdir((char *)globaldir);
Karsten Hopp f598ff
  	vim_free(globaldir);
Karsten Hopp f598ff
  	globaldir = NULL;
Karsten Hopp f598ff
  	shorten_fnames(TRUE);
Karsten Hopp f598ff
*** ../vim-7.2.054/src/version.c	Fri Nov 28 12:05:07 2008
Karsten Hopp f598ff
--- src/version.c	Fri Nov 28 21:12:42 2008
Karsten Hopp f598ff
***************
Karsten Hopp f598ff
*** 678,679 ****
Karsten Hopp f598ff
--- 678,681 ----
Karsten Hopp f598ff
  {   /* Add new patch number below this line */
Karsten Hopp f598ff
+ /**/
Karsten Hopp f598ff
+     55,
Karsten Hopp f598ff
  /**/
Karsten Hopp f598ff
Karsten Hopp f598ff
-- 
Karsten Hopp f598ff
PRINCE:    He's come to rescue me, father.
Karsten Hopp f598ff
LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
Karsten Hopp f598ff
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
Karsten Hopp f598ff
Karsten Hopp f598ff
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp f598ff
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp f598ff
\\\        download, build and distribute -- http://www.A-A-P.org        ///
Karsten Hopp f598ff
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///