Blob Blame History Raw
To: vim-dev@vim.org
Subject: Patch 7.2.055
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 7.2.055
Problem:    Various compiler warnings with strict checking.
Solution:   Avoid the warnings by using return values and renaming.
Files:	    src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
	    src/fileio.c, src/fold.c, src/globals.h, src/gui.c,
	    src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c,
	    src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c,
	    src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c,
	    src/ui.c, src/window.c


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

-- 
PRINCE:    He's come to rescue me, father.
LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///