From ceb8e51abafc836e1148a30713beac00fd1fc697 Mon Sep 17 00:00:00 2001 From: zeng11 <1957910297@qq.com> Date: Thu, 28 Nov 2024 10:59:14 +0800 Subject: [PATCH 1/3] add textformat.c file --- src/textformat.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/textformat.c b/src/textformat.c index a1a3e16..b78cf96 100644 --- a/src/textformat.c +++ b/src/textformat.c @@ -539,6 +539,9 @@ same_leader( if (leader1_len == 0) return (leader2_len == 0); + + char_u *lnum_line = NULL; + int line_len = 0; // If first leader has 'f' flag, the lines can be joined only if the // second line does not have a leader. @@ -555,7 +558,11 @@ same_leader( return FALSE; if (*p == COM_START) { - int line_len = (int)STRLEN(ml_get(lnum)); + if (lnum_line == NULL) + { + lnum_line = ml_get(lnum); + line_len = (int)STRLEN(lnum_line); + } if (line_len <= leader1_len) return FALSE; if (leader2_flags == NULL || leader2_len == 0) -- Gitee From 4fcdf3c60268c437a9404ada9995d5d404316d0d Mon Sep 17 00:00:00 2001 From: zeng11 <1957910297@qq.com> Date: Thu, 28 Nov 2024 18:42:49 +0800 Subject: [PATCH 2/3] add textformat.c file --- src/textformat.c | 168 +++++++---------------------------------------- 1 file changed, 23 insertions(+), 145 deletions(-) diff --git a/src/textformat.c b/src/textformat.c index b78cf96..2022e2b 100644 --- a/src/textformat.c +++ b/src/textformat.c @@ -6,18 +6,13 @@ * Do ":help credits" in Vim to see a list of people who contributed. * See README.txt for an overview of the Vim source code. */ - /* * textformat.c: text formatting functions */ - #include "vim.h" - static int did_add_space = FALSE; // auto_format() added an extra space // under the cursor - #define WHITECHAR(cc) (VIM_ISWHITE(cc) && (!enc_utf8 || !utf_iscomposing(utf_ptr2char(ml_get_cursor() + 1)))) - /* * Return TRUE if format option 'x' is in effect. * Take care of no formatting when 'paste' is set. @@ -29,7 +24,6 @@ has_format_option(int x) return FALSE; return (vim_strchr(curbuf->b_p_fo, x) != NULL); } - /* * Format text at the current insert position. * @@ -58,11 +52,9 @@ internal_format( int do_comments = (flags & INSCHAR_DO_COM); #ifdef FEAT_LINEBREAK int has_lbr = curwin->w_p_lbr; - // make sure win_lbr_chartabsize() counts correctly curwin->w_p_lbr = FALSE; #endif - // When 'ai' is off we don't want a space under the cursor to be // deleted. Replace it with an 'x' temporarily. if (!curbuf->b_p_ai && !(State & VREPLACE_FLAG)) @@ -74,7 +66,6 @@ internal_format( pchar_cursor('x'); } } - // Repeat breaking lines, until the current line is not too long. while (!got_int) { @@ -90,28 +81,23 @@ internal_format( colnr_T end_col; int wcc; // counter for whitespace chars int did_do_comment = FALSE; - virtcol = get_nolist_virtcol() + char2cells(c != NUL ? c : gchar_cursor()); if (virtcol <= (colnr_T)textwidth) break; - if (no_leader) do_comments = FALSE; else if (!(flags & INSCHAR_FORMAT) && has_format_option(FO_WRAP_COMS)) do_comments = TRUE; - // Don't break until after the comment leader if (do_comments) { char_u *line = ml_get_curline(); - leader_len = get_leader_len(line, NULL, FALSE, TRUE); if (leader_len == 0 && curbuf->b_p_cin) { int comment_start; - // Check for a line comment after code. comment_start = check_linecomment(line); if (comment_start != MAXCOL) @@ -125,7 +111,6 @@ internal_format( } else leader_len = 0; - // If the line doesn't start with a comment leader, then don't // start one in a following broken line. Avoids that a %word // moved to the start of the next line causes all following lines @@ -135,19 +120,15 @@ internal_format( if (!(flags & INSCHAR_FORMAT) && leader_len == 0 && !has_format_option(FO_WRAP)) - break; if ((startcol = curwin->w_cursor.col) == 0) break; - // find column of textwidth border coladvance((colnr_T)textwidth); wantcol = curwin->w_cursor.col; - curwin->w_cursor.col = startcol; foundcol = 0; skip_pos = 0; - // Find position to break at. // Stop at first entered white when 'formatoptions' has 'v' while ((!fo_ins_blank && !has_format_option(FO_INS_VI)) @@ -163,14 +144,12 @@ internal_format( { // remember position of blank just before text end_col = curwin->w_cursor.col; - // find start of sequence of blanks wcc = 0; while (curwin->w_cursor.col > 0 && WHITECHAR(cc)) { dec_cursor(); cc = gchar_cursor(); - // Increment count of how many whitespace chars in this // group; we only need to know if it's more than one. if (wcc < 2) @@ -178,12 +157,10 @@ internal_format( } if (curwin->w_cursor.col == 0 && WHITECHAR(cc)) break; // only spaces in front of text - // Don't break after a period when 'formatoptions' has 'p' and // there are less than two spaces. if (has_format_option(FO_PERIOD_ABBR) && cc == '.' && wcc < 2) continue; - // Don't break until after the comment leader if (curwin->w_cursor.col < leader_len) break; @@ -198,14 +175,11 @@ internal_format( col = curwin->w_cursor.col; dec_cursor(); cc = gchar_cursor(); - if (WHITECHAR(cc)) continue; // one-letter, continue curwin->w_cursor.col = col; } - inc_cursor(); - end_foundcol = end_col + 1; foundcol = curwin->w_cursor.col; if (curwin->w_cursor.col <= (colnr_T)wantcol) @@ -216,7 +190,6 @@ internal_format( { int ncc; int allow_break; - // Break after or before a multi-byte character. if (curwin->w_cursor.col != startcol) { @@ -226,11 +199,9 @@ internal_format( col = curwin->w_cursor.col; inc_cursor(); ncc = gchar_cursor(); - allow_break = (enc_utf8 && utf_allow_break(cc, ncc)) || enc_dbcs; - // If we have already checked this position, skip! if (curwin->w_cursor.col != skip_pos && allow_break) { @@ -241,29 +212,22 @@ internal_format( } curwin->w_cursor.col = col; } - if (curwin->w_cursor.col == 0) break; - ncc = cc; col = curwin->w_cursor.col; - dec_cursor(); cc = gchar_cursor(); - if (WHITECHAR(cc)) continue; // break with space // Don't break until after the comment leader. if (curwin->w_cursor.col < leader_len) break; - curwin->w_cursor.col = col; skip_pos = curwin->w_cursor.col; - allow_break = (enc_utf8 && utf_allow_break(cc, ncc)) || enc_dbcs; - // Must handle this to respect line break prohibition. if (allow_break) { @@ -274,7 +238,6 @@ internal_format( { int ncc_allow_break = (enc_utf8 && utf_allow_break_before(ncc)) || enc_dbcs; - if (allow_break) break; if (!ncc_allow_break && !fo_rigor_tw) @@ -287,21 +250,17 @@ internal_format( end_foundcol = foundcol = 0; break; } - // Neither cc nor ncc is NUL if we are here, so // it's safe to inc_cursor. col = curwin->w_cursor.col; - inc_cursor(); cc = ncc; ncc = gchar_cursor(); // handle insert ncc = (ncc != NUL) ? ncc : c; - allow_break = (enc_utf8 && utf_allow_break(cc, ncc)) || enc_dbcs; - if (allow_break) { // Break only when we are not at end of line. @@ -317,16 +276,13 @@ internal_format( break; dec_cursor(); } - if (foundcol == 0) // no spaces, cannot break line { curwin->w_cursor.col = startcol; break; } - // Going to break the line, remove any "$" now. undisplay_dollar(); - // Offset between cursor position and line break is used by replace // stack functions. MODE_VREPLACE does not use this, and backspaces // over the text instead. @@ -334,7 +290,6 @@ internal_format( orig_col = startcol; // Will start backspacing from here else replace_offset = startcol - end_foundcol; - // adjust startcol for spaces that will be deleted and // characters that will remain on top line curwin->w_cursor.col = foundcol; @@ -344,7 +299,6 @@ internal_format( startcol -= curwin->w_cursor.col; if (startcol < 0) startcol = 0; - if (State & VREPLACE_FLAG) { // In MODE_VREPLACE state, we will backspace over the text to be @@ -354,7 +308,6 @@ internal_format( if (saved_text == NULL) break; // Can't do it, out of memory saved_text[startcol] = NUL; - // Backspace over characters that will move to the next line if (!fo_white_par) backspace_until_column(foundcol); @@ -365,7 +318,6 @@ internal_format( if (!fo_white_par) curwin->w_cursor.col = foundcol; } - // Split the line just before the margin. // Only insert/delete lines, but don't really redraw the window. open_line(FORWARD, OPENLINE_DELSPACES + OPENLINE_MARKFIX @@ -377,12 +329,10 @@ internal_format( &did_do_comment); if (!(flags & INSCHAR_COM_LIST)) old_indent = 0; - // If a comment leader was inserted, may also do this on a following // line. if (did_do_comment) no_leader = FALSE; - replace_offset = 0; if (first_line) { @@ -406,7 +356,6 @@ internal_format( { int i; int padding = second_indent - leader_len; - // We started at the first_line of a numbered list // that has a comment. the open_line() function has // inserted the proper comment leader and positioned @@ -424,7 +373,6 @@ internal_format( } first_line = FALSE; } - if (State & VREPLACE_FLAG) { // In MODE_VREPLACE state we have backspaced over the text to be @@ -441,7 +389,6 @@ internal_format( if (curwin->w_cursor.col > len) curwin->w_cursor.col = len; } - haveto_redraw = TRUE; set_can_cindent(TRUE); // moved the cursor, don't autoindent or cindent now @@ -451,10 +398,8 @@ internal_format( can_si_back = FALSE; line_breakcheck(); } - if (save_char != NUL) // put back space after cursor pchar_cursor(save_char); - #ifdef FEAT_LINEBREAK curwin->w_p_lbr = has_lbr; #endif @@ -464,7 +409,6 @@ internal_format( redraw_curbuf_later(UPD_VALID); } } - /* * Blank lines, and lines containing only the comment leader, are left * untouched by the formatting. The function returns TRUE in this @@ -482,13 +426,11 @@ fmt_check_par( { char_u *flags = NULL; // init for GCC char_u *ptr; - ptr = ml_get(lnum); if (do_comments) *leader_len = get_leader_len(ptr, leader_flags, FALSE, TRUE); else *leader_len = 0; - if (*leader_len > 0) { // Search for 'e' flag in comment leader flags. @@ -496,12 +438,10 @@ fmt_check_par( while (*flags && *flags != ':' && *flags != COM_END) ++flags; } - return (*skipwhite(ptr + *leader_len) == NUL || (*leader_len > 0 && *flags == COM_END) || startPS(lnum, NUL, FALSE)); } - /* * Return TRUE if line "lnum" ends in a white character. */ @@ -510,7 +450,6 @@ ends_in_white(linenr_T lnum) { char_u *s = ml_get(lnum); size_t l; - if (*s == NUL) return FALSE; // Don't use STRLEN() inside VIM_ISWHITE(), SAS/C complains: "macro @@ -518,7 +457,6 @@ ends_in_white(linenr_T lnum) l = STRLEN(s) - 1; return VIM_ISWHITE(s[l]); } - /* * Return TRUE if the two comment leaders given are the same. "lnum" is * the first line. White-space is ignored. Note that the whole of @@ -536,11 +474,10 @@ same_leader( char_u *p; char_u *line1; char_u *line2; - if (leader1_len == 0) return (leader2_len == 0); - - char_u *lnum_line = NULL; + + char_u *lnum_line = NULL; int line_len = 0; // If first leader has 'f' flag, the lines can be joined only if the @@ -558,6 +495,7 @@ same_leader( return FALSE; if (*p == COM_START) { + if (*(ml_get(lnum) + leader1_len) == NUL) if (lnum_line == NULL) { lnum_line = ml_get(lnum); @@ -574,7 +512,6 @@ same_leader( } } } - // Get current line and next line, compare the leaders. // The first line has to be saved, only one line can be locked at a time. line1 = vim_strsave(ml_get(lnum)); @@ -598,7 +535,6 @@ same_leader( } return (idx2 == leader2_len && idx1 == leader1_len); } - /* * Return TRUE when a paragraph starts in line "lnum". Return FALSE when the * previous line is in the same paragraph. Used for auto-formatting. @@ -612,34 +548,25 @@ paragraph_start(linenr_T lnum) int next_leader_len; // leader len of next line char_u *next_leader_flags; // flags for leader of next line int do_comments; // format comments - if (lnum <= 1) return TRUE; // start of the file - p = ml_get(lnum - 1); if (*p == NUL) return TRUE; // after empty line - do_comments = has_format_option(FO_Q_COMS); if (fmt_check_par(lnum - 1, &leader_len, &leader_flags, do_comments)) return TRUE; // after non-paragraph line - if (fmt_check_par(lnum, &next_leader_len, &next_leader_flags, do_comments)) return TRUE; // "lnum" is not a paragraph line - if (has_format_option(FO_WHITE_PAR) && !ends_in_white(lnum - 1)) return TRUE; // missing trailing space in previous line. - if (has_format_option(FO_Q_NUMBER) && (get_number_indent(lnum) > 0)) return TRUE; // numbered item starts in "lnum". - if (!same_leader(lnum - 1, leader_len, leader_flags, next_leader_len, next_leader_flags)) return TRUE; // change of comment leader. - return FALSE; } - /* * Called after inserting or deleting text: When 'formatoptions' includes the * 'a' flag format from the current line until the end of the paragraph. @@ -658,16 +585,12 @@ auto_format( char_u *new, *pnew; int wasatend; int cc; - if (!has_format_option(FO_AUTO)) return; - pos = curwin->w_cursor; old = ml_get_curline(); - // may remove added space check_auto_format(FALSE); - // Don't format in Insert mode when the cursor is on a trailing blank, the // user might insert normal text next. Also skip formatting when "1" is // in 'formatoptions' and there is a single character before the cursor. @@ -689,13 +612,11 @@ auto_format( } curwin->w_cursor = pos; } - // With the 'c' flag in 'formatoptions' and 't' missing: only format // comments. if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP) && get_leader_len(old, NULL, FALSE, TRUE) == 0) return; - // May start formatting in a previous line, so that after "x" a word is // moved to the previous line if it fits there now. Only when this is not // the start of a paragraph. @@ -705,14 +626,12 @@ auto_format( if (u_save_cursor() == FAIL) return; } - // Do the formatting and restore the cursor position. "saved_cursor" will // be adjusted for the text formatting. saved_cursor = pos; format_lines((linenr_T)-1, FALSE); curwin->w_cursor = saved_cursor; saved_cursor.lnum = 0; - if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) { // "cannot happen" @@ -721,7 +640,6 @@ auto_format( } else check_cursor_col(); - // Insert mode: If the cursor is now after the end of the line while it // previously wasn't, the line was broken. Because of the rule above we // need to add a space when 'w' is in 'formatoptions' to keep a paragraph @@ -743,10 +661,8 @@ auto_format( // may remove added space check_auto_format(FALSE); } - check_cursor(); } - /* * When an extra space was added to continue a paragraph for auto-formatting, * delete it now. The space must be under the cursor, just after the insert @@ -758,31 +674,29 @@ check_auto_format( { int c = ' '; int cc; - - if (!did_add_space) - return; - - cc = gchar_cursor(); - if (!WHITECHAR(cc)) - // Somehow the space was removed already. - did_add_space = FALSE; - else + if (did_add_space) { - if (!end_insert) - { - inc_cursor(); - c = gchar_cursor(); - dec_cursor(); - } - if (c != NUL) - { - // The space is no longer at the end of the line, delete it. - del_char(FALSE); + cc = gchar_cursor(); + if (!WHITECHAR(cc)) + // Somehow the space was removed already. did_add_space = FALSE; + else + { + if (!end_insert) + { + inc_cursor(); + c = gchar_cursor(); + dec_cursor(); + } + if (c != NUL) + { + // The space is no longer at the end of the line, delete it. + del_char(FALSE); + did_add_space = FALSE; + } } } } - /* * Find out textwidth to be used for formatting: * if 'textwidth' option is set, use it @@ -795,7 +709,6 @@ comp_textwidth( int ff) // force formatting (for "gq" command) { int textwidth; - textwidth = curbuf->b_p_tw; if (textwidth == 0 && curbuf->b_p_wm) { @@ -824,7 +737,6 @@ comp_textwidth( } return textwidth; } - /* * Implementation of the format operator 'gq'. */ @@ -834,31 +746,24 @@ op_format( int keep_cursor) // keep cursor on same text char { long old_line_count = curbuf->b_ml.ml_line_count; - // Place the cursor where the "gq" or "gw" command was given, so that "u" // can put it back there. curwin->w_cursor = oap->cursor_start; - if (u_save((linenr_T)(oap->start.lnum - 1), (linenr_T)(oap->end.lnum + 1)) == FAIL) return; curwin->w_cursor = oap->start; - if (oap->is_VIsual) // When there is no change: need to remove the Visual selection redraw_curbuf_later(UPD_INVERTED); - if ((cmdmod.cmod_flags & CMOD_LOCKMARKS) == 0) // Set '[ mark at the start of the formatted area curbuf->b_op_start = oap->start; - // For "gw" remember the cursor position and put it back below (adjusted // for joined and split lines). if (keep_cursor) saved_cursor = oap->cursor_start; - format_lines(oap->line_count, keep_cursor); - // Leave the cursor at the first non-blank of the last formatted line. // If the cursor was moved one line back (e.g. with "Q}") go to the next // line, so "." will do the next lines. @@ -867,24 +772,19 @@ op_format( beginline(BL_WHITE | BL_FIX); old_line_count = curbuf->b_ml.ml_line_count - old_line_count; msgmore(old_line_count); - if ((cmdmod.cmod_flags & CMOD_LOCKMARKS) == 0) // put '] mark on the end of the formatted area curbuf->b_op_end = curwin->w_cursor; - if (keep_cursor) { curwin->w_cursor = saved_cursor; saved_cursor.lnum = 0; - // formatting may have made the cursor position invalid check_cursor(); } - if (oap->is_VIsual) { win_T *wp; - FOR_ALL_WINDOWS(wp) { if (wp->w_old_cursor_lnum != 0) @@ -899,7 +799,6 @@ op_format( } } } - #if defined(FEAT_EVAL) || defined(PROTO) /* * Implementation of the format operator 'gq' for when using 'formatexpr'. @@ -910,13 +809,11 @@ op_formatexpr(oparg_T *oap) if (oap->is_VIsual) // When there is no change: need to remove the Visual selection redraw_curbuf_later(UPD_INVERTED); - if (fex_format(oap->start.lnum, oap->line_count, NUL) != 0) // As documented: when 'formatexpr' returns non-zero fall back to // internal formatting. op_format(oap, FALSE); } - int fex_format( linenr_T lnum, @@ -928,34 +825,28 @@ fex_format( int r; char_u *fex; sctx_T save_sctx = current_sctx; - // Set v:lnum to the first line number and v:count to the number of lines. // Set v:char to the character to be inserted (can be NUL). set_vim_var_nr(VV_LNUM, lnum); set_vim_var_nr(VV_COUNT, count); set_vim_var_char(c); - // Make a copy, the option could be changed while calling it. fex = vim_strsave(curbuf->b_p_fex); if (fex == NULL) return 0; current_sctx = curbuf->b_p_script_ctx[BV_FEX]; - // Evaluate the function. if (use_sandbox) ++sandbox; r = (int)eval_to_number(fex, TRUE); if (use_sandbox) --sandbox; - set_vim_var_string(VV_CHAR, NULL, -1); vim_free(fex); current_sctx = save_sctx; - return r; } #endif - /* * Format "line_count" lines, starting at the cursor position. * When "line_count" is negative, format until the end of the paragraph. @@ -992,16 +883,13 @@ format_lines( linenr_T first_line = curwin->w_cursor.lnum; int force_format = FALSE; int old_State = State; - // length of a line to force formatting: 3 * 'tw' max_len = comp_textwidth(TRUE) * 3; - - // check for 'q', '2', 'n' and 'w' in 'formatoptions' + // check for 'q', '2' and '1' in 'formatoptions' do_comments = has_format_option(FO_Q_COMS); do_second_indent = has_format_option(FO_Q_SECOND); do_number_indent = has_format_option(FO_Q_NUMBER); do_trail_white = has_format_option(FO_WHITE_PAR); - // Get info about the previous and current line. if (curwin->w_cursor.lnum > 1) is_not_par = fmt_check_par(curwin->w_cursor.lnum - 1 @@ -1013,7 +901,6 @@ format_lines( is_end_par = (is_not_par || next_is_not_par); if (!is_end_par && do_trail_white) is_end_par = !ends_in_white(curwin->w_cursor.lnum - 1); - curwin->w_cursor.lnum--; for (count = line_count; count != 0 && !got_int; --count) { @@ -1026,7 +913,6 @@ format_lines( leader_len = next_leader_len; leader_flags = next_leader_flags; } - // The last line to be formatted. if (count == 1 || curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count) { @@ -1046,7 +932,6 @@ format_lines( is_end_par = (is_not_par || next_is_not_par || next_is_start_par); if (!is_end_par && do_trail_white) is_end_par = !ends_in_white(curwin->w_cursor.lnum); - // Skip lines that are not in a paragraph. if (is_not_par) { @@ -1093,7 +978,6 @@ format_lines( } } } - // When the comment leader changes, it's the end of the paragraph. if (curwin->w_cursor.lnum >= curbuf->b_ml.ml_line_count || !same_leader(curwin->w_cursor.lnum, @@ -1108,7 +992,6 @@ format_lines( || check_linecomment(ml_get_curline()) == MAXCOL) is_end_par = TRUE; } - // If we have got to the end of a paragraph, or the line is // getting long, format it. if (is_end_par || force_format) @@ -1116,7 +999,6 @@ format_lines( if (need_set_indent) { int indent = 0; // amount of indent needed - // Replace indent in first line of a paragraph with minimal // number of tabs and spaces, according to current options. // For the very first formatted line keep the current @@ -1140,13 +1022,11 @@ format_lines( } (void)set_indent(indent, SIN_CHANGED); } - // put cursor on last non-space State = MODE_NORMAL; // don't go past end-of-line coladvance((colnr_T)MAXCOL); while (curwin->w_cursor.col && vim_isspace(gchar_cursor())) dec_cursor(); - // do the formatting, without 'showmode' State = MODE_INSERT; // for open_line() smd_save = p_smd; @@ -1171,7 +1051,6 @@ format_lines( } force_format = FALSE; } - // When still in same paragraph, join the lines together. But // first delete the leader from the second line. if (!is_end_par) @@ -1190,7 +1069,6 @@ format_lines( else if (second_indent > 0) // the "leader" for FO_Q_SECOND { int indent = getwhitecols_curline(); - if (indent > 0) { (void)del_bytes(indent, FALSE, FALSE); @@ -1214,4 +1092,4 @@ format_lines( } line_breakcheck(); } -} +} \ No newline at end of file -- Gitee From 96d83cff7c20052edb2d776b89d0a19f94b8d60f Mon Sep 17 00:00:00 2001 From: zeng11 <1957910297@qq.com> Date: Thu, 28 Nov 2024 18:43:45 +0800 Subject: [PATCH 3/3] add version.c file --- src/version.c | 2465 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 2437 insertions(+), 28 deletions(-) diff --git a/src/version.c b/src/version.c index 2e178f3..e110dcf 100644 --- a/src/version.c +++ b/src/version.c @@ -57,26 +57,26 @@ char *longVersion = NULL; void init_longVersion(void) { - if (longVersion != NULL) - return; - + if (longVersion == NULL) + { #ifdef BUILD_DATE - char *date_time = BUILD_DATE; + char *date_time = BUILD_DATE; #else - char *date_time = __DATE__ " " __TIME__; + char *date_time = __DATE__ " " __TIME__; #endif - char *msg = _("%s (%s, compiled %s)"); - size_t len = strlen(msg) - + strlen(VIM_VERSION_LONG_ONLY) - + strlen(VIM_VERSION_DATE_ONLY) - + strlen(date_time); + char *msg = _("%s (%s, compiled %s)"); + size_t len = strlen(msg) + + strlen(VIM_VERSION_LONG_ONLY) + + strlen(VIM_VERSION_DATE_ONLY) + + strlen(date_time); - longVersion = alloc(len); - if (longVersion == NULL) - longVersion = VIM_VERSION_LONG; - else - vim_snprintf(longVersion, len, msg, - VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time); + longVersion = alloc(len); + if (longVersion == NULL) + longVersion = VIM_VERSION_LONG; + else + vim_snprintf(longVersion, len, msg, + VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time); + } } # endif #else @@ -474,11 +474,7 @@ static char *(features[]) = #endif #ifdef FEAT_PYTHON3 # ifdef DYNAMIC_PYTHON3 -# ifdef DYNAMIC_PYTHON3_STABLE_ABI - "+python3/dyn-stable", -# else "+python3/dyn", -# endif # else "+python3", # endif @@ -654,11 +650,6 @@ static char *(features[]) = "-X11", # endif #endif -# ifdef FEAT_XATTR - "+xattr", -# else - "-xattr", -# endif #ifdef FEAT_XFONTSET "+xfontset", #else @@ -704,6 +695,2424 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1225, +/**/ + 1224, +/**/ + 1223, +/**/ + 1222, +/**/ + 1221, +/**/ + 1220, +/**/ + 1219, +/**/ + 1218, +/**/ + 1217, +/**/ + 1216, +/**/ + 1215, +/**/ + 1214, +/**/ + 1213, +/**/ + 1212, +/**/ + 1211, +/**/ + 1210, +/**/ + 1209, +/**/ + 1208, +/**/ + 1207, +/**/ + 1206, +/**/ + 1205, +/**/ + 1204, +/**/ + 1203, +/**/ + 1202, +/**/ + 1201, +/**/ + 1200, +/**/ + 1199, +/**/ + 1198, +/**/ + 1197, +/**/ + 1196, +/**/ + 1195, +/**/ + 1194, +/**/ + 1193, +/**/ + 1192, +/**/ + 1191, +/**/ + 1190, +/**/ + 1189, +/**/ + 1188, +/**/ + 1187, +/**/ + 1186, +/**/ + 1185, +/**/ + 1184, +/**/ + 1183, +/**/ + 1182, +/**/ + 1181, +/**/ + 1180, +/**/ + 1179, +/**/ + 1178, +/**/ + 1177, +/**/ + 1176, +/**/ + 1175, +/**/ + 1174, +/**/ + 1173, +/**/ + 1172, +/**/ + 1171, +/**/ + 1170, +/**/ + 1169, +/**/ + 1168, +/**/ + 1167, +/**/ + 1166, +/**/ + 1165, +/**/ + 1164, +/**/ + 1163, +/**/ + 1162, +/**/ + 1161, +/**/ + 1160, +/**/ + 1159, +/**/ + 1158, +/**/ + 1157, +/**/ + 1156, +/**/ + 1155, +/**/ + 1154, +/**/ + 1153, +/**/ + 1152, +/**/ + 1151, +/**/ + 1150, +/**/ + 1149, +/**/ + 1148, +/**/ + 1147, +/**/ + 1146, +/**/ + 1145, +/**/ + 1144, +/**/ + 1143, +/**/ + 1142, +/**/ + 1141, +/**/ + 1140, +/**/ + 1139, +/**/ + 1138, +/**/ + 1137, +/**/ + 1136, +/**/ + 1135, +/**/ + 1134, +/**/ + 1133, +/**/ + 1132, +/**/ + 1131, +/**/ + 1130, +/**/ + 1129, +/**/ + 1128, +/**/ + 1127, +/**/ + 1126, +/**/ + 1125, +/**/ + 1124, +/**/ + 1123, +/**/ + 1122, +/**/ + 1121, +/**/ + 1120, +/**/ + 1119, +/**/ + 1118, +/**/ + 1117, +/**/ + 1116, +/**/ + 1115, +/**/ + 1114, +/**/ + 1113, +/**/ + 1112, +/**/ + 1111, +/**/ + 1110, +/**/ + 1109, +/**/ + 1108, +/**/ + 1107, +/**/ + 1106, +/**/ + 1105, +/**/ + 1104, +/**/ + 1103, +/**/ + 1102, +/**/ + 1101, +/**/ + 1100, +/**/ + 1099, +/**/ + 1098, +/**/ + 1097, +/**/ + 1096, +/**/ + 1095, +/**/ + 1094, +/**/ + 1093, +/**/ + 1092, +/**/ + 1091, +/**/ + 1090, +/**/ + 1089, +/**/ + 1088, +/**/ + 1087, +/**/ + 1086, +/**/ + 1085, +/**/ + 1084, +/**/ + 1083, +/**/ + 1082, +/**/ + 1081, +/**/ + 1080, +/**/ + 1079, +/**/ + 1078, +/**/ + 1077, +/**/ + 1076, +/**/ + 1075, +/**/ + 1074, +/**/ + 1073, +/**/ + 1072, +/**/ + 1071, +/**/ + 1070, +/**/ + 1069, +/**/ + 1068, +/**/ + 1067, +/**/ + 1066, +/**/ + 1065, +/**/ + 1064, +/**/ + 1063, +/**/ + 1062, +/**/ + 1061, +/**/ + 1060, +/**/ + 1059, +/**/ + 1058, +/**/ + 1057, +/**/ + 1056, +/**/ + 1055, +/**/ + 1054, +/**/ + 1053, +/**/ + 1052, +/**/ + 1051, +/**/ + 1050, +/**/ + 1049, +/**/ + 1048, +/**/ + 1047, +/**/ + 1046, +/**/ + 1045, +/**/ + 1044, +/**/ + 1043, +/**/ + 1042, +/**/ + 1041, +/**/ + 1040, +/**/ + 1039, +/**/ + 1038, +/**/ + 1037, +/**/ + 1036, +/**/ + 1035, +/**/ + 1034, +/**/ + 1033, +/**/ + 1032, +/**/ + 1031, +/**/ + 1030, +/**/ + 1029, +/**/ + 1028, +/**/ + 1027, +/**/ + 1026, +/**/ + 1025, +/**/ + 1024, +/**/ + 1023, +/**/ + 1022, +/**/ + 1021, +/**/ + 1020, +/**/ + 1019, +/**/ + 1018, +/**/ + 1017, +/**/ + 1016, +/**/ + 1015, +/**/ + 1014, +/**/ + 1013, +/**/ + 1012, +/**/ + 1011, +/**/ + 1010, +/**/ + 1009, +/**/ + 1008, +/**/ + 1007, +/**/ + 1006, +/**/ + 1005, +/**/ + 1004, +/**/ + 1003, +/**/ + 1002, +/**/ + 1001, +/**/ + 1000, +/**/ + 999, +/**/ + 998, +/**/ + 997, +/**/ + 996, +/**/ + 995, +/**/ + 994, +/**/ + 993, +/**/ + 992, +/**/ + 991, +/**/ + 990, +/**/ + 989, +/**/ + 988, +/**/ + 987, +/**/ + 986, +/**/ + 985, +/**/ + 984, +/**/ + 983, +/**/ + 982, +/**/ + 981, +/**/ + 980, +/**/ + 979, +/**/ + 978, +/**/ + 977, +/**/ + 976, +/**/ + 975, +/**/ + 974, +/**/ + 973, +/**/ + 972, +/**/ + 971, +/**/ + 970, +/**/ + 969, +/**/ + 968, +/**/ + 967, +/**/ + 966, +/**/ + 965, +/**/ + 964, +/**/ + 963, +/**/ + 962, +/**/ + 961, +/**/ + 960, +/**/ + 959, +/**/ + 958, +/**/ + 957, +/**/ + 956, +/**/ + 955, +/**/ + 954, +/**/ + 953, +/**/ + 952, +/**/ + 951, +/**/ + 950, +/**/ + 949, +/**/ + 948, +/**/ + 947, +/**/ + 946, +/**/ + 945, +/**/ + 944, +/**/ + 943, +/**/ + 942, +/**/ + 941, +/**/ + 940, +/**/ + 939, +/**/ + 938, +/**/ + 937, +/**/ + 936, +/**/ + 935, +/**/ + 934, +/**/ + 933, +/**/ + 932, +/**/ + 931, +/**/ + 930, +/**/ + 929, +/**/ + 928, +/**/ + 927, +/**/ + 926, +/**/ + 925, +/**/ + 924, +/**/ + 923, +/**/ + 922, +/**/ + 921, +/**/ + 920, +/**/ + 919, +/**/ + 918, +/**/ + 917, +/**/ + 916, +/**/ + 915, +/**/ + 914, +/**/ + 913, +/**/ + 912, +/**/ + 911, +/**/ + 910, +/**/ + 909, +/**/ + 908, +/**/ + 907, +/**/ + 906, +/**/ + 905, +/**/ + 904, +/**/ + 903, +/**/ + 902, +/**/ + 901, +/**/ + 900, +/**/ + 899, +/**/ + 898, +/**/ + 897, +/**/ + 896, +/**/ + 895, +/**/ + 894, +/**/ + 893, +/**/ + 892, +/**/ + 891, +/**/ + 890, +/**/ + 889, +/**/ + 888, +/**/ + 887, +/**/ + 886, +/**/ + 885, +/**/ + 884, +/**/ + 883, +/**/ + 882, +/**/ + 881, +/**/ + 880, +/**/ + 879, +/**/ + 878, +/**/ + 877, +/**/ + 876, +/**/ + 875, +/**/ + 874, +/**/ + 873, +/**/ + 872, +/**/ + 871, +/**/ + 870, +/**/ + 869, +/**/ + 868, +/**/ + 867, +/**/ + 866, +/**/ + 865, +/**/ + 864, +/**/ + 863, +/**/ + 862, +/**/ + 861, +/**/ + 860, +/**/ + 859, +/**/ + 858, +/**/ + 857, +/**/ + 856, +/**/ + 855, +/**/ + 854, +/**/ + 853, +/**/ + 852, +/**/ + 851, +/**/ + 850, +/**/ + 849, +/**/ + 848, +/**/ + 847, +/**/ + 846, +/**/ + 845, +/**/ + 844, +/**/ + 843, +/**/ + 842, +/**/ + 841, +/**/ + 840, +/**/ + 839, +/**/ + 838, +/**/ + 837, +/**/ + 836, +/**/ + 835, +/**/ + 834, +/**/ + 833, +/**/ + 832, +/**/ + 831, +/**/ + 830, +/**/ + 829, +/**/ + 828, +/**/ + 827, +/**/ + 826, +/**/ + 825, +/**/ + 824, +/**/ + 823, +/**/ + 822, +/**/ + 821, +/**/ + 820, +/**/ + 819, +/**/ + 818, +/**/ + 817, +/**/ + 816, +/**/ + 815, +/**/ + 814, +/**/ + 813, +/**/ + 812, +/**/ + 811, +/**/ + 810, +/**/ + 809, +/**/ + 808, +/**/ + 807, +/**/ + 806, +/**/ + 805, +/**/ + 804, +/**/ + 803, +/**/ + 802, +/**/ + 801, +/**/ + 800, +/**/ + 799, +/**/ + 798, +/**/ + 797, +/**/ + 796, +/**/ + 795, +/**/ + 794, +/**/ + 793, +/**/ + 792, +/**/ + 791, +/**/ + 790, +/**/ + 789, +/**/ + 788, +/**/ + 787, +/**/ + 786, +/**/ + 785, +/**/ + 784, +/**/ + 783, +/**/ + 782, +/**/ + 781, +/**/ + 780, +/**/ + 779, +/**/ + 778, +/**/ + 777, +/**/ + 776, +/**/ + 775, +/**/ + 774, +/**/ + 773, +/**/ + 772, +/**/ + 771, +/**/ + 770, +/**/ + 769, +/**/ + 768, +/**/ + 767, +/**/ + 766, +/**/ + 765, +/**/ + 764, +/**/ + 763, +/**/ + 762, +/**/ + 761, +/**/ + 760, +/**/ + 759, +/**/ + 758, +/**/ + 757, +/**/ + 756, +/**/ + 755, +/**/ + 754, +/**/ + 753, +/**/ + 752, +/**/ + 751, +/**/ + 750, +/**/ + 749, +/**/ + 748, +/**/ + 747, +/**/ + 746, +/**/ + 745, +/**/ + 744, +/**/ + 743, +/**/ + 742, +/**/ + 741, +/**/ + 740, +/**/ + 739, +/**/ + 738, +/**/ + 737, +/**/ + 736, +/**/ + 735, +/**/ + 734, +/**/ + 733, +/**/ + 732, +/**/ + 731, +/**/ + 730, +/**/ + 729, +/**/ + 728, +/**/ + 727, +/**/ + 726, +/**/ + 725, +/**/ + 724, +/**/ + 723, +/**/ + 722, +/**/ + 721, +/**/ + 720, +/**/ + 719, +/**/ + 718, +/**/ + 717, +/**/ + 716, +/**/ + 715, +/**/ + 714, +/**/ + 713, +/**/ + 712, +/**/ + 711, +/**/ + 710, +/**/ + 709, +/**/ + 708, +/**/ + 707, +/**/ + 706, +/**/ + 705, +/**/ + 704, +/**/ + 703, +/**/ + 702, +/**/ + 701, +/**/ + 700, +/**/ + 699, +/**/ + 698, +/**/ + 697, +/**/ + 696, +/**/ + 695, +/**/ + 694, +/**/ + 693, +/**/ + 692, +/**/ + 691, +/**/ + 690, +/**/ + 689, +/**/ + 688, +/**/ + 687, +/**/ + 686, +/**/ + 685, +/**/ + 684, +/**/ + 683, +/**/ + 682, +/**/ + 681, +/**/ + 680, +/**/ + 679, +/**/ + 678, +/**/ + 677, +/**/ + 676, +/**/ + 675, +/**/ + 674, +/**/ + 673, +/**/ + 672, +/**/ + 671, +/**/ + 670, +/**/ + 669, +/**/ + 668, +/**/ + 667, +/**/ + 666, +/**/ + 665, +/**/ + 664, +/**/ + 663, +/**/ + 662, +/**/ + 661, +/**/ + 660, +/**/ + 659, +/**/ + 658, +/**/ + 657, +/**/ + 656, +/**/ + 655, +/**/ + 654, +/**/ + 653, +/**/ + 652, +/**/ + 651, +/**/ + 650, +/**/ + 649, +/**/ + 648, +/**/ + 647, +/**/ + 646, +/**/ + 645, +/**/ + 644, +/**/ + 643, +/**/ + 642, +/**/ + 641, +/**/ + 640, +/**/ + 639, +/**/ + 638, +/**/ + 637, +/**/ + 636, +/**/ + 635, +/**/ + 634, +/**/ + 633, +/**/ + 632, +/**/ + 631, +/**/ + 630, +/**/ + 629, +/**/ + 628, +/**/ + 627, +/**/ + 626, +/**/ + 625, +/**/ + 624, +/**/ + 623, +/**/ + 622, +/**/ + 621, +/**/ + 620, +/**/ + 619, +/**/ + 618, +/**/ + 617, +/**/ + 616, +/**/ + 615, +/**/ + 614, +/**/ + 613, +/**/ + 612, +/**/ + 611, +/**/ + 610, +/**/ + 609, +/**/ + 608, +/**/ + 607, +/**/ + 606, +/**/ + 605, +/**/ + 604, +/**/ + 603, +/**/ + 602, +/**/ + 601, +/**/ + 600, +/**/ + 599, +/**/ + 598, +/**/ + 597, +/**/ + 596, +/**/ + 595, +/**/ + 594, +/**/ + 593, +/**/ + 592, +/**/ + 591, +/**/ + 590, +/**/ + 589, +/**/ + 588, +/**/ + 587, +/**/ + 586, +/**/ + 585, +/**/ + 584, +/**/ + 583, +/**/ + 582, +/**/ + 581, +/**/ + 580, +/**/ + 579, +/**/ + 578, +/**/ + 577, +/**/ + 576, +/**/ + 575, +/**/ + 574, +/**/ + 573, +/**/ + 572, +/**/ + 571, +/**/ + 570, +/**/ + 569, +/**/ + 568, +/**/ + 567, +/**/ + 566, +/**/ + 565, +/**/ + 564, +/**/ + 563, +/**/ + 562, +/**/ + 561, +/**/ + 560, +/**/ + 559, +/**/ + 558, +/**/ + 557, +/**/ + 556, +/**/ + 555, +/**/ + 554, +/**/ + 553, +/**/ + 552, +/**/ + 551, +/**/ + 550, +/**/ + 549, +/**/ + 548, +/**/ + 547, +/**/ + 546, +/**/ + 545, +/**/ + 544, +/**/ + 543, +/**/ + 542, +/**/ + 541, +/**/ + 540, +/**/ + 539, +/**/ + 538, +/**/ + 537, +/**/ + 536, +/**/ + 535, +/**/ + 534, +/**/ + 533, +/**/ + 532, +/**/ + 531, +/**/ + 530, +/**/ + 529, +/**/ + 528, +/**/ + 527, +/**/ + 526, +/**/ + 525, +/**/ + 524, +/**/ + 523, +/**/ + 522, +/**/ + 521, +/**/ + 520, +/**/ + 519, +/**/ + 518, +/**/ + 517, +/**/ + 516, +/**/ + 515, +/**/ + 514, +/**/ + 513, +/**/ + 512, +/**/ + 511, +/**/ + 510, +/**/ + 509, +/**/ + 508, +/**/ + 507, +/**/ + 506, +/**/ + 505, +/**/ + 504, +/**/ + 503, +/**/ + 502, +/**/ + 501, +/**/ + 500, +/**/ + 499, +/**/ + 498, +/**/ + 497, +/**/ + 496, +/**/ + 495, +/**/ + 494, +/**/ + 493, +/**/ + 492, +/**/ + 491, +/**/ + 490, +/**/ + 489, +/**/ + 488, +/**/ + 487, +/**/ + 486, +/**/ + 485, +/**/ + 484, +/**/ + 483, +/**/ + 482, +/**/ + 481, +/**/ + 480, +/**/ + 479, +/**/ + 478, +/**/ + 477, +/**/ + 476, +/**/ + 475, +/**/ + 474, +/**/ + 473, +/**/ + 472, +/**/ + 471, +/**/ + 470, +/**/ + 469, +/**/ + 468, +/**/ + 467, +/**/ + 466, +/**/ + 465, +/**/ + 464, +/**/ + 463, +/**/ + 462, +/**/ + 461, +/**/ + 460, +/**/ + 459, +/**/ + 458, +/**/ + 457, +/**/ + 456, +/**/ + 455, +/**/ + 454, +/**/ + 453, +/**/ + 452, +/**/ + 451, +/**/ + 450, +/**/ + 449, +/**/ + 448, +/**/ + 447, +/**/ + 446, +/**/ + 445, +/**/ + 444, +/**/ + 443, +/**/ + 442, +/**/ + 441, +/**/ + 440, +/**/ + 439, +/**/ + 438, +/**/ + 437, +/**/ + 436, +/**/ + 435, +/**/ + 434, +/**/ + 433, +/**/ + 432, +/**/ + 431, +/**/ + 430, +/**/ + 429, +/**/ + 428, +/**/ + 427, +/**/ + 426, +/**/ + 425, +/**/ + 424, +/**/ + 423, +/**/ + 422, +/**/ + 421, +/**/ + 420, +/**/ + 419, +/**/ + 418, +/**/ + 417, +/**/ + 416, +/**/ + 415, +/**/ + 414, +/**/ + 413, +/**/ + 412, +/**/ + 411, +/**/ + 410, +/**/ + 409, +/**/ + 408, +/**/ + 407, +/**/ + 406, +/**/ + 405, +/**/ + 404, +/**/ + 403, +/**/ + 402, +/**/ + 401, +/**/ + 400, +/**/ + 399, +/**/ + 398, +/**/ + 397, +/**/ + 396, +/**/ + 395, +/**/ + 394, +/**/ + 393, +/**/ + 392, +/**/ + 391, +/**/ + 390, +/**/ + 389, +/**/ + 388, +/**/ + 387, +/**/ + 386, +/**/ + 385, +/**/ + 384, +/**/ + 383, +/**/ + 382, +/**/ + 381, +/**/ + 380, +/**/ + 379, +/**/ + 378, +/**/ + 377, +/**/ + 376, +/**/ + 375, +/**/ + 374, +/**/ + 373, +/**/ + 372, +/**/ + 371, +/**/ + 370, +/**/ + 369, +/**/ + 368, +/**/ + 367, +/**/ + 366, +/**/ + 365, +/**/ + 364, +/**/ + 363, +/**/ + 362, +/**/ + 361, +/**/ + 360, +/**/ + 359, +/**/ + 358, +/**/ + 357, +/**/ + 356, +/**/ + 355, +/**/ + 354, +/**/ + 353, +/**/ + 352, +/**/ + 351, +/**/ + 350, +/**/ + 349, +/**/ + 348, +/**/ + 347, +/**/ + 346, +/**/ + 345, +/**/ + 344, +/**/ + 343, +/**/ + 342, +/**/ + 341, +/**/ + 340, +/**/ + 339, +/**/ + 338, +/**/ + 337, +/**/ + 336, +/**/ + 335, +/**/ + 334, +/**/ + 333, +/**/ + 332, +/**/ + 331, +/**/ + 330, +/**/ + 329, +/**/ + 328, +/**/ + 327, +/**/ + 326, +/**/ + 325, +/**/ + 324, +/**/ + 323, +/**/ + 322, +/**/ + 321, +/**/ + 320, +/**/ + 319, +/**/ + 318, +/**/ + 317, +/**/ + 316, +/**/ + 315, +/**/ + 314, +/**/ + 313, +/**/ + 312, +/**/ + 311, +/**/ + 310, +/**/ + 309, +/**/ + 308, +/**/ + 307, +/**/ + 306, +/**/ + 305, +/**/ + 304, +/**/ + 303, +/**/ + 302, +/**/ + 301, +/**/ + 300, +/**/ + 299, +/**/ + 298, +/**/ + 297, +/**/ + 296, +/**/ + 295, +/**/ + 294, +/**/ + 293, +/**/ + 292, +/**/ + 291, +/**/ + 290, +/**/ + 289, +/**/ + 288, +/**/ + 287, +/**/ + 286, +/**/ + 285, +/**/ + 284, +/**/ + 283, +/**/ + 282, +/**/ + 281, +/**/ + 280, +/**/ + 279, +/**/ + 278, +/**/ + 277, +/**/ + 276, +/**/ + 275, +/**/ + 274, +/**/ + 273, +/**/ + 272, +/**/ + 271, +/**/ + 270, +/**/ + 269, +/**/ + 268, +/**/ + 267, +/**/ + 266, +/**/ + 265, +/**/ + 264, +/**/ + 263, +/**/ + 262, +/**/ + 261, +/**/ + 260, +/**/ + 259, +/**/ + 258, +/**/ + 257, +/**/ + 256, +/**/ + 255, +/**/ + 254, +/**/ + 253, +/**/ + 252, +/**/ + 251, +/**/ + 250, +/**/ + 249, +/**/ + 248, +/**/ + 247, +/**/ + 246, +/**/ + 245, +/**/ + 244, +/**/ + 243, +/**/ + 242, +/**/ + 241, +/**/ + 240, +/**/ + 239, +/**/ + 238, +/**/ + 237, +/**/ + 236, +/**/ + 235, +/**/ + 234, +/**/ + 233, +/**/ + 232, +/**/ + 231, +/**/ + 230, +/**/ + 229, +/**/ + 228, +/**/ + 227, +/**/ + 226, +/**/ + 225, +/**/ + 224, +/**/ + 223, +/**/ + 222, +/**/ + 221, +/**/ + 220, +/**/ + 219, +/**/ + 218, +/**/ + 217, +/**/ + 216, +/**/ + 215, +/**/ + 214, +/**/ + 213, +/**/ + 212, +/**/ + 211, +/**/ + 210, +/**/ + 209, +/**/ + 208, +/**/ + 207, +/**/ + 206, +/**/ + 205, +/**/ + 204, +/**/ + 203, +/**/ + 202, +/**/ + 201, +/**/ + 200, +/**/ + 199, +/**/ + 198, +/**/ + 197, +/**/ + 196, +/**/ + 195, +/**/ + 194, +/**/ + 193, +/**/ + 192, +/**/ + 191, +/**/ + 190, +/**/ + 189, +/**/ + 188, +/**/ + 187, +/**/ + 186, +/**/ + 185, +/**/ + 184, +/**/ + 183, +/**/ + 182, +/**/ + 181, +/**/ + 180, +/**/ + 179, +/**/ + 178, +/**/ + 177, +/**/ + 176, +/**/ + 175, +/**/ + 174, +/**/ + 173, +/**/ + 172, +/**/ + 171, +/**/ + 170, +/**/ + 169, +/**/ + 168, +/**/ + 167, +/**/ + 166, +/**/ + 165, +/**/ + 164, +/**/ + 163, +/**/ + 162, +/**/ + 161, +/**/ + 160, +/**/ + 159, +/**/ + 158, +/**/ + 157, +/**/ + 156, +/**/ + 155, +/**/ + 154, +/**/ + 153, +/**/ + 152, +/**/ + 151, +/**/ + 150, +/**/ + 149, +/**/ + 148, +/**/ + 147, +/**/ + 146, +/**/ + 145, +/**/ + 144, +/**/ + 143, +/**/ + 142, +/**/ + 141, +/**/ + 140, +/**/ + 139, +/**/ + 138, +/**/ + 137, +/**/ + 136, +/**/ + 135, +/**/ + 134, +/**/ + 133, +/**/ + 132, +/**/ + 131, +/**/ + 130, +/**/ + 129, +/**/ + 128, +/**/ + 127, +/**/ + 126, +/**/ + 125, +/**/ + 124, +/**/ + 123, +/**/ + 122, +/**/ + 121, +/**/ + 120, +/**/ + 119, +/**/ + 118, +/**/ + 117, +/**/ + 116, +/**/ + 115, +/**/ + 114, +/**/ + 113, +/**/ + 112, +/**/ + 111, +/**/ + 110, +/**/ + 109, +/**/ + 108, +/**/ + 107, +/**/ + 106, +/**/ + 105, +/**/ + 104, +/**/ + 103, +/**/ + 102, +/**/ + 101, +/**/ + 100, +/**/ + 99, +/**/ + 98, +/**/ + 97, +/**/ + 96, +/**/ + 95, +/**/ + 94, +/**/ + 93, +/**/ + 92, +/**/ + 91, +/**/ + 90, +/**/ + 89, +/**/ + 88, +/**/ + 87, +/**/ + 86, +/**/ + 85, +/**/ + 84, +/**/ + 83, +/**/ + 82, +/**/ + 81, +/**/ + 80, +/**/ + 79, +/**/ + 78, +/**/ + 77, +/**/ + 76, +/**/ + 75, +/**/ + 74, +/**/ + 73, +/**/ + 72, +/**/ + 71, +/**/ + 70, +/**/ + 69, +/**/ + 68, +/**/ + 67, +/**/ + 66, +/**/ + 65, +/**/ + 64, +/**/ + 63, +/**/ + 62, +/**/ + 61, +/**/ + 60, +/**/ + 59, +/**/ + 58, +/**/ + 57, +/**/ + 56, +/**/ + 55, +/**/ + 54, +/**/ + 53, +/**/ + 52, +/**/ + 51, +/**/ + 50, +/**/ + 49, +/**/ + 48, +/**/ + 47, +/**/ + 46, +/**/ + 45, +/**/ + 44, +/**/ + 43, +/**/ + 42, +/**/ + 41, +/**/ + 40, +/**/ + 39, +/**/ + 38, +/**/ + 37, +/**/ + 36, +/**/ + 35, +/**/ + 34, +/**/ + 33, +/**/ + 32, +/**/ + 31, +/**/ + 30, +/**/ + 29, +/**/ + 28, +/**/ + 27, +/**/ + 26, +/**/ + 25, +/**/ + 24, +/**/ + 23, +/**/ + 22, +/**/ + 21, +/**/ + 20, +/**/ + 19, +/**/ + 18, +/**/ + 17, /**/ 16, /**/ @@ -1350,9 +3759,9 @@ do_intro_line( if (highest_patch()) { // Check for 9.9x or 9.9xx, alpha/beta version - if (SAFE_isalpha((int)vers[3])) + if (isalpha((int)vers[3])) { - int len = (SAFE_isalpha((int)vers[4])) ? 5 : 4; + int len = (isalpha((int)vers[4])) ? 5 : 4; sprintf((char *)vers + len, ".%d%s", highest_patch(), mediumVersion + len); } @@ -1398,4 +3807,4 @@ ex_intro(exarg_T *eap UNUSED) screenclear(); intro_message(TRUE); wait_return(TRUE); -} +} \ No newline at end of file -- Gitee