To: vim_dev@googlegroups.com Subject: Patch 8.1.1000 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1000 Problem: Indenting is off. Solution: Make indenting consistent and update comments. (Ozaki Kiichi, closes #4079) Files: src/getchar.c, src/ops.c *** ../vim-8.1.0999/src/getchar.c 2019-02-17 17:44:36.207875527 +0100 --- src/getchar.c 2019-03-09 08:53:59.569644721 +0100 *************** *** 1577,1684 **** } else { ! mod_mask = 0x0; ! last_recorded_len = 0; ! for (;;) /* this is done twice if there are modifiers */ ! { ! int did_inc = FALSE; ! ! if (mod_mask ! #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) ! || im_is_preediting() ! #endif ! ) ! { ! /* no mapping after modifier has been read */ ! ++no_mapping; ! ++allow_keys; ! did_inc = TRUE; /* mod_mask may change value */ ! } ! c = vgetorpeek(TRUE); ! if (did_inc) { ! --no_mapping; ! --allow_keys; ! } ! /* Get two extra bytes for special keys */ ! if (c == K_SPECIAL ! #ifdef FEAT_GUI ! || c == CSI #endif ! ) ! { ! int save_allow_keys = allow_keys; ! ! ++no_mapping; ! allow_keys = 0; /* make sure BS is not found */ ! c2 = vgetorpeek(TRUE); /* no mapping for these chars */ c = vgetorpeek(TRUE); ! --no_mapping; ! allow_keys = save_allow_keys; ! if (c2 == KS_MODIFIER) { ! mod_mask = c; ! continue; } - c = TO_SPECIAL(c2, c); ! #if defined(FEAT_GUI_MSWIN) && defined(FEAT_MENU) && defined(FEAT_TEAROFF) ! /* Handle K_TEAROFF here, the caller of vgetc() doesn't need to ! * know that a menu was torn off */ ! if (c == K_TEAROFF) { ! char_u name[200]; ! int i; ! /* get menu path, it ends with a */ ! for (i = 0; (c = vgetorpeek(TRUE)) != '\r'; ) { ! name[i] = c; ! if (i < 199) ! ++i; } - name[i] = NUL; - gui_make_tearoff(name); - continue; - } #endif #if defined(FEAT_GUI) && defined(FEAT_GUI_GTK) && defined(FEAT_MENU) ! /* GTK: normally selects the menu, but it's passed until ! * here to allow mapping it. Intercept and invoke the GTK ! * behavior if it's not mapped. */ ! if (c == K_F10 && gui.menubar != NULL) ! { ! gtk_menu_shell_select_first(GTK_MENU_SHELL(gui.menubar), FALSE); ! continue; ! } #endif #ifdef FEAT_GUI ! /* Handle focus event here, so that the caller doesn't need to ! * know about it. Return K_IGNORE so that we loop once (needed if ! * 'lazyredraw' is set). */ ! if (c == K_FOCUSGAINED || c == K_FOCUSLOST) ! { ! ui_focus_change(c == K_FOCUSGAINED); ! c = K_IGNORE; ! } ! /* Translate K_CSI to CSI. The special key is only used to avoid ! * it being recognized as the start of a special key. */ ! if (c == K_CSI) ! c = CSI; #endif ! } ! /* a keypad or special function key was not mapped, use it like ! * its ASCII equivalent */ ! switch (c) ! { ! case K_KPLUS: c = '+'; break; ! case K_KMINUS: c = '-'; break; ! case K_KDIVIDE: c = '/'; break; ! case K_KMULTIPLY: c = '*'; break; ! case K_KENTER: c = CAR; break; ! case K_KPOINT: #ifdef MSWIN // Can be either '.' or a ',', // depending on the type of keypad. --- 1577,1685 ---- } else { ! mod_mask = 0x0; ! last_recorded_len = 0; ! for (;;) // this is done twice if there are modifiers { ! int did_inc = FALSE; ! if (mod_mask ! #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) ! || im_is_preediting() #endif ! ) ! { ! // no mapping after modifier has been read ! ++no_mapping; ! ++allow_keys; ! did_inc = TRUE; // mod_mask may change value ! } c = vgetorpeek(TRUE); ! if (did_inc) { ! --no_mapping; ! --allow_keys; } ! // Get two extra bytes for special keys ! if (c == K_SPECIAL ! #ifdef FEAT_GUI ! || c == CSI ! #endif ! ) { ! int save_allow_keys = allow_keys; ! ++no_mapping; ! allow_keys = 0; // make sure BS is not found ! c2 = vgetorpeek(TRUE); // no mapping for these chars ! c = vgetorpeek(TRUE); ! --no_mapping; ! allow_keys = save_allow_keys; ! if (c2 == KS_MODIFIER) { ! mod_mask = c; ! continue; ! } ! c = TO_SPECIAL(c2, c); ! ! #if defined(FEAT_GUI_MSWIN) && defined(FEAT_MENU) && defined(FEAT_TEAROFF) ! // Handle K_TEAROFF here, the caller of vgetc() doesn't need to ! // know that a menu was torn off ! if (c == K_TEAROFF) ! { ! char_u name[200]; ! int i; ! ! // get menu path, it ends with a ! for (i = 0; (c = vgetorpeek(TRUE)) != '\r'; ) ! { ! name[i] = c; ! if (i < 199) ! ++i; ! } ! name[i] = NUL; ! gui_make_tearoff(name); ! continue; } #endif #if defined(FEAT_GUI) && defined(FEAT_GUI_GTK) && defined(FEAT_MENU) ! // GTK: normally selects the menu, but it's passed until ! // here to allow mapping it. Intercept and invoke the GTK ! // behavior if it's not mapped. ! if (c == K_F10 && gui.menubar != NULL) ! { ! gtk_menu_shell_select_first( ! GTK_MENU_SHELL(gui.menubar), FALSE); ! continue; ! } #endif #ifdef FEAT_GUI ! // Handle focus event here, so that the caller doesn't need to ! // know about it. Return K_IGNORE so that we loop once (needed ! // if 'lazyredraw' is set). ! if (c == K_FOCUSGAINED || c == K_FOCUSLOST) ! { ! ui_focus_change(c == K_FOCUSGAINED); ! c = K_IGNORE; ! } ! // Translate K_CSI to CSI. The special key is only used to ! // avoid it being recognized as the start of a special key. ! if (c == K_CSI) ! c = CSI; #endif ! } ! // a keypad or special function key was not mapped, use it like ! // its ASCII equivalent ! switch (c) ! { ! case K_KPLUS: c = '+'; break; ! case K_KMINUS: c = '-'; break; ! case K_KDIVIDE: c = '/'; break; ! case K_KMULTIPLY: c = '*'; break; ! case K_KENTER: c = CAR; break; ! case K_KPOINT: #ifdef MSWIN // Can be either '.' or a ',', // depending on the type of keypad. *************** *** 1686,1704 **** #else c = '.'; break; #endif ! case K_K0: c = '0'; break; ! case K_K1: c = '1'; break; ! case K_K2: c = '2'; break; ! case K_K3: c = '3'; break; ! case K_K4: c = '4'; break; ! case K_K5: c = '5'; break; ! case K_K6: c = '6'; break; ! case K_K7: c = '7'; break; ! case K_K8: c = '8'; break; ! case K_K9: c = '9'; break; ! case K_XHOME: ! case K_ZHOME: if (mod_mask == MOD_MASK_SHIFT) { c = K_S_HOME; mod_mask = 0; --- 1687,1705 ---- #else c = '.'; break; #endif ! case K_K0: c = '0'; break; ! case K_K1: c = '1'; break; ! case K_K2: c = '2'; break; ! case K_K3: c = '3'; break; ! case K_K4: c = '4'; break; ! case K_K5: c = '5'; break; ! case K_K6: c = '6'; break; ! case K_K7: c = '7'; break; ! case K_K8: c = '8'; break; ! case K_K9: c = '9'; break; ! case K_XHOME: ! case K_ZHOME: if (mod_mask == MOD_MASK_SHIFT) { c = K_S_HOME; mod_mask = 0; *************** *** 1711,1718 **** else c = K_HOME; break; ! case K_XEND: ! case K_ZEND: if (mod_mask == MOD_MASK_SHIFT) { c = K_S_END; mod_mask = 0; --- 1712,1719 ---- else c = K_HOME; break; ! case K_XEND: ! case K_ZEND: if (mod_mask == MOD_MASK_SHIFT) { c = K_S_END; mod_mask = 0; *************** *** 1726,1770 **** c = K_END; break; ! case K_XUP: c = K_UP; break; ! case K_XDOWN: c = K_DOWN; break; ! case K_XLEFT: c = K_LEFT; break; ! case K_XRIGHT: c = K_RIGHT; break; ! } ! /* For a multi-byte character get all the bytes and return the ! * converted character. ! * Note: This will loop until enough bytes are received! ! */ ! if (has_mbyte && (n = MB_BYTE2LEN_CHECK(c)) > 1) ! { ! ++no_mapping; ! buf[0] = c; ! for (i = 1; i < n; ++i) { ! buf[i] = vgetorpeek(TRUE); ! if (buf[i] == K_SPECIAL #ifdef FEAT_GUI ! || buf[i] == CSI #endif ! ) ! { ! /* Must be a K_SPECIAL - KS_SPECIAL - KE_FILLER sequence, ! * which represents a K_SPECIAL (0x80), ! * or a CSI - KS_EXTRA - KE_CSI sequence, which represents ! * a CSI (0x9B), ! * of a K_SPECIAL - KS_EXTRA - KE_CSI, which is CSI too. */ ! c = vgetorpeek(TRUE); ! if (vgetorpeek(TRUE) == (int)KE_CSI && c == KS_EXTRA) ! buf[i] = CSI; } } - --no_mapping; - c = (*mb_ptr2char)(buf); - } ! break; ! } } #ifdef FEAT_EVAL --- 1727,1771 ---- c = K_END; break; ! case K_XUP: c = K_UP; break; ! case K_XDOWN: c = K_DOWN; break; ! case K_XLEFT: c = K_LEFT; break; ! case K_XRIGHT: c = K_RIGHT; break; ! } ! // For a multi-byte character get all the bytes and return the ! // converted character. ! // Note: This will loop until enough bytes are received! ! if (has_mbyte && (n = MB_BYTE2LEN_CHECK(c)) > 1) { ! ++no_mapping; ! buf[0] = c; ! for (i = 1; i < n; ++i) ! { ! buf[i] = vgetorpeek(TRUE); ! if (buf[i] == K_SPECIAL #ifdef FEAT_GUI ! || buf[i] == CSI #endif ! ) ! { ! // Must be a K_SPECIAL - KS_SPECIAL - KE_FILLER ! // sequence, which represents a K_SPECIAL (0x80), ! // or a CSI - KS_EXTRA - KE_CSI sequence, which ! // represents a CSI (0x9B), ! // or a K_SPECIAL - KS_EXTRA - KE_CSI, which is CSI ! // too. ! c = vgetorpeek(TRUE); ! if (vgetorpeek(TRUE) == (int)KE_CSI && c == KS_EXTRA) ! buf[i] = CSI; ! } } + --no_mapping; + c = (*mb_ptr2char)(buf); } ! break; ! } } #ifdef FEAT_EVAL *** ../vim-8.1.0999/src/ops.c 2019-03-08 09:50:43.058308765 +0100 --- src/ops.c 2019-03-09 09:06:12.268015674 +0100 *************** *** 1245,1254 **** emsg(_(e_nolastcmd)); return FAIL; } ! VIM_CLEAR(new_last_cmdline); /* don't keep the cmdline containing @: */ ! /* Escape all control characters with a CTRL-V */ p = vim_strsave_escaped_ext(last_cmdline, ! (char_u *)"\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037", Ctrl_V, FALSE); if (p != NULL) { /* When in Visual mode "'<,'>" will be prepended to the command. --- 1245,1259 ---- emsg(_(e_nolastcmd)); return FAIL; } ! // don't keep the cmdline containing @: ! VIM_CLEAR(new_last_cmdline); ! // Escape all control characters with a CTRL-V p = vim_strsave_escaped_ext(last_cmdline, ! (char_u *)"\001\002\003\004\005\006\007" ! "\010\011\012\013\014\015\016\017" ! "\020\021\022\023\024\025\026\027" ! "\030\031\032\033\034\035\036\037", ! Ctrl_V, FALSE); if (p != NULL) { /* When in Visual mode "'<,'>" will be prepended to the command. *** ../vim-8.1.0999/src/version.c 2019-03-08 09:50:43.062308735 +0100 --- src/version.c 2019-03-09 09:01:15.642242661 +0100 *************** *** 781,782 **** --- 781,784 ---- { /* Add new patch number below this line */ + /**/ + 1000, /**/ -- I started out with nothing, and I still have most of it. -- Michael Davis -- "Tonight Show" /// 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 ///