summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1086
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1086')
-rw-r--r--data/vim/patches/8.1.10861395
1 files changed, 1395 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1086 b/data/vim/patches/8.1.1086
new file mode 100644
index 000000000..6c8ded11e
--- /dev/null
+++ b/data/vim/patches/8.1.1086
@@ -0,0 +1,1395 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1086
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.1086
+Problem: Too many curly braces.
+Solution: Remove curly braces where they are not needed. (Hirohito Higashi,
+ closes #3982)
+Files: src/autocmd.c, src/buffer.c, src/crypt_zip.c, src/dosinst.c,
+ src/edit.c, src/insexpand.c, src/evalfunc.c, src/ex_cmds.c,
+ src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/gui.c,
+ src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c, src/gui_photon.c,
+ src/gui_w32.c, src/gui_x11.c, src/if_mzsch.c, src/if_python3.c,
+ src/if_ruby.c, src/if_tcl.c, src/indent.c, src/libvterm/src/pen.c,
+ src/macros.h, src/memline.c, src/menu.c, src/misc1.c, src/move.c,
+ src/netbeans.c, src/normal.c, src/ops.c, src/option.c,
+ src/os_mswin.c, src/os_qnx.c, src/os_unix.c, src/os_win32.c,
+ src/regexp_nfa.c, src/screen.c, src/spell.c, src/terminal.c
+
+
+*** ../vim-8.1.1085/src/autocmd.c 2019-01-26 16:20:44.264683546 +0100
+--- src/autocmd.c 2019-03-30 18:37:32.355407021 +0100
+***************
+*** 517,525 ****
+ }
+ vim_free(AUGROUP_NAME(i));
+ if (in_use)
+- {
+ AUGROUP_NAME(i) = get_deleted_augroup();
+- }
+ else
+ AUGROUP_NAME(i) = NULL;
+ }
+--- 517,523 ----
+*** ../vim-8.1.1085/src/buffer.c 2019-03-24 14:02:00.981468747 +0100
+--- src/buffer.c 2019-03-30 18:37:32.355407021 +0100
+***************
+*** 1595,1603 ****
+ set_curbuf(buf, action);
+
+ if (action == DOBUF_SPLIT)
+- {
+ RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
+- }
+
+ #if defined(FEAT_EVAL)
+ if (aborting()) /* autocmds may abort script processing */
+--- 1595,1601 ----
+***************
+*** 3054,3062 ****
+ /* put "line 999" in column 40 or after the file name */
+ i = 40 - vim_strsize(IObuff);
+ do
+- {
+ IObuff[len++] = ' ';
+! } while (--i > 0 && len < IOSIZE - 18);
+ vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len),
+ _("line %ld"), buf == curbuf ? curwin->w_cursor.lnum
+ : (long)buflist_findlnum(buf));
+--- 3052,3059 ----
+ /* put "line 999" in column 40 or after the file name */
+ i = 40 - vim_strsize(IObuff);
+ do
+ IObuff[len++] = ' ';
+! while (--i > 0 && len < IOSIZE - 18);
+ vim_snprintf((char *)IObuff + len, (size_t)(IOSIZE - len),
+ _("line %ld"), buf == curbuf ? curwin->w_cursor.lnum
+ : (long)buflist_findlnum(buf));
+*** ../vim-8.1.1085/src/crypt_zip.c 2019-01-24 17:59:35.131217488 +0100
+--- src/crypt_zip.c 2019-03-30 18:37:32.355407021 +0100
+***************
+*** 68,79 ****
+ /*
+ * Update the encryption keys with the next byte of plain text.
+ */
+! #define UPDATE_KEYS_ZIP(keys, c) { \
+ keys[0] = CRC32(keys[0], (c)); \
+ keys[1] += keys[0] & 0xff; \
+ keys[1] = keys[1] * 134775813L + 1; \
+ keys[2] = CRC32(keys[2], (int)(keys[1] >> 24)); \
+! }
+
+ /*
+ * Initialize for encryption/decryption.
+--- 68,79 ----
+ /*
+ * Update the encryption keys with the next byte of plain text.
+ */
+! #define UPDATE_KEYS_ZIP(keys, c) do { \
+ keys[0] = CRC32(keys[0], (c)); \
+ keys[1] += keys[0] & 0xff; \
+ keys[1] = keys[1] * 134775813L + 1; \
+ keys[2] = CRC32(keys[2], (int)(keys[1] >> 24)); \
+! } while (0)
+
+ /*
+ * Initialize for encryption/decryption.
+***************
+*** 98,106 ****
+ zs->keys[1] = 591751049L;
+ zs->keys[2] = 878082192L;
+ for (p = key; *p != NUL; ++p)
+- {
+ UPDATE_KEYS_ZIP(zs->keys, (int)*p);
+- }
+ }
+
+ /*
+--- 98,104 ----
+*** ../vim-8.1.1085/src/dosinst.c 2019-02-22 19:40:57.693250456 +0100
+--- src/dosinst.c 2019-03-30 18:37:32.355407021 +0100
+***************
+*** 849,855 ****
+ * for MSDOS and NT.
+ * The order of preference is:
+ * 1. $VIMRUNTIME/vim.exe (user preference)
+! * 2. $VIM/vim70/vim.exe (hard coded version)
+ * 3. installdir/vim.exe (hard coded install directory)
+ */
+ fprintf(fd, "set VIM_EXE_DIR=%s\n", installdir);
+--- 849,855 ----
+ * for MSDOS and NT.
+ * The order of preference is:
+ * 1. $VIMRUNTIME/vim.exe (user preference)
+! * 2. $VIM/vim81/vim.exe (hard coded version)
+ * 3. installdir/vim.exe (hard coded install directory)
+ */
+ fprintf(fd, "set VIM_EXE_DIR=%s\n", installdir);
+***************
+*** 1568,1576 ****
+
+ for (i = 0; ERROR_SUCCESS == lRet
+ && i < sizeof(openwith) / sizeof(openwith[0]); i++)
+- {
+ lRet = reg_create_key_and_value(hRootKey, openwith[i], NULL, "", flag);
+- }
+ }
+
+ return lRet;
+--- 1568,1574 ----
+*** ../vim-8.1.1085/src/edit.c 2019-03-30 13:53:26.170425120 +0100
+--- src/edit.c 2019-03-30 18:37:32.355407021 +0100
+***************
+*** 5363,5371 ****
+ if (end == NULL && vpeekc() == NUL)
+ break;
+ do
+- {
+ c = vgetc();
+! } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
+ if (c == NUL || got_int)
+ // When CTRL-C was encountered the typeahead will be flushed and we
+ // won't get the end sequence.
+--- 5363,5370 ----
+ if (end == NULL && vpeekc() == NUL)
+ break;
+ do
+ c = vgetc();
+! while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
+ if (c == NUL || got_int)
+ // When CTRL-C was encountered the typeahead will be flushed and we
+ // won't get the end sequence.
+*** ../vim-8.1.1085/src/insexpand.c 2019-03-30 13:53:26.174425093 +0100
+--- src/insexpand.c 2019-03-30 18:38:17.835144688 +0100
+***************
+*** 2606,2614 ****
+ TAG_REGEXP | TAG_NAMES | TAG_NOIC | TAG_INS_COMP
+ | (ctrl_x_mode != CTRL_X_NORMAL ? TAG_VERBOSE : 0),
+ TAG_MANY, curbuf->b_ffname) == OK && num_matches > 0)
+- {
+ ins_compl_add_matches(num_matches, matches, p_ic);
+- }
+ p_ic = save_p_ic;
+ break;
+
+--- 2606,2612 ----
+*** ../vim-8.1.1085/src/evalfunc.c 2019-03-30 18:10:57.649082383 +0100
+--- src/evalfunc.c 2019-03-30 18:37:32.359406998 +0100
+***************
+*** 3568,3576 ****
+ && argvars[2].v_type != VAR_UNKNOWN
+ && tv_get_number_chk(&argvars[2], &error)
+ && !error)
+- {
+ rettv_list_set(rettv, NULL);
+- }
+
+ s = tv_get_string(&argvars[0]);
+ if (*s == '%' || *s == '#' || *s == '<')
+--- 3568,3574 ----
+***************
+*** 6081,6089 ****
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ {
+ if (tv_get_number_chk(&argvars[2], &error))
+- {
+ rettv_list_set(rettv, NULL);
+- }
+ if (argvars[3].v_type != VAR_UNKNOWN
+ && tv_get_number_chk(&argvars[3], &error))
+ options |= WILD_ALLLINKS;
+--- 6079,6085 ----
+***************
+*** 6137,6145 ****
+ if (argvars[3].v_type != VAR_UNKNOWN)
+ {
+ if (tv_get_number_chk(&argvars[3], &error))
+- {
+ rettv_list_set(rettv, NULL);
+- }
+ if (argvars[4].v_type != VAR_UNKNOWN
+ && tv_get_number_chk(&argvars[4], &error))
+ flags |= WILD_ALLLINKS;
+--- 6133,6139 ----
+*** ../vim-8.1.1085/src/ex_cmds.c 2019-03-27 22:53:49.915226686 +0100
+--- src/ex_cmds.c 2019-03-30 18:37:32.359406998 +0100
+***************
+*** 3361,3369 ****
+ /* Change directories when the 'acd' option is set and the file name
+ * got changed or set. */
+ if (eap->cmdidx == CMD_saveas || name_was_missing)
+- {
+ DO_AUTOCHDIR;
+- }
+ }
+
+ theend:
+--- 3361,3367 ----
+*** ../vim-8.1.1085/src/ex_docmd.c 2019-03-30 14:26:15.268619122 +0100
+--- src/ex_docmd.c 2019-03-30 18:37:32.359406998 +0100
+***************
+*** 8407,8415 ****
+ || cmdmod.browse
+ # endif
+ )
+- {
+ RESET_BINDING(curwin);
+- }
+ else
+ do_check_scrollbind(FALSE);
+ do_exedit(eap, old_curwin);
+--- 8407,8413 ----
+*** ../vim-8.1.1085/src/ex_getln.c 2019-02-17 17:44:36.207875527 +0100
+--- src/ex_getln.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 1029,1037 ****
+ /* Get a character. Ignore K_IGNORE and K_NOP, they should not do
+ * anything, such as stop completion. */
+ do
+- {
+ c = safe_vgetc();
+! } while (c == K_IGNORE || c == K_NOP);
+
+ if (KeyTyped)
+ {
+--- 1029,1036 ----
+ /* Get a character. Ignore K_IGNORE and K_NOP, they should not do
+ * anything, such as stop completion. */
+ do
+ c = safe_vgetc();
+! while (c == K_IGNORE || c == K_NOP);
+
+ if (KeyTyped)
+ {
+***************
+*** 2833,2841 ****
+ if (*p == TAB)
+ {
+ do
+- {
+ msg_putchar(' ');
+! } while (++vcol % 8);
+ ++p;
+ }
+ else
+--- 2832,2839 ----
+ if (*p == TAB)
+ {
+ do
+ msg_putchar(' ');
+! while (++vcol % 8);
+ ++p;
+ }
+ else
+***************
+*** 2908,2916 ****
+ {
+ /* Don't use chartabsize(), 'ts' can be different */
+ do
+- {
+ msg_putchar(' ');
+! } while (++vcol % 8);
+ }
+ else
+ {
+--- 2906,2913 ----
+ {
+ /* Don't use chartabsize(), 'ts' can be different */
+ do
+ msg_putchar(' ');
+! while (++vcol % 8);
+ }
+ else
+ {
+*** ../vim-8.1.1085/src/getchar.c 2019-03-10 09:41:46.474817008 +0100
+--- src/getchar.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 1813,1821 ****
+ int c;
+
+ do
+- {
+ c = safe_vgetc();
+! } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
+
+ if (c == K_PS)
+ /* Only handle the first pasted character. Drop the rest, since we
+--- 1813,1820 ----
+ int c;
+
+ do
+ c = safe_vgetc();
+! while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
+
+ if (c == K_PS)
+ /* Only handle the first pasted character. Drop the rest, since we
+*** ../vim-8.1.1085/src/gui.c 2019-02-17 17:44:36.207875527 +0100
+--- src/gui.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 3508,3516 ****
+ else
+ {
+ FOR_ALL_WINDOWS(wp)
+- {
+ gui_do_scrollbar(wp, i, gui.which_scrollbars[i]);
+- }
+ }
+ if (gui.which_scrollbars[i] != prev_which_scrollbars[i])
+ {
+--- 3508,3514 ----
+***************
+*** 3830,3838 ****
+ else
+ {
+ FOR_ALL_WINDOWS(wp)
+- {
+ gui_do_scrollbar(wp, i, FALSE);
+- }
+ }
+ curtab->tp_prev_which_scrollbars[i] = -1;
+ }
+--- 3828,3834 ----
+*** ../vim-8.1.1085/src/gui_gtk.c 2019-02-17 17:44:36.207875527 +0100
+--- src/gui_gtk.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 2573,2581 ****
+ nonempty = (entry_text[0] != '\0');
+
+ if (dialog == find_widgets.dialog)
+- {
+ gtk_widget_set_sensitive(find_widgets.find, nonempty);
+- }
+
+ if (dialog == repl_widgets.dialog)
+ {
+--- 2573,2579 ----
+*** ../vim-8.1.1085/src/gui_mac.c 2019-03-02 10:13:36.796974835 +0100
+--- src/gui_mac.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 360,368 ****
+ for (c = Cstring, p = PascalString+1, len = 0; (*c != 0) && (len < 255); c++)
+ {
+ if ((*c == '\\') && (c[1] != 0))
+- {
+ c++;
+- }
+ *p = *c;
+ p++;
+ len++;
+--- 360,366 ----
+***************
+*** 1259,1283 ****
+ error = AEInstallEventHandler(kCoreEventClass, kAEOpenApplication,
+ NewAEEventHandlerUPP(Handle_aevt_oapp_AE), 0, false);
+ if (error)
+- {
+ return error;
+- }
+
+ /* install quit application handler */
+ error = AEInstallEventHandler(kCoreEventClass, kAEQuitApplication,
+ NewAEEventHandlerUPP(Handle_aevt_quit_AE), 0, false);
+ if (error)
+- {
+ return error;
+- }
+
+ /* install open document handler */
+ error = AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments,
+ NewAEEventHandlerUPP(HandleODocAE), 0, false);
+ if (error)
+- {
+ return error;
+- }
+
+ /* install print document handler */
+ error = AEInstallEventHandler(kCoreEventClass, kAEPrintDocuments,
+--- 1257,1275 ----
+***************
+*** 1331,1345 ****
+ error = AEInstallEventHandler('KAHL', 'GTTX',
+ NewAEEventHandlerUPP(Handle_KAHL_GTTX_AE), 0, false);
+ if (error)
+- {
+ return error;
+- }
+ error = AEInstallEventHandler('KAHL', 'SRCH',
+ NewAEEventHandlerUPP(Handle_KAHL_SRCH_AE), 0, false);
+ if (error)
+- {
+ return error;
+- }
+ error = AEInstallEventHandler('KAHL', 'MOD ',
+ NewAEEventHandlerUPP(Handle_KAHL_MOD_AE), 0, false);
+ #endif
+--- 1323,1333 ----
+***************
+*** 3857,3865 ****
+ /* SelectFont(hdc, gui.currFont); */
+
+ if (flags & DRAW_TRANSP)
+- {
+ TextMode(srcOr);
+- }
+
+ MoveTo(TEXT_X(col), TEXT_Y(row));
+ DrawText((char *)s, 0, len);
+--- 3845,3851 ----
+***************
+*** 3939,3947 ****
+
+ /* SelectFont(hdc, gui.currFont); */
+ if (flags & DRAW_TRANSP)
+- {
+ TextMode(srcOr);
+- }
+
+ MoveTo(TEXT_X(col), TEXT_Y(row));
+
+--- 3925,3931 ----
+***************
+*** 4620,4632 ****
+ GetWindowBounds(gui.VimWindow, kWindowGlobalPortRgn, &VimBound);
+
+ if (gui.which_scrollbars[SBAR_LEFT])
+- {
+ VimBound.left = -gui.scrollbar_width + 1;
+- }
+ else
+- {
+ VimBound.left = 0;
+- }
+
+ SetWindowBounds(gui.VimWindow, kWindowGlobalPortRgn, &VimBound);
+
+--- 4604,4612 ----
+***************
+*** 5675,5683 ****
+
+ /* Hang until one of the button is hit */
+ do
+- {
+ ModalDialog(dialogUPP, &itemHit);
+! } while ((itemHit < 1) || (itemHit > lastButton));
+
+ #ifdef USE_CARBONKEYHANDLER
+ dialog_busy = FALSE;
+--- 5655,5662 ----
+
+ /* Hang until one of the button is hit */
+ do
+ ModalDialog(dialogUPP, &itemHit);
+! while ((itemHit < 1) || (itemHit > lastButton));
+
+ #ifdef USE_CARBONKEYHANDLER
+ dialog_busy = FALSE;
+*** ../vim-8.1.1085/src/gui_motif.c 2019-01-17 17:13:25.920984090 +0100
+--- src/gui_motif.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 916,928 ****
+ # endif
+ {
+ if (gui.menu_bg_pixel != INVALCOLOR)
+- {
+ XtSetArg(arg[0], XmNbackground, gui.menu_bg_pixel); n++;
+- }
+ if (gui.menu_fg_pixel != INVALCOLOR)
+- {
+ XtSetArg(arg[1], XmNforeground, gui.menu_fg_pixel); n++;
+- }
+ menu->submenu_id = XmCreatePopupMenu(textArea, "contextMenu",
+ arg, n);
+ menu->id = (Widget)0;
+--- 916,924 ----
+***************
+*** 1243,1251 ****
+ else
+ {
+ if (menu->xpm_fname != NULL)
+- {
+ XtSetArg(args[n], XmNpixmapFile, menu->xpm_fname); n++;
+- }
+ XtSetArg(args[n], XmNpixmapData, menu->xpm); n++;
+ XtSetArg(args[n], XmNlabelLocation, XmBOTTOM); n++;
+ }
+--- 1239,1245 ----
+*** ../vim-8.1.1085/src/gui_photon.c 2019-01-28 22:32:54.891909109 +0100
+--- src/gui_photon.c 2019-03-30 18:37:32.363406975 +0100
+***************
+*** 451,459 ****
+
+ /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+ if (key->key_flags & Pk_KF_Compose)
+- {
+ return Pt_CONTINUE;
+- }
+
+ if ((key->key_flags & Pk_KF_Cap_Valid) &&
+ PkIsKeyDown(key->key_flags))
+--- 451,457 ----
+***************
+*** 1011,1019 ****
+ for (i = 0; i < num_panels; i++)
+ {
+ if (STRCMP(panel_titles[ i ], name) != 0)
+- {
+ *s++ = panel_titles[ i ];
+- }
+ }
+ num_panels--;
+
+--- 1009,1015 ----
+***************
+*** 1334,1342 ****
+
+ PtAppAddWorkProc(NULL, exit_gui_mch_update, &working);
+ while ((working == TRUE) && !vim_is_input_buf_full())
+- {
+ PtProcessEvent();
+- }
+ }
+
+ int
+--- 1330,1336 ----
+***************
+*** 2408,2416 ****
+
+ if (menu->iconidx >= 0 &&
+ (menu->iconidx < ARRAY_LENGTH(gui_ph_toolbar_images)))
+- {
+ return gui_ph_toolbar_images[menu->iconidx];
+- }
+
+ return NULL;
+ }
+--- 2402,2408 ----
+*** ../vim-8.1.1085/src/gui_w32.c 2019-03-30 16:24:12.236380270 +0100
+--- src/gui_w32.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 1155,1163 ****
+ /* If the OS is Windows NT, and 'encoding' differs from active codepage:
+ * convert text from wide string. */
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+- {
+ findrep_wtoa(&s_findrep_struct, &s_findrep_struct_w);
+- }
+
+ if (s_findrep_struct.Flags & FR_DIALOGTERM)
+ /* Give main window the focus back. */
+--- 1155,1161 ----
+***************
+*** 2633,2641 ****
+ }
+ }
+ if (wstr == NULL)
+- {
+ TabCtrl_SetItem(s_tabhwnd, nr, &tie);
+- }
+ }
+
+ /* Remove any old labels. */
+--- 2631,2637 ----
+***************
+*** 4289,4297 ****
+ }
+
+ if (fix_window && menu_height != old_menu_height)
+- {
+ gui_set_shellsize(FALSE, FALSE, RESIZE_VERT);
+- }
+ old_menu_height = menu_height;
+
+ return menu_height;
+--- 4285,4291 ----
+***************
+*** 4861,4869 ****
+ default:
+ #ifdef MSWIN_FIND_REPLACE
+ if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+- {
+ _OnFindRepl();
+- }
+ #endif
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+--- 4855,4861 ----
+*** ../vim-8.1.1085/src/gui_x11.c 2019-01-28 22:32:54.895909080 +0100
+--- src/gui_x11.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 3015,3023 ****
+
+ if (e->type == PropertyNotify && e->window == commWindow
+ && e->atom == commProperty && e->state == PropertyNewValue)
+- {
+ serverEventProc(gui.dpy, event, 0);
+- }
+ }
+ #endif
+
+--- 3015,3021 ----
+*** ../vim-8.1.1085/src/if_mzsch.c 2019-02-17 17:44:36.211875510 +0100
+--- src/if_mzsch.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 3805,3813 ****
+ Scheme_Object *item = SCHEME_CAR(requested_access);
+ if (scheme_eq(item, M_write) || scheme_eq(item, M_read)
+ || scheme_eq(item, M_execute) || scheme_eq(item, M_delete))
+- {
+ raise_vim_exn(_("not allowed in the Vim sandbox"));
+- }
+ requested_access = SCHEME_CDR(requested_access);
+ }
+ }
+--- 3805,3811 ----
+*** ../vim-8.1.1085/src/if_python3.c 2019-03-19 22:22:51.807819390 +0100
+--- src/if_python3.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 1236,1244 ****
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ &start, &stop,
+ &step, &slicelen) < 0)
+- {
+ return NULL;
+- }
+ return BufferSlice((BufferObject *)(self), start, stop);
+ }
+ else
+--- 1236,1242 ----
+***************
+*** 1268,1276 ****
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ &start, &stop,
+ &step, &slicelen) < 0)
+- {
+ return -1;
+- }
+ return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
+ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+--- 1266,1272 ----
+***************
+*** 1352,1360 ****
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+ &step, &slicelen) < 0)
+- {
+ return NULL;
+- }
+ return RangeSlice((RangeObject *)(self), start, stop);
+ }
+ else
+--- 1348,1354 ----
+***************
+*** 1371,1377 ****
+ {
+ long n = PyLong_AsLong(idx);
+ return RangeAsItem(self, n, val);
+! } else if (PySlice_Check(idx))
+ {
+ Py_ssize_t start, stop, step, slicelen;
+
+--- 1365,1372 ----
+ {
+ long n = PyLong_AsLong(idx);
+ return RangeAsItem(self, n, val);
+! }
+! else if (PySlice_Check(idx))
+ {
+ Py_ssize_t start, stop, step, slicelen;
+
+***************
+*** 1379,1387 ****
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+ &step, &slicelen) < 0)
+- {
+ return -1;
+- }
+ return RangeAsSlice(self, start, stop, val);
+ }
+ else
+--- 1374,1380 ----
+*** ../vim-8.1.1085/src/if_ruby.c 2019-03-26 22:50:19.151698126 +0100
+--- src/if_ruby.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 846,854 ****
+ enc = rb_enc_find((char *)sval);
+ vim_free(sval);
+ if (enc)
+- {
+ return rb_enc_str_new(s, (long)strlen(s), enc);
+- }
+ }
+ #endif
+ return rb_str_new2(s);
+--- 846,852 ----
+***************
+*** 1171,1179 ****
+ if (list != NULL)
+ {
+ for (curr = list->lv_first; curr != NULL; curr = curr->li_next)
+- {
+ rb_ary_push(result, vim_to_ruby(&curr->li_tv));
+- }
+ }
+ }
+ else if (tv->v_type == VAR_DICT)
+--- 1169,1175 ----
+***************
+*** 1227,1235 ****
+
+ tv = eval_expr((char_u *)StringValuePtr(str), NULL);
+ if (tv == NULL)
+- {
+ return Qnil;
+- }
+ result = vim_to_ruby(tv);
+
+ free_tv(tv);
+--- 1223,1229 ----
+*** ../vim-8.1.1085/src/if_tcl.c 2019-02-17 17:44:36.211875510 +0100
+--- src/if_tcl.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 811,819 ****
+
+ pos = NULL;
+ if (line[0] != '\0' && line[1] == '\0')
+- {
+ pos = getmark(line[0], FALSE);
+- }
+ if (pos == NULL)
+ {
+ Tcl_SetResult(interp, _("invalid mark name"), TCL_STATIC);
+--- 811,817 ----
+***************
+*** 1529,1537 ****
+ if (reflist->interp == interp && reflist->vimobj == vimobj)
+ {
+ if (reflist->delcmd)
+- {
+ Tcl_DecrRefCount(reflist->delcmd);
+- }
+ Tcl_IncrRefCount(delcmd);
+ reflist->delcmd = delcmd;
+ return TCL_OK;
+--- 1527,1533 ----
+*** ../vim-8.1.1085/src/indent.c 2019-02-04 20:30:13.973460115 +0100
+--- src/indent.c 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 3870,3878 ****
+ // this must be the if that we want!
+ // match the indent level of that if.
+ if (elselevel <= 0 && whilelevel <= 0)
+- {
+ return OK;
+- }
+ }
+ }
+ return FAIL;
+--- 3870,3876 ----
+*** ../vim-8.1.1085/src/libvterm/src/pen.c 2018-04-24 18:12:35.000000000 +0200
+--- src/libvterm/src/pen.c 2019-03-30 18:46:34.232215820 +0100
+***************
+*** 385,396 ****
+ break;
+ }
+
+! if(!done)
+ {
+ DEBUG_LOG1("libvterm: Unhandled CSI SGR %lu\n", arg);
+ }
+
+! while(CSI_ARG_HAS_MORE(args[argi++]));
+ }
+ }
+
+--- 385,397 ----
+ break;
+ }
+
+! if (!done)
+ {
+ DEBUG_LOG1("libvterm: Unhandled CSI SGR %lu\n", arg);
+ }
+
+! while (CSI_ARG_HAS_MORE(args[argi++]))
+! ;
+ }
+ }
+
+*** ../vim-8.1.1085/src/macros.h 2019-03-22 16:33:03.483016118 +0100
+--- src/macros.h 2019-03-30 18:37:32.367406953 +0100
+***************
+*** 32,38 ****
+ ? (a)->col < (b)->col \
+ : (a)->coladd < (b)->coladd)
+ #define EQUAL_POS(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col) && ((a).coladd == (b).coladd))
+! #define CLEAR_POS(a) {(a)->lnum = 0; (a)->col = 0; (a)->coladd = 0;}
+
+ #define LTOREQ_POS(a, b) (LT_POS(a, b) || EQUAL_POS(a, b))
+
+--- 32,38 ----
+ ? (a)->col < (b)->col \
+ : (a)->coladd < (b)->coladd)
+ #define EQUAL_POS(a, b) (((a).lnum == (b).lnum) && ((a).col == (b).col) && ((a).coladd == (b).coladd))
+! #define CLEAR_POS(a) do {(a)->lnum = 0; (a)->col = 0; (a)->coladd = 0;} while (0)
+
+ #define LTOREQ_POS(a, b) (LT_POS(a, b) || EQUAL_POS(a, b))
+
+***************
+*** 240,246 ****
+ /* get length of multi-byte char, not including composing chars */
+ #define MB_CPTR2LEN(p) (enc_utf8 ? utf_ptr2len(p) : (*mb_ptr2len)(p))
+
+! #define MB_COPY_CHAR(f, t) if (has_mbyte) mb_copy_char(&f, &t); else *t++ = *f++
+ #define MB_CHARLEN(p) (has_mbyte ? mb_charlen(p) : (int)STRLEN(p))
+ #define MB_CHAR2LEN(c) (has_mbyte ? mb_char2len(c) : 1)
+ #define PTR2CHAR(p) (has_mbyte ? mb_ptr2char(p) : (int)*(p))
+--- 240,246 ----
+ /* get length of multi-byte char, not including composing chars */
+ #define MB_CPTR2LEN(p) (enc_utf8 ? utf_ptr2len(p) : (*mb_ptr2len)(p))
+
+! #define MB_COPY_CHAR(f, t) do { if (has_mbyte) mb_copy_char(&f, &t); else *t++ = *f++; } while (0)
+ #define MB_CHARLEN(p) (has_mbyte ? mb_charlen(p) : (int)STRLEN(p))
+ #define MB_CHAR2LEN(c) (has_mbyte ? mb_char2len(c) : 1)
+ #define PTR2CHAR(p) (has_mbyte ? mb_ptr2char(p) : (int)*(p))
+***************
+*** 251,257 ****
+ # define DO_AUTOCHDIR do { /**/ } while (0)
+ #endif
+
+! #define RESET_BINDING(wp) (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
+
+ #ifdef FEAT_DIFF
+ # define PLINES_NOFILL(x) plines_nofill(x)
+--- 251,258 ----
+ # define DO_AUTOCHDIR do { /**/ } while (0)
+ #endif
+
+! #define RESET_BINDING(wp) do { (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE; \
+! } while (0)
+
+ #ifdef FEAT_DIFF
+ # define PLINES_NOFILL(x) plines_nofill(x)
+*** ../vim-8.1.1085/src/memline.c 2019-02-17 17:44:36.211875510 +0100
+--- src/memline.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 1359,1367 ****
+ && ((mch_stat((char *)mfp->mf_fname, &swp_stat) != -1
+ && org_stat.st_mtime > swp_stat.st_mtime)
+ || org_stat.st_mtime != mtime))
+- {
+ emsg(_("E308: Warning: Original file may have been changed"));
+- }
+ out_flush();
+
+ /* Get the 'fileformat' and 'fileencoding' from block zero. */
+--- 1359,1365 ----
+***************
+*** 5307,5315 ****
+ curix < buf->b_ml.ml_usedchunks - 1
+ && line >= curline + buf->b_ml.ml_chunksize[curix].mlcs_numlines;
+ curix++)
+- {
+ curline += buf->b_ml.ml_chunksize[curix].mlcs_numlines;
+- }
+ }
+ else if (curix < buf->b_ml.ml_usedchunks - 1
+ && line >= curline + buf->b_ml.ml_chunksize[curix].mlcs_numlines)
+--- 5305,5311 ----
+*** ../vim-8.1.1085/src/menu.c 2019-02-17 17:44:36.215875493 +0100
+--- src/menu.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 1701,1709 ****
+ {
+ mch_memmove(p + 5 + mode_chars_len, p + 5, (size_t)(len - 4));
+ for (i = 0; i < mode_chars_len; ++i)
+- {
+ p[5 + i] = menu_mode_chars[idx][i];
+- }
+ }
+ return p;
+ }
+--- 1701,1707 ----
+***************
+*** 1889,1897 ****
+ {
+ #ifdef FEAT_TERMINAL
+ if (term_use_loop())
+- {
+ return MENU_INDEX_TERMINAL;
+- }
+ #endif
+ if (VIsual_active)
+ {
+--- 1887,1893 ----
+*** ../vim-8.1.1085/src/misc1.c 2019-03-16 18:11:03.642997885 +0100
+--- src/misc1.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 1949,1957 ****
+ string = vim_strchr(part_buf, ':');
+ if (string == NULL) /* If everything is fine, this cannot actually
+ * happen. */
+- {
+ continue;
+- }
+ *string++ = NUL; /* Isolate flags from string. */
+ com_leader = string;
+
+--- 1949,1955 ----
+***************
+*** 4093,4101 ****
+ || (*src == '%' && *tail != '%')
+ #endif
+ ))
+- {
+ *var++ = *tail++;
+- }
+ }
+
+ #if defined(MSWIN) || defined(UNIX)
+--- 4091,4097 ----
+*** ../vim-8.1.1085/src/move.c 2019-03-20 21:42:16.832737656 +0100
+--- src/move.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 1614,1622 ****
+ lp->height = 1;
+ else
+ #endif
+- {
+ lp->height = PLINES_NOFILL(lp->lnum);
+- }
+ }
+ }
+
+--- 1614,1620 ----
+*** ../vim-8.1.1085/src/netbeans.c 2019-02-17 19:12:17.642329933 +0100
+--- src/netbeans.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 1509,1517 ****
+ long savedChars = atol((char *)args);
+
+ if (buf == NULL || buf->bufp == NULL)
+- {
+ nbdebug((" invalid buffer identifier in saveDone\n"));
+- }
+ else
+ print_save_msg(buf, savedChars);
+ /* =====================================================================*/
+--- 1509,1515 ----
+***************
+*** 1990,1998 ****
+ args = (char_u *)cp;
+ # ifdef NBDEBUG
+ if (vim_ignored != -1)
+- {
+ nbdebug((" partial line annotation -- Not Yet Implemented!\n"));
+- }
+ # endif
+ if (serNum >= GUARDEDOFFSET)
+ {
+--- 1988,1994 ----
+*** ../vim-8.1.1085/src/normal.c 2019-03-25 22:21:21.557069182 +0100
+--- src/normal.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 811,819 ****
+ }
+ else if ((nv_cmds[idx].cmd_flags & NV_SSS)
+ && (mod_mask & MOD_MASK_SHIFT))
+- {
+ mod_mask &= ~MOD_MASK_SHIFT;
+- }
+ }
+ }
+
+--- 811,817 ----
+***************
+*** 3507,3515 ****
+ && col <= (int)startcol
+ && find_is_eval_item(ptr + col, &col, &bn, FORWARD))
+ )
+- {
+ ++col;
+- }
+
+ return col;
+ }
+--- 3505,3511 ----
+***************
+*** 4329,4337 ****
+ * inside a comment, continue searching. For K&R style function
+ * declarations this skips the function header without types. */
+ if (!valid)
+- {
+ CLEAR_POS(&found_pos);
+- }
+ else
+ found_pos = curwin->w_cursor;
+ /* Remove SEARCH_START from flags to avoid getting stuck at one
+--- 4325,4331 ----
+***************
+*** 9449,9457 ****
+ v_swap_corners(cap->cmdchar);
+ #ifdef FEAT_JOB_CHANNEL
+ else if (bt_prompt(curbuf))
+- {
+ clearopbeep(cap->oap);
+- }
+ #endif
+ else
+ n_opencmd(cap);
+--- 9443,9449 ----
+*** ../vim-8.1.1085/src/ops.c 2019-03-09 11:23:53.211751929 +0100
+--- src/ops.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 259,267 ****
+ #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+ if (first_char != '#' || !preprocs_left())
+ #endif
+- {
+ shift_line(oap->op_type == OP_LSHIFT, p_sr, amount, FALSE);
+- }
+ ++curwin->w_cursor.lnum;
+ }
+
+--- 259,265 ----
+***************
+*** 3157,3165 ****
+ if (startcol > endcol || is_oneChar)
+ bd.textlen = 0;
+ else
+- {
+ bd.textlen = endcol - startcol + oap->inclusive;
+- }
+ bd.textstart = p + startcol;
+ if (yank_copy_line(&bd, y_idx) == FAIL)
+ goto fail;
+--- 3155,3161 ----
+***************
+*** 4391,4399 ****
+ {
+ if (*comment_flags == COM_END
+ || *comment_flags == ':')
+- {
+ break;
+- }
+ ++comment_flags;
+ }
+
+--- 4387,4393 ----
+***************
+*** 5851,5859 ****
+ goto theend;
+ ptr = buf1;
+ if (negative && (!visual || was_positive))
+- {
+ *ptr++ = '-';
+- }
+ if (pre)
+ {
+ *ptr++ = '0';
+--- 5845,5851 ----
+*** ../vim-8.1.1085/src/option.c 2019-03-24 14:02:00.981468747 +0100
+--- src/option.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 6058,6066 ****
+ || sandbox != 0
+ #endif
+ ) && (options[opt_idx].flags & P_SECURE))
+- {
+ errmsg = e_secure;
+- }
+
+ // Check for a "normal" directory or file name in some options. Disallow a
+ // path separator (slash and/or backslash), wildcards and characters that
+--- 6058,6064 ----
+***************
+*** 6070,6078 ****
+ ? "/\\*?[|;&<>\r\n" : "/\\*?[<>\r\n")) != NULL)
+ || ((options[opt_idx].flags & P_NDNAME)
+ && vim_strpbrk(*varp, (char_u *)"*?[|;&<>\r\n") != NULL))
+- {
+ errmsg = e_invarg;
+- }
+
+ /* 'term' */
+ else if (varp == &T_NAME)
+--- 6068,6074 ----
+***************
+*** 6722,6730 ****
+ break;
+ }
+ if (*s == 'n') /* name is always last one */
+- {
+ break;
+- }
+ else if (*s == 'r') /* skip until next ',' */
+ {
+ while (*++s && *s != ',')
+--- 6718,6724 ----
+***************
+*** 8318,8326 ****
+
+ /* 'compatible' */
+ if ((int *)varp == &p_cp)
+- {
+ compatible_set();
+- }
+
+ #ifdef FEAT_LANGMAP
+ if ((int *)varp == &p_lrm)
+--- 8312,8318 ----
+***************
+*** 8547,8555 ****
+--- 8539,8549 ----
+
+ /* when 'textauto' is set or reset also change 'fileformats' */
+ else if ((int *)varp == &p_ta)
++ {
+ set_string_option_direct((char_u *)"ffs", -1,
+ p_ta ? (char_u *)DFLT_FFS_VIM : (char_u *)"",
+ OPT_FREE | opt_flags, 0);
++ }
+
+ /*
+ * When 'lisp' option changes include/exclude '-' in
+*** ../vim-8.1.1085/src/os_mswin.c 2019-03-30 16:24:12.240380238 +0100
+--- src/os_mswin.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 1123,1131 ****
+ BOOL ret;
+
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+- {
+ wp = enc_to_utf16(s, NULL);
+- }
+ if (wp != NULL)
+ {
+ ret = SetDlgItemTextW(hDlg, nIDDlgItem, wp);
+--- 1123,1129 ----
+***************
+*** 1731,1739 ****
+ int wlen = len;
+
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+- {
+ wp = enc_to_utf16(p, &wlen);
+- }
+ if (wp != NULL)
+ {
+ int ret = FALSE;
+--- 1729,1735 ----
+*** ../vim-8.1.1085/src/os_qnx.c 2016-08-29 22:42:20.000000000 +0200
+--- src/os_qnx.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 95,103 ****
+ }
+
+ if ((clip_text != NULL) && (clip_length > 0))
+- {
+ clip_yank_selection(type, clip_text, clip_length, cbd);
+- }
+
+ PhClipboardPasteFinish(cbdata);
+ }
+--- 95,101 ----
+*** ../vim-8.1.1085/src/os_unix.c 2019-03-22 12:03:26.583533911 +0100
+--- src/os_unix.c 2019-03-30 18:37:32.371406930 +0100
+***************
+*** 6119,6127 ****
+ # endif
+ # ifdef FEAT_MOUSE_GPM
+ if (gpm_idx >= 0 && (fds[gpm_idx].revents & POLLIN))
+- {
+ *check_for_gpm = 1;
+- }
+ # endif
+ # ifdef USE_XSMP
+ if (xsmp_idx >= 0 && (fds[xsmp_idx].revents & (POLLIN | POLLHUP)))
+--- 6119,6125 ----
+*** ../vim-8.1.1085/src/os_win32.c 2019-03-30 17:28:11.920987602 +0100
+--- src/os_win32.c 2019-03-30 18:37:32.375406907 +0100
+***************
+*** 2224,2237 ****
+ coord.Y = 0;
+ if (!FillConsoleOutputCharacter(g_hConOut, ' ', NumCells,
+ coord, &dummy))
+- {
+ return FALSE;
+- }
+ if (!FillConsoleOutputAttribute(g_hConOut, wAttribute, NumCells,
+ coord, &dummy))
+- {
+ return FALSE;
+- }
+
+ return TRUE;
+ }
+--- 2224,2233 ----
+***************
+*** 2467,2475 ****
+ cb->BufferSize, /* dimensions of our buffer */
+ BufferCoord, /* offset in our buffer */
+ &WriteRegion)) /* region to restore */
+- {
+ return FALSE;
+- }
+ }
+ }
+
+--- 2463,2469 ----
+*** ../vim-8.1.1085/src/regexp_nfa.c 2019-02-22 17:26:57.735029052 +0100
+--- src/regexp_nfa.c 2019-03-30 18:37:32.375406907 +0100
+***************
+*** 1790,1797 ****
+ if (*regparse == 'n')
+ startc = (reg_string || emit_range
+ || regparse[1] == '-') ? NL : NFA_NEWL;
+! else
+! if (*regparse == 'd'
+ || *regparse == 'o'
+ || *regparse == 'x'
+ || *regparse == 'u'
+--- 1790,1796 ----
+ if (*regparse == 'n')
+ startc = (reg_string || emit_range
+ || regparse[1] == '-') ? NL : NFA_NEWL;
+! else if (*regparse == 'd'
+ || *regparse == 'o'
+ || *regparse == 'x'
+ || *regparse == 'u'
+***************
+*** 2919,2932 ****
+ }
+ # else
+ for (p2 = postfix; p2 < end; p2++)
+- {
+ fprintf(df, "%d, ", *p2);
+- }
+ fprintf(df, "\nCurrent position is: ");
+ for (p2 = postfix; p2 <= p; p2 ++)
+- {
+ fprintf(df, "%d, ", *p2);
+- }
+ # endif
+ fprintf(df, "\n--------------------------\n");
+ fclose(df);
+--- 2918,2927 ----
+*** ../vim-8.1.1085/src/screen.c 2019-03-30 16:39:01.402017674 +0100
+--- src/screen.c 2019-03-30 18:37:32.375406907 +0100
+***************
+*** 232,240 ****
+ win_T *wp;
+
+ FOR_ALL_WINDOWS(wp)
+- {
+ redraw_win_later(wp, type);
+- }
+ // This may be needed when switching tabs.
+ if (must_redraw < type)
+ must_redraw = type;
+--- 232,238 ----
+***************
+*** 3525,3533 ****
+ #endif
+ virtual_active() ||
+ (VIsual_active && wp->w_buffer == curwin->w_buffer)))
+- {
+ vcol = v;
+- }
+
+ /* Handle a character that's not completely on the screen: Put ptr at
+ * that character but skip the first few screen characters. */
+--- 3523,3529 ----
+***************
+*** 10761,10769 ****
+ #endif
+ #if defined(FEAT_STL_OPT)
+ if ((*p_stl != NUL || *curwin->w_p_stl != NUL) && curwin->w_status_height)
+- {
+ redraw_custom_statusline(curwin);
+- }
+ else
+ #endif
+ #ifdef FEAT_CMDL_INFO
+--- 10757,10763 ----
+*** ../vim-8.1.1085/src/spell.c 2019-03-30 13:53:26.174425093 +0100
+--- src/spell.c 2019-03-30 18:37:32.375406907 +0100
+***************
+*** 445,453 ****
+ if (spell_iswordp(mi.mi_fend, wp))
+ {
+ do
+- {
+ MB_PTR_ADV(mi.mi_fend);
+! } while (*mi.mi_fend != NUL && spell_iswordp(mi.mi_fend, wp));
+
+ if (capcol != NULL && *capcol == 0 && wp->w_s->b_cap_prog != NULL)
+ {
+--- 445,452 ----
+ if (spell_iswordp(mi.mi_fend, wp))
+ {
+ do
+ MB_PTR_ADV(mi.mi_fend);
+! while (*mi.mi_fend != NUL && spell_iswordp(mi.mi_fend, wp));
+
+ if (capcol != NULL && *capcol == 0 && wp->w_s->b_cap_prog != NULL)
+ {
+***************
+*** 1463,1471 ****
+
+ p = mip->mi_fend;
+ do
+- {
+ MB_PTR_ADV(mip->mi_fend);
+! } while (*mip->mi_fend != NUL && spell_iswordp(mip->mi_fend, mip->mi_win));
+
+ /* Include the non-word character so that we can check for the word end. */
+ if (*mip->mi_fend != NUL)
+--- 1462,1469 ----
+
+ p = mip->mi_fend;
+ do
+ MB_PTR_ADV(mip->mi_fend);
+! while (*mip->mi_fend != NUL && spell_iswordp(mip->mi_fend, mip->mi_win));
+
+ /* Include the non-word character so that we can check for the word end. */
+ if (*mip->mi_fend != NUL)
+*** ../vim-8.1.1085/src/terminal.c 2019-03-20 20:38:40.378550979 +0100
+--- src/terminal.c 2019-03-30 18:37:32.375406907 +0100
+***************
+*** 4199,4207 ****
+ if (cell.width != prev_cell.width || !same_attr)
+ {
+ if (cell.width == 2)
+- {
+ fputs("*", fd);
+- }
+ else
+ fputs("+", fd);
+
+--- 4199,4205 ----
+*** ../vim-8.1.1085/src/version.c 2019-03-30 18:25:34.643764060 +0100
+--- src/version.c 2019-03-30 18:40:30.834370374 +0100
+***************
+*** 777,778 ****
+--- 777,780 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1086,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+164. You got out to buy software, instead of going out for a beer.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///