0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

Various small fixes from Dominique Pelle.

This commit is contained in:
Bram Moolenaar 2010-06-26 06:24:45 +02:00
parent 0eda7ac7f8
commit 644044794e
18 changed files with 1423 additions and 1100 deletions

View File

@ -525,7 +525,7 @@ PHP indenting can be altered in several ways by modifying the values of some
variables: variables:
*php-comment* *php-comment*
To not enable auto-formating of comments by default (if you want to use your To not enable auto-formatting of comments by default (if you want to use your
own 'formatoptions'): > own 'formatoptions'): >
:let g:PHP_autoformatcomment = 0 :let g:PHP_autoformatcomment = 0

View File

@ -1099,7 +1099,6 @@ Vim 7.3:
dictionary: {'nr': 2, 'time': 1234, 'saved': 1} dictionary: {'nr': 2, 'time': 1234, 'saved': 1}
Patches to include: Patches to include:
- Patch for Lisp support with ECL (Mikael Jansson, 2008 Oct 25) - Patch for Lisp support with ECL (Mikael Jansson, 2008 Oct 25)
- Minor patches from Dominique Pelle, 2010 May 15
- Gvimext patch to support wide file names. (Szabolcs Horvat 2008 Sep 10) - Gvimext patch to support wide file names. (Szabolcs Horvat 2008 Sep 10)
- Patch to support netbeans for Mac. (Kazuki Sakamoto, 2009 Jun 25) - Patch to support netbeans for Mac. (Kazuki Sakamoto, 2009 Jun 25)
- Patch to support clipboard for Mac terminal. (Jjgod Jiang, 2009 Aug 1) - Patch to support clipboard for Mac terminal. (Jjgod Jiang, 2009 Aug 1)

View File

@ -55,7 +55,7 @@ arguments.
GNU Autoconf and a few other tools have been used to make Vim work on many GNU Autoconf and a few other tools have been used to make Vim work on many
different Unix systems. The advantage of this is that Vim should compile different Unix systems. The advantage of this is that Vim should compile
on most sytems without any adjustments. The disadvantage is that when on most systems without any adjustments. The disadvantage is that when
adjustments are required, it takes some time to understand what is happening. adjustments are required, it takes some time to understand what is happening.
If configure finds all library files and then complains when linking that some If configure finds all library files and then complains when linking that some
@ -138,7 +138,7 @@ work very well and there was no maintainer it was dropped.
Unix: COMPILING WITH MULTI-BYTE Unix: COMPILING WITH MULTI-BYTE
When you want to compile with the multi-byte features enabled, make sure you When you want to compile with the multi-byte features enabled, make sure you
compile on a machine where the locale settings actually work. otherwise the compile on a machine where the locale settings actually work, otherwise the
configure tests may fail. You need to compile with "big" features: configure tests may fail. You need to compile with "big" features:
./configure --with-features=big ./configure --with-features=big

View File

