aboutsummaryrefslogtreecommitdiff
path: root/src/version.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-05-12 02:25:17 +0200
committerEliseo Martínez <eliseomarmol@gmail.com>2014-05-15 20:46:01 +0200
commitda51dc9cf202772f60bd2da975dbef257bd9237c (patch)
tree5c16b93238a153f55634e9323077f30c8133970c /src/version.c
parentffe61e5ba1721340ca51d56bae3ddaca415fb5bc (diff)
downloadrneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.gz
rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.tar.bz2
rneovim-da51dc9cf202772f60bd2da975dbef257bd9237c.zip
Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/. - src/nvim/ becomes the new root dir for nvim executable sources. - src/libnvim/ is planned to become root dir of the neovim library.
Diffstat (limited to 'src/version.c')
-rw-r--r--src/version.c927
1 files changed, 0 insertions, 927 deletions
diff --git a/src/version.c b/src/version.c
deleted file mode 100644
index d4df349741..0000000000
--- a/src/version.c
+++ /dev/null
@@ -1,927 +0,0 @@
-/// @file version.c
-///
-/// Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred)
-/// It has been changed beyond recognition since then.
-///
-/// Differences between version 6.x and 7.x can be found with ":help version7".
-/// Differences between version 5.x and 6.x can be found with ":help version6".
-/// Differences between version 4.x and 5.x can be found with ":help version5".
-/// Differences between version 3.0 and 4.x can be found with ":help version4".
-/// All the remarks about older versions have been removed, they are not very
-/// interesting.
-
-#include "vim.h"
-#include "version.h"
-#include "charset.h"
-#include "memline.h"
-#include "message.h"
-#include "misc2.h"
-#include "screen.h"
-
-#include "version_defs.h"
-
-char *Version = VIM_VERSION_SHORT;
-static char *mediumVersion = VIM_VERSION_MEDIUM;
-
-char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")";
-
-static void list_features(void);
-static void version_msg(char *s);
-
-static char *(features[]) = {
-#ifdef HAVE_ACL
- "+acl",
-#else // ifdef HAVE_ACL
- "-acl",
-#endif // ifdef HAVE_ACL
- "+arabic",
- "+autocmd",
- "-browse",
-#ifdef NO_BUILTIN_TCAPS
- "-builtin_terms",
-#endif // ifdef NO_BUILTIN_TCAPS
-#ifdef SOME_BUILTIN_TCAPS
- "+builtin_terms",
-#endif // ifdef SOME_BUILTIN_TCAPS
-#ifdef ALL_BUILTIN_TCAPS
- "++builtin_terms",
-#endif // ifdef ALL_BUILTIN_TCAPS
- "+byte_offset",
- "+cindent",
- "-clipboard",
- "+cmdline_compl",
- "+cmdline_hist",
- "+cmdline_info",
- "+comments",
- "+conceal",
- "+cryptv",
- "+cscope",
- "+cursorbind",
-#ifdef CURSOR_SHAPE
- "+cursorshape",
-#else // ifdef CURSOR_SHAPE
- "-cursorshape",
-#endif // ifdef CURSOR_SHAPE
- "+dialog_con",
- "+diff",
- "+digraphs",
- "-dnd",
- "-ebcdic",
- "-emacs_tags",
- "+eval",
- "+ex_extra",
- "+extra_search",
- "+farsi",
- "+file_in_path",
- "+find_in_path",
- "+float",
- "+folding",
- "-footer",
-
- // only interesting on Unix systems
-#if defined(UNIX)
- "+fork()",
-#endif // if defined(UNIX)
- "+gettext",
-#if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV)
-# ifdef DYNAMIC_ICONV
- "+iconv/dyn",
-# else // ifdef DYNAMIC_ICONV
- "+iconv",
-# endif // ifdef DYNAMIC_ICONV
-#else // if (defined(HAVE_ICONV_H) && defined(USE_ICONV))
- // ||defined(DYNAMIC_ICONV)
- "-iconv",
-#endif // if (defined(HAVE_ICONV_H) && defined(USE_ICONV))
- // || defined(DYNAMIC_ICONV)
- "+insert_expand",
- "+jumplist",
- "+keymap",
- "+langmap",
-#ifdef FEAT_LIBCALL
- "+libcall",
-#else // ifdef FEAT_LIBCALL
- "-libcall",
-#endif // ifdef FEAT_LIBCALL
- "+linebreak",
- "+lispindent",
- "+listcmds",
- "+localmap",
- "+menu",
- "+mksession",
- "+modify_fname",
- "+mouse",
- "-mouseshape",
-
-#if defined(UNIX)
- "+mouse_dec",
- "-mouse_gpm",
-# ifdef FEAT_MOUSE_JSB
- "+mouse_jsbterm",
-# else // ifdef FEAT_MOUSE_JSB
- "-mouse_jsbterm",
-# endif // ifdef FEAT_MOUSE_JSB
- "+mouse_netterm",
-#endif // if defined(UNIX)
-
-
-#if defined(UNIX)
- "+mouse_sgr",
- "-mouse_sysmouse",
- "+mouse_urxvt",
- "+mouse_xterm",
-#endif // if defined(UNIX)
-
- "+multi_byte",
- "+multi_lang",
- "+path_extra",
- "+persistent_undo",
- "+postscript",
- "+printer",
- "+profile",
- "+quickfix",
- "+reltime",
- "+rightleft",
- "+scrollbind",
- "+signs",
- "+smartindent",
-#ifdef STARTUPTIME
- "+startuptime",
-#else // ifdef STARTUPTIME
- "-startuptime",
-#endif // ifdef STARTUPTIME
- "+statusline",
- "+syntax",
- "+tag_binary",
- "+tag_old_static",
-#ifdef FEAT_TAG_ANYWHITE
- "+tag_any_white",
-#else // ifdef FEAT_TAG_ANYWHITE
- "-tag_any_white",
-#endif // ifdef FEAT_TAG_ANYWHITE
-#if defined(UNIX)
-
- // only Unix can have terminfo instead of termcap
-# ifdef TERMINFO
- "+terminfo",
-# else // ifdef TERMINFO
- "-terminfo",
-# endif // ifdef TERMINFO
-#else // unix always includes termcap support
-# ifdef HAVE_TGETENT
- "+tgetent",
-# else // ifdef HAVE_TGETENT
- "-tgetent",
-# endif // ifdef HAVE_TGETENT
-#endif // if defined(UNIX)
- "+termresponse",
- "+textobjects",
- "+title",
- "-toolbar",
- "+user_commands",
- "+vertsplit",
- "+virtualedit",
- "+visual",
- "+visualextra",
- "+viminfo",
- "+vreplace",
- "+wildignore",
- "+wildmenu",
- "+windows",
- "+writebackup",
-#if defined(UNIX)
- "-X11",
-#endif // if defined(UNIX)
- "-xfontset",
-#if defined(UNIX)
- "-xsmp",
- "-xterm_clipboard",
-#endif // if defined(UNIX)
- NULL
-};
-
-static int included_patches[] = {
- // Add new patch number below this line
- 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,
- 15,
- 14,
- 13,
- 12,
- 11,
- 10,
- 9,
- 8,
- 7,
- 6,
- 5,
- 4,
- 3,
- 2,
- 1,
- 0
-};
-
-/// Place to put a short description when adding a feature with a patch.
-/// Keep it short, e.g.,: "relative numbers", "persistent undo".
-/// Also add a comment marker to separate the lines.
-/// See the official Vim patches for the diff format: It must use a context of
-/// one line only. Create it by hand or use "diff -C2" and edit the patch.
-static char *(extra_patches[]) = {
- // Add your patch description below this line
- NULL
-};
-
-int highest_patch(void)
-{
- int i;
- int h = 0;
-
- for (i = 0; included_patches[i] != 0; ++i) {
- if (included_patches[i] > h) {
- h = included_patches[i];
- }
- }
- return h;
-}
-
-/// Checks whether patch `n` has been included.
-///
-/// @param n The patch number.
-///
-/// @return TRUE if patch "n" has been included.
-int has_patch(int n)
-{
- int i;
- for (i = 0; included_patches[i] != 0; ++i) {
- if (included_patches[i] == n) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-void ex_version(exarg_T *eap)
-{
- // Ignore a ":version 9.99" command.
- if (*eap->arg == NUL) {
- msg_putchar('\n');
- list_version();
- }
-}
-
-/// List all features aligned in columns, dictionary style.
-static void list_features(void)
-{
- int nfeat = 0;
- int width = 0;
-
- // Find the length of the longest feature name, use that + 1 as the column
- // width
- int i;
- for (i = 0; features[i] != NULL; ++i) {
- int l = (int)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;
- }
-
- // The rightmost column doesn't need a separator.
- // Sacrifice it to fit in one more column if possible.
- int ncol = (int)(Columns + 1) / width;
- int nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0);
-
- // i counts columns then rows. idx counts rows then columns.
- 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 {
- if (msg_col > 0) {
- msg_putchar('\n');
- }
- }
- }
-}
-
-void list_version(void)
-{
- int i;
- int first;
- char *s = "";
-
- // When adding features here, don't forget to update the list of
- // internal variables in eval.c!
- MSG(longVersion);
-
- // Print the list of patch numbers if there is at least one.
- // Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45"
- if (included_patches[0] != 0) {
- MSG_PUTS(_("\nIncluded patches: "));
- first = -1;
-
- // find last one
- for (i = 0; included_patches[i] != 0; ++i) {}
-
- while (--i >= 0) {
- if (first < 0) {
- first = included_patches[i];
- }
-
- if ((i == 0) || (included_patches[i - 1] != included_patches[i] + 1)) {
- MSG_PUTS(s);
- s = ", ";
- msg_outnum((long)first);
-
- if (first != included_patches[i]) {
- MSG_PUTS("-");
- msg_outnum((long)included_patches[i]);
- }
- first = -1;
- }
- }
- }
-
- // Print the list of extra patch descriptions if there is at least one.
- if (extra_patches[0] != NULL) {
- MSG_PUTS(_("\nExtra patches: "));
- s = "";
-
- for (i = 0; extra_patches[i] != NULL; ++i) {
- MSG_PUTS(s);
- s = ", ";
- MSG_PUTS(extra_patches[i]);
- }
- }
-
-#ifdef MODIFIED_BY
- MSG_PUTS("\n");
- MSG_PUTS(_("Modified by "));
- MSG_PUTS(MODIFIED_BY);
-#endif // ifdef MODIFIED_BY
-
-#ifdef HAVE_PATHDEF
-
- if ((*compiled_user != NUL) || (*compiled_sys != NUL)) {
- MSG_PUTS(_("\nCompiled "));
-
- if (*compiled_user != NUL) {
- MSG_PUTS(_("by "));
- MSG_PUTS(compiled_user);
- }
-
- if (*compiled_sys != NUL) {
- MSG_PUTS("@");
- MSG_PUTS(compiled_sys);
- }
- }
-#endif // ifdef HAVE_PATHDEF
-
- MSG_PUTS(_("\nHuge version "));
- MSG_PUTS(_("without GUI."));
- version_msg(_(" Features included (+) or not (-):\n"));
-
- list_features();
-
-#ifdef SYS_VIMRC_FILE
- version_msg(_(" system vimrc file: \""));
- version_msg(SYS_VIMRC_FILE);
- version_msg("\"\n");
-#endif // ifdef SYS_VIMRC_FILE
-#ifdef USR_VIMRC_FILE
- version_msg(_(" user vimrc file: \""));
- version_msg(USR_VIMRC_FILE);
- version_msg("\"\n");
-#endif // ifdef USR_VIMRC_FILE
-#ifdef USR_VIMRC_FILE2
- version_msg(_(" 2nd user vimrc file: \""));
- version_msg(USR_VIMRC_FILE2);
- version_msg("\"\n");
-#endif // ifdef USR_VIMRC_FILE2
-#ifdef USR_VIMRC_FILE3
- version_msg(_(" 3rd user vimrc file: \""));
- version_msg(USR_VIMRC_FILE3);
- version_msg("\"\n");
-#endif // ifdef USR_VIMRC_FILE3
-#ifdef USR_EXRC_FILE
- version_msg(_(" user exrc file: \""));
- version_msg(USR_EXRC_FILE);
- version_msg("\"\n");
-#endif // ifdef USR_EXRC_FILE
-#ifdef USR_EXRC_FILE2
- version_msg(_(" 2nd user exrc file: \""));
- version_msg(USR_EXRC_FILE2);
- version_msg("\"\n");
-#endif // ifdef USR_EXRC_FILE2
-#ifdef HAVE_PATHDEF
-
- if (*default_vim_dir != NUL) {
- version_msg(_(" fall-back for $VIM: \""));
- version_msg((char *)default_vim_dir);
- version_msg("\"\n");
- }
-
- if (*default_vimruntime_dir != NUL) {
- version_msg(_(" f-b for $VIMRUNTIME: \""));
- version_msg((char *)default_vimruntime_dir);
- version_msg("\"\n");
- }
- version_msg(_("Compilation: "));
- version_msg((char *)all_cflags);
- version_msg("\n");
- version_msg(_("Linking: "));
- version_msg((char *)all_lflags);
-#endif // ifdef HAVE_PATHDEF
-#ifdef DEBUG
- version_msg("\n");
- version_msg(_(" DEBUG BUILD"));
-#endif // ifdef DEBUG
-}
-
-/// Output a string for the version message. If it's going to wrap, output a
-/// newline, unless the message is too long to fit on the screen anyway.
-///
-/// @param s
-static void version_msg(char *s)
-{
- int len = (int)STRLEN(s);
-
- if (!got_int
- && (len < (int)Columns)
- && (msg_col + len >= (int)Columns)
- && (*s != '\n')) {
- msg_putchar('\n');
- }
-
- if (!got_int) {
- MSG_PUTS(s);
- }
-}
-
-static void do_intro_line(int row, char_u *mesg, int add_version, int attr);
-
-/// Show the intro message when not editing a file.
-void maybe_intro_message(void)
-{
- if (bufempty()
- && (curbuf->b_fname == NULL)
- && (firstwin->w_next == NULL)
- && (vim_strchr(p_shm, SHM_INTRO) == NULL)) {
- intro_message(FALSE);
- }
-}
-
-/// Give an introductory message about Vim.
-/// Only used when starting Vim on an empty file, without a file name.
-/// Or with the ":intro" command (for Sven :-).
-///
-/// @param colon TRUE for ":intro"
-void intro_message(int colon)
-{
- int i;
- int row;
- int blanklines;
- int sponsor;
- char *p;
- static char *(lines[]) = {
- N_("VIM - Vi IMproved"),
- "",
- N_("version "),
- N_("by Bram Moolenaar et al."),
-#ifdef MODIFIED_BY
- " ",
-#endif // ifdef MODIFIED_BY
- N_("Vim is open source and freely distributable"),
- "",
- N_("Help poor children in Uganda!"),
- N_("type :help iccf<Enter> for information "),
- "",
- N_("type :q<Enter> to exit "),
- N_("type :help<Enter> or <F1> for on-line help"),
- N_("type :help version7<Enter> for version info"),
- NULL,
- "",
- N_("Running in Vi compatible mode"),
- N_("type :set nocp<Enter> for Vim defaults"),
- N_("type :help cp-default<Enter> for info on this"),
- };
-
- // blanklines = screen height - # message lines
- blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1);
-
- if (!p_cp) {
- // add 4 for not showing "Vi compatible" message
- blanklines += 4;
- }
-
- // Don't overwrite a statusline. Depends on 'cmdheight'.
- if (p_ls > 1) {
- blanklines -= Rows - topframe->fr_height;
- }
-
- if (blanklines < 0) {
- blanklines = 0;
- }
-
- // Show the sponsor and register message one out of four times, the Uganda
- // message two out of four times.
- sponsor = (int)time(NULL);
- sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0);
-
- // start displaying the message lines after half of the blank lines
- row = blanklines / 2;
-
- if (((row >= 2) && (Columns >= 50)) || colon) {
- for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) {
- p = lines[i];
- if (p == NULL) {
- if (!p_cp) {
- break;
- }
- continue;
- }
-
- if (sponsor != 0) {
- if (strstr(p, "children") != NULL) {
- p = sponsor < 0
- ? N_("Sponsor Vim development!")
- : N_("Become a registered Vim user!");
- } else if (strstr(p, "iccf") != NULL) {
- p = sponsor < 0
- ? N_("type :help sponsor<Enter> for information ")
- : N_("type :help register<Enter> for information ");
- } else if (strstr(p, "Orphans") != NULL) {
- p = N_("menu Help->Sponsor/Register for information ");
- }
- }
-
- if (*p != NUL) {
- do_intro_line(row, (char_u *)_(p), i == 2, 0);
- }
- row++;
- }
- }
-
- // Make the wait-return message appear just below the text.
- if (colon) {
- msg_row = row;
- }
-}
-
-static void do_intro_line(int row, char_u *mesg, int add_version, int attr)
-{
- char_u vers[20];
- int col;
- char_u *p;
- int l;
- int clen;
-
-#ifdef MODIFIED_BY
-# define MODBY_LEN 150
- char_u modby[MODBY_LEN];
-
- if (*mesg == ' ') {
- vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1);
- l = STRLEN(modby);
- vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1);
- mesg = modby;
- }
-#endif // ifdef MODIFIED_BY
-
- // Center the message horizontally.
- col = vim_strsize(mesg);
-
- if (add_version) {
- STRCPY(vers, mediumVersion);
-
- if (highest_patch()) {
- // Check for 9.9x or 9.9xx, alpha/beta version
- if (isalpha((int)vers[3])) {
- int len = (isalpha((int)vers[4])) ? 5 : 4;
- sprintf((char *)vers + len, ".%d%s", highest_patch(),
- mediumVersion + len);
- } else {
- sprintf((char *)vers + 3, ".%d", highest_patch());
- }
- }
- col += (int)STRLEN(vers);
- }
- col = (Columns - col) / 2;
-
- if (col < 0) {
- col = 0;
- }
-
- // Split up in parts to highlight <> items differently.
- for (p = mesg; *p != NUL; p += l) {
- clen = 0;
-
- for (l = 0; p[l] != NUL
- && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) {
- if (has_mbyte) {
- clen += ptr2cells(p + l);
- l += (*mb_ptr2len)(p + l) - 1;
- } else {
- clen += byte2cells(p[l]);
- }
- }
- screen_puts_len(p, l, row, col, *p == '<' ? hl_attr(HLF_8) : attr);
- col += clen;
- }
-
- // Add the version number to the version line.
- if (add_version) {
- screen_puts(vers, row, col, 0);
- }
-}
-
-/// ":intro": clear screen, display intro screen and wait for return.
-///
-/// @param eap
-void ex_intro(exarg_T *eap)
-{
- screenclear();
- intro_message(TRUE);
- wait_return(TRUE);
-}