diff --git a/7.3.826 b/7.3.826 new file mode 100644 index 0000000..2235e22 --- /dev/null +++ b/7.3.826 @@ -0,0 +1,155 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.826 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.826 +Problem: List of features in :version output is hard to read. +Solution: Make columns. (Nazri Ramliy) +Files: src/version.c + + +*** ../vim-7.3.825/src/version.c 2013-02-20 16:09:35.000000000 +0100 +--- src/version.c 2013-02-20 16:27:44.000000000 +0100 +*************** +*** 34,39 **** +--- 34,42 ---- + # if (defined(VMS) && defined(VAXC)) || defined(PROTO) + char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) + + sizeof(__TIME__) + 3]; ++ ++ static void list_features __ARGS((void)); ++ + void + make_version() + { +*************** +*** 2435,2440 **** +--- 2440,2513 ---- + } + } + ++ /* ++ * List all features aligned in columns, dictionary style. ++ */ ++ static void ++ list_features() ++ { ++ int i; ++ int ncol; ++ int nrow; ++ int nfeat = 0; ++ int width = 0; ++ ++ /* Find the length of the longest feature name, use that + 1 as the column ++ * width */ ++ for (i = 0; features[i] != NULL; ++i) ++ { ++ int l = STRLEN(features[i]); ++ ++ if (l > width) ++ width = l; ++ ++nfeat; ++ } ++ width += 1; ++ ++ if (Columns < width) ++ { ++ /* Not enough screen columns - show one per line */ ++ for (i = 0; features[i] != NULL; ++i) ++ { ++ version_msg(features[i]); ++ if (msg_col > 0) ++ msg_putchar('\n'); ++ } ++ return; ++ } ++ ++ ncol = (int) Columns / width; ++ /* The rightmost column doesn't need a separator. ++ * Sacrifice it to fit in one more column if possible. */ ++ if (Columns % width == width - 1) ++ ncol++; ++ ++ nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0); ++ ++ for (i = 0; !got_int && i < nrow * ncol; ++i) ++ { ++ int idx = (i / ncol) + (i % ncol) * nrow; ++ ++ if (idx < nfeat) ++ { ++ int last_col = (i + 1) % ncol == 0; ++ ++ msg_puts((char_u *)features[idx]); ++ if (last_col) ++ { ++ if (msg_col > 0) ++ msg_putchar('\n'); ++ } ++ else ++ { ++ while (msg_col % width) ++ msg_putchar(' '); ++ } ++ } ++ else ++ msg_putchar('\n'); ++ } ++ } + void + list_version() + { +*************** +*** 2632,2646 **** + #endif + version_msg(_(" Features included (+) or not (-):\n")); + +! /* print all the features */ +! for (i = 0; features[i] != NULL; ++i) +! { +! version_msg(features[i]); +! if (msg_col > 0) +! version_msg(" "); +! } + +- version_msg("\n"); + #ifdef SYS_VIMRC_FILE + version_msg(_(" system vimrc file: \"")); + version_msg(SYS_VIMRC_FILE); +--- 2705,2712 ---- + #endif + version_msg(_(" Features included (+) or not (-):\n")); + +! list_features(); + + #ifdef SYS_VIMRC_FILE + version_msg(_(" system vimrc file: \"")); + version_msg(SYS_VIMRC_FILE); +*** ../vim-7.3.825/src/version.c 2013-02-20 16:09:35.000000000 +0100 +--- src/version.c 2013-02-20 16:27:44.000000000 +0100 +*************** +*** 727,728 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 826, + /**/ + +-- +Mrs Abbott: I'm a paediatrician. + Basil: Feet? +Mrs Abbott: Children. + Sybil: Oh, Basil! + Basil: Well, children have feet, don't they? That's how they move + around, my dear. You must take a look next time, it's most + interesting. (Fawlty Towers) + + /// 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 ///