@ -4013,7 +4013,7 @@ gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
/* /*
* FIXME: dirty trick: Because the gui_get_base_height() doesn't include * FIXME: dirty trick: Because the gui_get_base_height() doesn't include
* the toolbar and menubar for GTK, we subtract them from the screen * the toolbar and menubar for GTK, we subtract them from the screen
* hight, so that the window size can be made to fit on the screen. * height, so that the window size can be made to fit on the screen.
* This should be completely changed later. * This should be completely changed later.
*/ */
*screen_w -= get_menu_tool_width(); *screen_w -= get_menu_tool_width();
@ -4818,7 +4818,7 @@ count_cluster_cells(char_u *s, PangoItem *item,
* If ink_rect.x is negative Pango apparently has taken care of the composing * If ink_rect.x is negative Pango apparently has taken care of the composing
* by itself. Actually setting x_offset = 0 should be sufficient then, but due * by itself. Actually setting x_offset = 0 should be sufficient then, but due
* to problems with composing from different fonts we still need to fine-tune * to problems with composing from different fonts we still need to fine-tune
* x_offset to avoid uglyness. * x_offset to avoid ugliness.
* *
* If ink_rect.x is not negative, force overstriking by pointing x_offset to * If ink_rect.x is not negative, force overstriking by pointing x_offset to
* the position of the previous glyph. Apparently this happens only with old * the position of the previous glyph. Apparently this happens only with old

View File

@ -1162,9 +1162,9 @@ gui_x11_mouse_cb(w, dud, event, dum)
/* ARGSUSED */ /* ARGSUSED */
static void static void
gui_x11_sniff_request_cb(closure, source, id) gui_x11_sniff_request_cb(closure, source, id)
XtPointer closure; XtPointer closure UNUSED;
int *source; int *source UNUSED;
XtInputId *id; XtInputId *id UNUSED;
{ {
static char_u bytes[3] = {CSI, (int)KS_EXTRA, (int)KE_SNIFF}; static char_u bytes[3] = {CSI, (int)KS_EXTRA, (int)KE_SNIFF};

View File

@ -168,7 +168,7 @@ name_part(char *font, char *buf)
get_part(font, 2, buf2); get_part(font, 2, buf2);
get_part(font, 1, buf3); get_part(font, 1, buf3);
if (strlen(buf3)) if (*buf3 != NUL)
vim_snprintf(buf, TEMP_BUF_SIZE, "%s (%s)", buf2, buf3); vim_snprintf(buf, TEMP_BUF_SIZE, "%s (%s)", buf2, buf3);
else else
vim_snprintf(buf, TEMP_BUF_SIZE, "%s", buf2); vim_snprintf(buf, TEMP_BUF_SIZE, "%s", buf2);
@ -225,7 +225,7 @@ size_part(char *font, char *buf, int inPixels)
if (inPixels) if (inPixels)
{ {
get_part(font, 7, buf); get_part(font, 7, buf);
if (strlen(buf) > 0) if (*buf != NUL)
{ {
size = atoi(buf); size = atoi(buf);
sprintf(buf, "%3d", size); sprintf(buf, "%3d", size);
@ -234,7 +234,7 @@ size_part(char *font, char *buf, int inPixels)
else else
{ {
get_part(font, 8, buf); get_part(font, 8, buf);
if (strlen(buf) > 0) if (*buf != NUL)
{ {
size = atoi(buf); size = atoi(buf);
temp = (float)size / 10.0; temp = (float)size / 10.0;
@ -261,7 +261,7 @@ encoding_part(char *font, char *buf)
get_part(font, 13, buf1); get_part(font, 13, buf1);
get_part(font, 14, buf2); get_part(font, 14, buf2);
if (strlen(buf1) > 0 && strlen(buf2)) if (*buf1 != NUL && *buf2 != NUL)
vim_snprintf(buf, TEMP_BUF_SIZE, "%s-%s", buf1, buf2); vim_snprintf(buf, TEMP_BUF_SIZE, "%s-%s", buf1, buf2);
if (!strcmp(buf, " ")) if (!strcmp(buf, " "))
strcpy(buf, "-"); strcpy(buf, "-");
@ -1229,10 +1229,10 @@ gui_xm_select_font(char_u *current)
size_part(found, sizebuf, data->in_pixels); size_part(found, sizebuf, data->in_pixels);
encoding_part(found, encodingbuf); encoding_part(found, encodingbuf);
if (strlen(namebuf) > 0 if (*namebuf != NUL
&& strlen(stylebuf) > 0 && *stylebuf != NUL
&& strlen(sizebuf) > 0 && *sizebuf != NUL
&& strlen(encodingbuf) > 0) && *encodingbuf != NUL)
{ {
data->sel[NAME] = XtNewString(namebuf); data->sel[NAME] = XtNewString(namebuf);
data->sel[STYLE] = XtNewString(stylebuf); data->sel[STYLE] = XtNewString(stylebuf);

View File

@ -588,7 +588,7 @@ staterr:
) )
{ {
fname[strlen(fname)-1] = '\0'; fname[strlen(fname)-1] = '\0';
if (strlen(fname) == 0) if (fname[0] == '\0')
break; break;
} }
if (fname[0] == '\0') if (fname[0] == '\0')

View File

@ -175,7 +175,7 @@ static int mzscheme_to_vim(Scheme_Object *obj, typval_T *tv, int depth,
#endif #endif
#ifdef MZ_PRECISE_GC #ifdef MZ_PRECISE_GC
static int buffer_size_proc(void *obj) static int buffer_size_proc(void *obj UNUSED)
{ {
return gcBYTES_TO_WORDS(sizeof(vim_mz_buffer)); return gcBYTES_TO_WORDS(sizeof(vim_mz_buffer));
} }
@ -187,7 +187,7 @@ static int buffer_fixup_proc(void *obj)
{ {
return buffer_size_proc(obj); return buffer_size_proc(obj);
} }
static int window_size_proc(void *obj) static int window_size_proc(void *obj UNUSED)
{ {
return gcBYTES_TO_WORDS(sizeof(vim_mz_window)); return gcBYTES_TO_WORDS(sizeof(vim_mz_window));
} }
@ -708,16 +708,16 @@ static void remove_timer(void);
/* timers are presented in GUI only */ /* timers are presented in GUI only */
# if defined(FEAT_GUI_W32) # if defined(FEAT_GUI_W32)
static void CALLBACK static void CALLBACK
timer_proc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime) timer_proc(HWND hwnd UNUSED, UINT uMsg UNUSED, UINT idEvent UNUSED, DWORD dwTime UNUSED)
# elif defined(FEAT_GUI_GTK) # elif defined(FEAT_GUI_GTK)
static gint static gint
timer_proc(gpointer data) timer_proc(gpointer data UNUSED)
# elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) # elif defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)
static void static void
timer_proc(XtPointer timed_out, XtIntervalId *interval_id) timer_proc(XtPointer timed_out UNUSED, XtIntervalId *interval_id UNUSED)
# elif defined(FEAT_GUI_MAC) # elif defined(FEAT_GUI_MAC)
pascal void pascal void
timer_proc(EventLoopTimerRef theTimer, void *userData) timer_proc(EventLoopTimerRef theTimer UNUSED, void *userData UNUSED)
# endif # endif
{ {
scheme_check_threads(); scheme_check_threads();
@ -806,7 +806,7 @@ mzscheme_main(void)
} }
static int static int
mzscheme_env_main(Scheme_Env *env, int argc, char **argv) mzscheme_env_main(Scheme_Env *env, int argc UNUSED, char **argv UNUSED)
{ {
/* neither argument nor return values are used */ /* neither argument nor return values are used */
#ifdef MZ_PRECISE_GC #ifdef MZ_PRECISE_GC
@ -1190,7 +1190,7 @@ ex_mzscheme(exarg_T *eap)
} }
static Scheme_Object * static Scheme_Object *
do_load(void *data, int noargc, Scheme_Object **noargv) do_load(void *data, int noargc UNUSED, Scheme_Object **noargv UNUSED)
{ {
Scheme_Object *expr = NULL; Scheme_Object *expr = NULL;
Scheme_Object *result = NULL; Scheme_Object *result = NULL;
@ -1306,7 +1306,7 @@ extract_exn_message(Scheme_Object *v)
} }
static Scheme_Object * static Scheme_Object *
do_eval(void *s, int noargc, Scheme_Object **noargv) do_eval(void *s, int noargc UNUSED, Scheme_Object **noargv UNUSED)
{ {
return scheme_eval_string_all((char *)s, environment, TRUE); return scheme_eval_string_all((char *)s, environment, TRUE);
} }
@ -1317,7 +1317,7 @@ do_eval(void *s, int noargc, Scheme_Object **noargv)
*======================================================================== *========================================================================
*/ */
static void static void
do_intrnl_output(char *mesg, long len, int error) do_intrnl_output(char *mesg, int error)
{ {
char *p, *prev; char *p, *prev;
@ -1341,21 +1341,21 @@ do_intrnl_output(char *mesg, long len, int error)
} }
static void static void
do_output(char *mesg, long len) do_output(char *mesg, long len UNUSED)
{ {
do_intrnl_output(mesg, len, 0); do_intrnl_output(mesg, 0);
} }
static void static void
do_err_output(char *mesg, long len) do_err_output(char *mesg)
{ {
do_intrnl_output(mesg, len, 1); do_intrnl_output(mesg, 1);
} }
static void static void
do_printf(char *format, ...) do_printf(char *format, ...)
{ {
do_intrnl_output(format, STRLEN(format), 1); do_intrnl_output(format, 1);
} }
static void static void
@ -1368,7 +1368,7 @@ do_flush(void)
MZ_GC_CHECK(); MZ_GC_CHECK();
if (length) if (length)
{ {
do_err_output(buff, length); do_err_output(buff);
return; return;
} }
@ -1438,21 +1438,21 @@ vim_eval(void *data, int argc, Scheme_Object **argv)
/* (range-start) */ /* (range-start) */
static Scheme_Object * static Scheme_Object *
get_range_start(void *data, int argc, Scheme_Object **argv) get_range_start(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
return scheme_make_integer(range_start); return scheme_make_integer(range_start);
} }
/* (range-end) */ /* (range-end) */
static Scheme_Object * static Scheme_Object *
get_range_end(void *data, int argc, Scheme_Object **argv) get_range_end(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
return scheme_make_integer(range_end); return scheme_make_integer(range_end);
} }
/* (beep) */ /* (beep) */
static Scheme_Object * static Scheme_Object *
mzscheme_beep(void *data, int argc, Scheme_Object **argv) mzscheme_beep(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
vim_beep(); vim_beep();
return scheme_void; return scheme_void;
@ -1584,14 +1584,14 @@ set_option(void *data, int argc, Scheme_Object **argv)
/* (curr-win) */ /* (curr-win) */
static Scheme_Object * static Scheme_Object *
get_curr_win(void *data, int argc, Scheme_Object **argv) get_curr_win(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
return (Scheme_Object *)get_vim_curr_window(); return (Scheme_Object *)get_vim_curr_window();
} }
/* (win-count) */ /* (win-count) */
static Scheme_Object * static Scheme_Object *
get_window_count(void *data, int argc, Scheme_Object **argv) get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
win_T *w; win_T *w;
int n = 0; int n = 0;
@ -1926,7 +1926,7 @@ get_buffer_num(void *data, int argc, Scheme_Object **argv)
/* (buff-count) */ /* (buff-count) */
static Scheme_Object * static Scheme_Object *
get_buffer_count(void *data, int argc, Scheme_Object **argv) get_buffer_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
buf_T *b; buf_T *b;
int n = 0; int n = 0;
@ -1947,7 +1947,7 @@ get_buffer_name(void *data, int argc, Scheme_Object **argv)
/* (curr-buff) */ /* (curr-buff) */
static Scheme_Object * static Scheme_Object *
get_curr_buffer(void *data, int argc, Scheme_Object **argv) get_curr_buffer(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
return (Scheme_Object *)get_vim_curr_buffer(); return (Scheme_Object *)get_vim_curr_buffer();
} }
@ -2521,7 +2521,7 @@ insert_buffer_line_list(void *data, int argc, Scheme_Object **argv)
*/ */
/* (buff? obj) */ /* (buff? obj) */
static Scheme_Object * static Scheme_Object *
vim_bufferp(void *data, int argc, Scheme_Object **argv) vim_bufferp(void *data UNUSED, int argc UNUSED, Scheme_Object **argv)
{ {
if (SCHEME_VIMBUFFERP(argv[0])) if (SCHEME_VIMBUFFERP(argv[0]))
return scheme_true; return scheme_true;
@ -2531,7 +2531,7 @@ vim_bufferp(void *data, int argc, Scheme_Object **argv)
/* (win? obj) */ /* (win? obj) */
static Scheme_Object * static Scheme_Object *
vim_windowp(void *data, int argc, Scheme_Object **argv) vim_windowp(void *data UNUSED, int argc UNUSED, Scheme_Object **argv)
{ {
if (SCHEME_VIMWINDOWP(argv[0])) if (SCHEME_VIMWINDOWP(argv[0]))
return scheme_true; return scheme_true;
@ -2541,7 +2541,7 @@ vim_windowp(void *data, int argc, Scheme_Object **argv)
/* (buff-valid? obj) */ /* (buff-valid? obj) */
static Scheme_Object * static Scheme_Object *
vim_buffer_validp(void *data, int argc, Scheme_Object **argv) vim_buffer_validp(void *data UNUSED, int argc UNUSED, Scheme_Object **argv)
{ {
if (SCHEME_VIMBUFFERP(argv[0]) if (SCHEME_VIMBUFFERP(argv[0])
&& ((vim_mz_buffer *)argv[0])->buf != INVALID_BUFFER_VALUE) && ((vim_mz_buffer *)argv[0])->buf != INVALID_BUFFER_VALUE)
@ -2552,7 +2552,7 @@ vim_buffer_validp(void *data, int argc, Scheme_Object **argv)
/* (win-valid? obj) */ /* (win-valid? obj) */
static Scheme_Object * static Scheme_Object *
vim_window_validp(void *data, int argc, Scheme_Object **argv) vim_window_validp(void *data UNUSED, int argc UNUSED, Scheme_Object **argv)
{ {
if (SCHEME_VIMWINDOWP(argv[0]) if (SCHEME_VIMWINDOWP(argv[0])
&& ((vim_mz_window *)argv[0])->win != INVALID_WINDOW_VALUE) && ((vim_mz_window *)argv[0])->win != INVALID_WINDOW_VALUE)
@ -3315,7 +3315,7 @@ sandbox_check(void)
/* security guards to force Vim's sandbox restrictions on MzScheme level */ /* security guards to force Vim's sandbox restrictions on MzScheme level */
static Scheme_Object * static Scheme_Object *
sandbox_file_guard(int argc, Scheme_Object **argv) sandbox_file_guard(int argc UNUSED, Scheme_Object **argv)
{ {
if (sandbox) if (sandbox)
{ {
@ -3361,7 +3361,7 @@ sandbox_file_guard(int argc, Scheme_Object **argv)
} }
static Scheme_Object * static Scheme_Object *
sandbox_network_guard(int argc, Scheme_Object **argv) sandbox_network_guard(int argc UNUSED, Scheme_Object **argv UNUSED)
{ {
return scheme_void; return scheme_void;
} }

View File

@ -4205,7 +4205,7 @@ iconv_end()
#if defined(FEAT_XIM) || defined(PROTO) #if defined(FEAT_XIM) || defined(PROTO)
# ifdef FEAT_GUI_GTK # if defined(FEAT_GUI_GTK) || defined(PROTO)
static int xim_has_preediting INIT(= FALSE); /* IM current status */ static int xim_has_preediting INIT(= FALSE); /* IM current status */
/* /*
@ -4221,9 +4221,6 @@ init_preedit_start_col(void)
/* Prevent that preediting marks the buffer as changed. */ /* Prevent that preediting marks the buffer as changed. */
xim_changed_while_preediting = curbuf->b_changed; xim_changed_while_preediting = curbuf->b_changed;
} }
# endif
# if defined(FEAT_GUI_GTK) && !defined(PROTO)
static int im_is_active = FALSE; /* IM is enabled for current mode */ static int im_is_active = FALSE; /* IM is enabled for current mode */
static int preedit_is_active = FALSE; static int preedit_is_active = FALSE;
@ -5058,6 +5055,18 @@ im_get_status(void)
return im_is_active; return im_is_active;
} }
int
preedit_get_status(void)
{
return preedit_is_active;
}
int
im_is_preediting()
{
return xim_has_preediting;
}
# else /* !FEAT_GUI_GTK */ # else /* !FEAT_GUI_GTK */
static int xim_is_active = FALSE; /* XIM should be active in the current static int xim_is_active = FALSE; /* XIM should be active in the current
@ -5192,111 +5201,6 @@ xim_set_preedit()
} }
} }
/*
* Set up the status area.
*
* This should use a separate Widget, but that seems not possible, because
* preedit_area and status_area should be set to the same window as for the
* text input. Unfortunately this means the status area pollutes the text
* window...
*/
void
xim_set_status_area()
{
if (xic == NULL)
return;
XVaNestedList preedit_list = 0, status_list = 0, list = 0;
XRectangle pre_area, status_area;
if (input_style & XIMStatusArea)
{
if (input_style & XIMPreeditArea)
{
XRectangle *needed_rect;
/* to get status_area width */
status_list = XVaCreateNestedList(0, XNAreaNeeded,
&needed_rect, NULL);
XGetICValues(xic, XNStatusAttributes, status_list, NULL);
XFree(status_list);
status_area.width = needed_rect->width;
}
else
status_area.width = gui.char_width * Columns;
status_area.x = 0;
status_area.y = gui.char_height * Rows + gui.border_offset;
if (gui.which_scrollbars[SBAR_BOTTOM])
status_area.y += gui.scrollbar_height;
#ifdef FEAT_MENU
if (gui.menu_is_active)
status_area.y += gui.menu_height;
#endif
status_area.height = gui.char_height;
status_list = XVaCreateNestedList(0, XNArea, &status_area, NULL);
}
else
{
status_area.x = 0;
status_area.y = gui.char_height * Rows + gui.border_offset;
if (gui.which_scrollbars[SBAR_BOTTOM])
status_area.y += gui.scrollbar_height;
#ifdef FEAT_MENU
if (gui.menu_is_active)
status_area.y += gui.menu_height;
#endif
status_area.width = 0;
status_area.height = gui.char_height;
}
if (input_style & XIMPreeditArea) /* off-the-spot */
{
pre_area.x = status_area.x + status_area.width;
pre_area.y = gui.char_height * Rows + gui.border_offset;
pre_area.width = gui.char_width * Columns - pre_area.x;
if (gui.which_scrollbars[SBAR_BOTTOM])
pre_area.y += gui.scrollbar_height;
#ifdef FEAT_MENU
if (gui.menu_is_active)
pre_area.y += gui.menu_height;
#endif
pre_area.height = gui.char_height;
preedit_list = XVaCreateNestedList(0, XNArea, &pre_area, NULL);
}
else if (input_style & XIMPreeditPosition) /* over-the-spot */
{
pre_area.x = 0;
pre_area.y = 0;
pre_area.height = gui.char_height * Rows;
pre_area.width = gui.char_width * Columns;
preedit_list = XVaCreateNestedList(0, XNArea, &pre_area, NULL);
}
if (preedit_list && status_list)
list = XVaCreateNestedList(0, XNPreeditAttributes, preedit_list,
XNStatusAttributes, status_list, NULL);
else if (preedit_list)
list = XVaCreateNestedList(0, XNPreeditAttributes, preedit_list,
NULL);
else if (status_list)
list = XVaCreateNestedList(0, XNStatusAttributes, status_list,
NULL);
else
list = NULL;
if (list)
{
XSetICValues(xic, XNVaNestedList, list, NULL);
XFree(list);
}
if (status_list)
XFree(status_list);
if (preedit_list)
XFree(preedit_list);
}
#if defined(FEAT_GUI_X11) #if defined(FEAT_GUI_X11)
static char e_xim[] = N_("E285: Failed to create input context"); static char e_xim[] = N_("E285: Failed to create input context");
#endif #endif
@ -5607,14 +5511,6 @@ xim_real_init(x11_window, x11_display)
#endif /* FEAT_GUI_X11 */ #endif /* FEAT_GUI_X11 */
int
xim_get_status_area_height()
{
if (status_area_enabled)
return gui.char_height;
return 0;
}
/* /*
* Get IM status. When IM is on, return TRUE. Else return FALSE. * Get IM status. When IM is on, return TRUE. Else return FALSE.
* FIXME: This doesn't work correctly: Having focus doesn't always mean XIM is * FIXME: This doesn't work correctly: Having focus doesn't always mean XIM is
@ -5629,21 +5525,121 @@ im_get_status()
# endif /* !FEAT_GUI_GTK */ # endif /* !FEAT_GUI_GTK */
# if defined(FEAT_GUI_GTK) || defined(PROTO) # if !defined(FEAT_GUI_GTK) || defined(PROTO)
int /*
preedit_get_status(void) * Set up the status area.
*
* This should use a separate Widget, but that seems not possible, because
* preedit_area and status_area should be set to the same window as for the
* text input. Unfortunately this means the status area pollutes the text
* window...
*/
void
xim_set_status_area()
{ {
return preedit_is_active; if (xic == NULL)
return;
XVaNestedList preedit_list = 0, status_list = 0, list = 0;
XRectangle pre_area, status_area;
if (input_style & XIMStatusArea)
{
if (input_style & XIMPreeditArea)
{
XRectangle *needed_rect;
/* to get status_area width */
status_list = XVaCreateNestedList(0, XNAreaNeeded,
&needed_rect, NULL);
XGetICValues(xic, XNStatusAttributes, status_list, NULL);
XFree(status_list);
status_area.width = needed_rect->width;
}
else
status_area.width = gui.char_width * Columns;
status_area.x = 0;
status_area.y = gui.char_height * Rows + gui.border_offset;
if (gui.which_scrollbars[SBAR_BOTTOM])
status_area.y += gui.scrollbar_height;
#ifdef FEAT_MENU
if (gui.menu_is_active)
status_area.y += gui.menu_height;
#endif
status_area.height = gui.char_height;
status_list = XVaCreateNestedList(0, XNArea, &status_area, NULL);
}
else
{
status_area.x = 0;
status_area.y = gui.char_height * Rows + gui.border_offset;
if (gui.which_scrollbars[SBAR_BOTTOM])
status_area.y += gui.scrollbar_height;
#ifdef FEAT_MENU
if (gui.menu_is_active)
status_area.y += gui.menu_height;
#endif
status_area.width = 0;
status_area.height = gui.char_height;
}
if (input_style & XIMPreeditArea) /* off-the-spot */
{
pre_area.x = status_area.x + status_area.width;
pre_area.y = gui.char_height * Rows + gui.border_offset;
pre_area.width = gui.char_width * Columns - pre_area.x;
if (gui.which_scrollbars[SBAR_BOTTOM])
pre_area.y += gui.scrollbar_height;
#ifdef FEAT_MENU
if (gui.menu_is_active)
pre_area.y += gui.menu_height;
#endif
pre_area.height = gui.char_height;
preedit_list = XVaCreateNestedList(0, XNArea, &pre_area, NULL);
}
else if (input_style & XIMPreeditPosition) /* over-the-spot */
{
pre_area.x = 0;
pre_area.y = 0;
pre_area.height = gui.char_height * Rows;
pre_area.width = gui.char_width * Columns;
preedit_list = XVaCreateNestedList(0, XNArea, &pre_area, NULL);
}
if (preedit_list && status_list)
list = XVaCreateNestedList(0, XNPreeditAttributes, preedit_list,
XNStatusAttributes, status_list, NULL);
else if (preedit_list)
list = XVaCreateNestedList(0, XNPreeditAttributes, preedit_list,
NULL);
else if (status_list)
list = XVaCreateNestedList(0, XNStatusAttributes, status_list,
NULL);
else
list = NULL;
if (list)
{
XSetICValues(xic, XNVaNestedList, list, NULL);
XFree(list);
}
if (status_list)
XFree(status_list);
if (preedit_list)
XFree(preedit_list);
}
int
xim_get_status_area_height()
{
if (status_area_enabled)
return gui.char_height;
return 0;
} }
# endif # endif
# if defined(FEAT_GUI_GTK) || defined(PROTO)
int
im_is_preediting()
{
return xim_has_preediting;
}
# endif
#endif /* FEAT_XIM */ #endif /* FEAT_XIM */
#if defined(FEAT_MBYTE) || defined(PROTO) #if defined(FEAT_MBYTE) || defined(PROTO)

View File

@ -3494,7 +3494,7 @@ netbeans_draw_multisign_indicator(int row)
} }
#endif /* FEAT_GUI_MOTIF */ #endif /* FEAT_GUI_MOTIF */
#ifdef FEAT_GUI_GTK #if defined(FEAT_GUI_GTK) && !defined(PROTO)
/* /*
* We have multiple signs to draw at the same location. Draw the * We have multiple signs to draw at the same location. Draw the
* multi-sign indicator instead. This is the GTK/Gnome version. * multi-sign indicator instead. This is the GTK/Gnome version.

View File

@ -5444,7 +5444,7 @@ write_viminfo_registers(fp)
int max_kbyte; int max_kbyte;
long len; long len;
fprintf(fp, _("\n# Registers:\n")); fputs(_("\n# Registers:\n"), fp);
/* Get '<' value, use old '"' value if '<' is not found. */ /* Get '<' value, use old '"' value if '<' is not found. */
max_num_lines = get_viminfo_parameter('<'); max_num_lines = get_viminfo_parameter('<');
@ -5474,7 +5474,7 @@ write_viminfo_registers(fp)
num_lines = y_regs[i].y_size; num_lines = y_regs[i].y_size;
if (num_lines == 0 if (num_lines == 0
|| (num_lines == 1 && y_regs[i].y_type == MCHAR || (num_lines == 1 && y_regs[i].y_type == MCHAR
&& STRLEN(y_regs[i].y_array[0]) == 0)) && *y_regs[i].y_array[0] == NUL))
continue; continue;
if (max_kbyte > 0) if (max_kbyte > 0)

View File

@ -409,8 +409,7 @@ vms_wproc(char *name, int val)
int int
mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***file, int flags) mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***file, int flags)
{ {
int i, j = 0, cnt = 0; int i, cnt = 0;
char *cp;
char_u buf[MAXPATHL]; char_u buf[MAXPATHL];
int dir; int dir;
int files_alloced, files_free; int files_alloced, files_free;
@ -481,7 +480,6 @@ mch_expand_wildcards(int num_pat, char_u **pat, int *num_file, char_u ***file, i
mch_expandpath(garray_T *gap, char_u *path, int flags) mch_expandpath(garray_T *gap, char_u *path, int flags)
{ {
int i,cnt = 0; int i,cnt = 0;
char *cp;
vms_match_num = 0; vms_match_num = 0;
cnt = decc$to_vms(decc$translate_vms(vms_fixfilename(path)), vms_wproc, 1, 0); cnt = decc$to_vms(decc$translate_vms(vms_fixfilename(path)), vms_wproc, 1, 0);

View File

@ -193,8 +193,6 @@ mch_check_win(
int argc, int argc,
char **argv) char **argv)
{ {
int i;
return OK; /* GUI always has a tty */ return OK; /* GUI always has a tty */
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -69,23 +69,21 @@ int encname2codepage __ARGS((char_u *name));
void *my_iconv_open __ARGS((char_u *to, char_u *from)); void *my_iconv_open __ARGS((char_u *to, char_u *from));
int iconv_enabled __ARGS((int verbose)); int iconv_enabled __ARGS((int verbose));
void iconv_end __ARGS((void)); void iconv_end __ARGS((void));
int im_xim_isvalid_imactivate __ARGS((void));
void im_set_active __ARGS((int active)); void im_set_active __ARGS((int active));
void xim_set_focus __ARGS((int focus)); void xim_set_focus __ARGS((int focus));
void im_set_position __ARGS((int row, int col)); void im_set_position __ARGS((int row, int col));
void xim_set_preedit __ARGS((void)); void xim_set_preedit __ARGS((void));
void xim_set_status_area __ARGS((void));
void xim_init __ARGS((void));
void xim_decide_input_style __ARGS((void));
int im_get_feedback_attr __ARGS((int col)); int im_get_feedback_attr __ARGS((int col));
void xim_reset __ARGS((void));
int xim_queue_key_press_event __ARGS((GdkEventKey *event, int down));
void xim_init __ARGS((void)); void xim_init __ARGS((void));
void im_shutdown __ARGS((void)); void im_shutdown __ARGS((void));
int xim_get_status_area_height __ARGS((void)); int im_xim_isvalid_imactivate __ARGS((void));
void xim_reset __ARGS((void));
int xim_queue_key_press_event __ARGS((GdkEventKey *event, int down));
int im_get_status __ARGS((void)); int im_get_status __ARGS((void));
int preedit_get_status __ARGS((void)); int preedit_get_status __ARGS((void));
int im_is_preediting __ARGS((void)); int im_is_preediting __ARGS((void));
void xim_set_status_area __ARGS((void));
int xim_get_status_area_height __ARGS((void));
int convert_setup __ARGS((vimconv_T *vcp, char_u *from, char_u *to)); int convert_setup __ARGS((vimconv_T *vcp, char_u *from, char_u *to));
int convert_setup_ext __ARGS((vimconv_T *vcp, char_u *from, int from_unicode_is_utf8, char_u *to, int to_unicode_is_utf8)); int convert_setup_ext __ARGS((vimconv_T *vcp, char_u *from, int from_unicode_is_utf8, char_u *to, int to_unicode_is_utf8));
int convert_input __ARGS((char_u *ptr, int len, int maxlen)); int convert_input __ARGS((char_u *ptr, int len, int maxlen));

View File

@ -11,7 +11,7 @@ void netbeans_beval_cb __ARGS((BalloonEval *beval, int state));
int netbeans_active __ARGS((void)); int netbeans_active __ARGS((void));
int netbeans_filedesc __ARGS((void)); int netbeans_filedesc __ARGS((void));
void netbeans_gui_register __ARGS((void)); void netbeans_gui_register __ARGS((void));
void netbeans_open __ARGS((char *params, int abort)); void netbeans_open __ARGS((char *params, int doabort));
void netbeans_send_disconnect __ARGS((void)); void netbeans_send_disconnect __ARGS((void));
void netbeans_frame_moved __ARGS((int new_x, int new_y)); void netbeans_frame_moved __ARGS((int new_x, int new_y));
void netbeans_file_activated __ARGS((buf_T *bufp)); void netbeans_file_activated __ARGS((buf_T *bufp));
@ -26,6 +26,5 @@ void netbeans_save_buffer __ARGS((buf_T *bufp));
void netbeans_deleted_all_lines __ARGS((buf_T *bufp)); void netbeans_deleted_all_lines __ARGS((buf_T *bufp));
int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot)); int netbeans_is_guarded __ARGS((linenr_T top, linenr_T bot));
void netbeans_draw_multisign_indicator __ARGS((int row)); void netbeans_draw_multisign_indicator __ARGS((int row));
void netbeans_draw_multisign_indicator __ARGS((int row));
void netbeans_gutter_click __ARGS((linenr_T lnum)); void netbeans_gutter_click __ARGS((linenr_T lnum));
/* vim: set ft=c : */ /* vim: set ft=c : */

View File

@ -2591,6 +2591,8 @@ out_char(c)
static void out_char_nf __ARGS((unsigned)); static void out_char_nf __ARGS((unsigned));
#if defined(FEAT_GUI) || defined(FEAT_TITLE) \
|| defined(FEAT_TERMRESPONSE) || defined(FEAT_MOUSE_TTY)
/* /*
* out_char_nf(c): like out_char(), but don't flush when p_wd is set * out_char_nf(c): like out_char(), but don't flush when p_wd is set
*/ */
@ -5435,6 +5437,7 @@ req_more_codes_from_term()
if (xt_index_out != old_idx) if (xt_index_out != old_idx)
out_flush(); out_flush();
} }
#endif
/* /*
* Decode key code response from xterm: '<Esc>P1+r<name>=<string><Esc>\'. * Decode key code response from xterm: '<Esc>P1+r<name>=<string><Esc>\'.