Mercurial > vim
annotate src/version.c @ 3087:3ecf9e91d88a v7.3.315
updated for version 7.3.315
Problem: Opening a window before forking causes problems for GTK.
Solution: Fork first, create the window in the child and report back to the
parent process whether it worked. If successful the parent exits,
if unsuccessful the child exits and the parent continues in the
terminal. (Tim Starling)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 14 Sep 2011 19:04:39 +0200 |
parents | 6ab1b45cc95e |
children | 33c140e4664d |
rev | line source |
---|---|
7 | 1 /* vi:set ts=8 sts=4 sw=4: |
2 * | |
3 * VIM - Vi IMproved by Bram Moolenaar | |
4 * | |
5 * Do ":help uganda" in Vim to read copying and usage conditions. | |
6 * Do ":help credits" in Vim to see a list of people who contributed. | |
7 * See README.txt for an overview of the Vim source code. | |
8 */ | |
9 | |
10 #include "vim.h" | |
11 | |
12 #ifdef AMIGA | |
13 # include <time.h> /* for time() */ | |
14 #endif | |
15 | |
16 /* | |
17 * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred) | |
18 * It has been changed beyond recognition since then. | |
19 * | |
26 | 20 * Differences between version 6.x and 7.x can be found with ":help version7". |
7 | 21 * Differences between version 5.x and 6.x can be found with ":help version6". |
22 * Differences between version 4.x and 5.x can be found with ":help version5". | |
23 * Differences between version 3.0 and 4.x can be found with ":help version4". | |
24 * All the remarks about older versions have been removed, they are not very | |
25 * interesting. | |
26 */ | |
27 | |
28 #include "version.h" | |
29 | |
378 | 30 char *Version = VIM_VERSION_SHORT; |
31 static char *mediumVersion = VIM_VERSION_MEDIUM; | |
7 | 32 |
33 #if defined(HAVE_DATE_TIME) || defined(PROTO) | |
34 # if (defined(VMS) && defined(VAXC)) || defined(PROTO) | |
35 char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) | |
36 + sizeof(__TIME__) + 3]; | |
37 void | |
38 make_version() | |
39 { | |
40 /* | |
41 * Construct the long version string. Necessary because | |
42 * VAX C can't catenate strings in the preprocessor. | |
43 */ | |
44 strcpy(longVersion, VIM_VERSION_LONG_DATE); | |
45 strcat(longVersion, __DATE__); | |
46 strcat(longVersion, " "); | |
47 strcat(longVersion, __TIME__); | |
48 strcat(longVersion, ")"); | |
49 } | |
50 # else | |
51 char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")"; | |
52 # endif | |
53 #else | |
54 char *longVersion = VIM_VERSION_LONG; | |
55 #endif | |
56 | |
57 static void version_msg __ARGS((char *s)); | |
58 | |
59 static char *(features[]) = | |
60 { | |
61 #ifdef AMIGA /* only for Amiga systems */ | |
62 # ifdef FEAT_ARP | |
63 "+ARP", | |
64 # else | |
65 "-ARP", | |
66 # endif | |
67 #endif | |
68 #ifdef FEAT_ARABIC | |
69 "+arabic", | |
70 #else | |
71 "-arabic", | |
72 #endif | |
73 #ifdef FEAT_AUTOCMD | |
74 "+autocmd", | |
75 #else | |
76 "-autocmd", | |
77 #endif | |
78 #ifdef FEAT_BEVAL | |
79 "+balloon_eval", | |
80 #else | |
81 "-balloon_eval", | |
82 #endif | |
83 #ifdef FEAT_BROWSE | |
84 "+browse", | |
85 #else | |
86 "-browse", | |
87 #endif | |
88 #ifdef NO_BUILTIN_TCAPS | |
89 "-builtin_terms", | |
90 #endif | |
91 #ifdef SOME_BUILTIN_TCAPS | |
92 "+builtin_terms", | |
93 #endif | |
94 #ifdef ALL_BUILTIN_TCAPS | |
95 "++builtin_terms", | |
96 #endif | |
97 #ifdef FEAT_BYTEOFF | |
98 "+byte_offset", | |
99 #else | |
100 "-byte_offset", | |
101 #endif | |
102 #ifdef FEAT_CINDENT | |
103 "+cindent", | |
104 #else | |
105 "-cindent", | |
106 #endif | |
107 #ifdef FEAT_CLIENTSERVER | |
108 "+clientserver", | |
109 #else | |
110 "-clientserver", | |
111 #endif | |
112 #ifdef FEAT_CLIPBOARD | |
113 "+clipboard", | |
114 #else | |
115 "-clipboard", | |
116 #endif | |
117 #ifdef FEAT_CMDL_COMPL | |
118 "+cmdline_compl", | |
119 #else | |
120 "-cmdline_compl", | |
121 #endif | |
122 #ifdef FEAT_CMDHIST | |
123 "+cmdline_hist", | |
124 #else | |
125 "-cmdline_hist", | |
126 #endif | |
127 #ifdef FEAT_CMDL_INFO | |
128 "+cmdline_info", | |
129 #else | |
130 "-cmdline_info", | |
131 #endif | |
132 #ifdef FEAT_COMMENTS | |
133 "+comments", | |
134 #else | |
135 "-comments", | |
136 #endif | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
137 #ifdef FEAT_CONCEAL |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
138 "+conceal", |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
139 #else |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
140 "-conceal", |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
141 #endif |
7 | 142 #ifdef FEAT_CRYPT |
143 "+cryptv", | |
144 #else | |
145 "-cryptv", | |
146 #endif | |
147 #ifdef FEAT_CSCOPE | |
148 "+cscope", | |
149 #else | |
150 "-cscope", | |
151 #endif | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
152 #ifdef FEAT_CURSORBIND |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
153 "+cursorbind", |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
154 #else |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
155 "-cursorbind", |
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
156 #endif |
647 | 157 #ifdef CURSOR_SHAPE |
158 "+cursorshape", | |
159 #else | |
160 "-cursorshape", | |
161 #endif | |
7 | 162 #if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG) |
163 "+dialog_con_gui", | |
164 #else | |
165 # if defined(FEAT_CON_DIALOG) | |
166 "+dialog_con", | |
167 # else | |
168 # if defined(FEAT_GUI_DIALOG) | |
169 "+dialog_gui", | |
170 # else | |
171 "-dialog", | |
172 # endif | |
173 # endif | |
174 #endif | |
175 #ifdef FEAT_DIFF | |
176 "+diff", | |
177 #else | |
178 "-diff", | |
179 #endif | |
180 #ifdef FEAT_DIGRAPHS | |
181 "+digraphs", | |
182 #else | |
183 "-digraphs", | |
184 #endif | |
185 #ifdef FEAT_DND | |
186 "+dnd", | |
187 #else | |
188 "-dnd", | |
189 #endif | |
190 #ifdef EBCDIC | |
191 "+ebcdic", | |
192 #else | |
193 "-ebcdic", | |
194 #endif | |
195 #ifdef FEAT_EMACS_TAGS | |
196 "+emacs_tags", | |
197 #else | |
198 "-emacs_tags", | |
199 #endif | |
200 #ifdef FEAT_EVAL | |
201 "+eval", | |
202 #else | |
203 "-eval", | |
204 #endif | |
205 #ifdef FEAT_EX_EXTRA | |
206 "+ex_extra", | |
207 #else | |
208 "-ex_extra", | |
209 #endif | |
210 #ifdef FEAT_SEARCH_EXTRA | |
211 "+extra_search", | |
212 #else | |
213 "-extra_search", | |
214 #endif | |
215 #ifdef FEAT_FKMAP | |
216 "+farsi", | |
217 #else | |
218 "-farsi", | |
219 #endif | |
220 #ifdef FEAT_SEARCHPATH | |
221 "+file_in_path", | |
222 #else | |
223 "-file_in_path", | |
224 #endif | |
225 #ifdef FEAT_FIND_ID | |
226 "+find_in_path", | |
227 #else | |
228 "-find_in_path", | |
229 #endif | |
1621 | 230 #ifdef FEAT_FLOAT |
231 "+float", | |
232 #else | |
233 "-float", | |
234 #endif | |
7 | 235 #ifdef FEAT_FOLDING |
236 "+folding", | |
237 #else | |
238 "-folding", | |
239 #endif | |
240 #ifdef FEAT_FOOTER | |
241 "+footer", | |
242 #else | |
243 "-footer", | |
244 #endif | |
245 /* only interesting on Unix systems */ | |
246 #if !defined(USE_SYSTEM) && defined(UNIX) | |
247 "+fork()", | |
248 #endif | |
249 #ifdef FEAT_GETTEXT | |
250 # ifdef DYNAMIC_GETTEXT | |
251 "+gettext/dyn", | |
252 # else | |
253 "+gettext", | |
254 # endif | |
255 #else | |
256 "-gettext", | |
257 #endif | |
258 #ifdef FEAT_HANGULIN | |
259 "+hangul_input", | |
260 #else | |
261 "-hangul_input", | |
262 #endif | |
263 #if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV) | |
264 # ifdef DYNAMIC_ICONV | |
265 "+iconv/dyn", | |
266 # else | |
267 "+iconv", | |
268 # endif | |
269 #else | |
270 "-iconv", | |
271 #endif | |
272 #ifdef FEAT_INS_EXPAND | |
273 "+insert_expand", | |
274 #else | |
275 "-insert_expand", | |
276 #endif | |
277 #ifdef FEAT_JUMPLIST | |
278 "+jumplist", | |
279 #else | |
280 "-jumplist", | |
281 #endif | |
282 #ifdef FEAT_KEYMAP | |
283 "+keymap", | |
284 #else | |
285 "-keymap", | |
286 #endif | |
287 #ifdef FEAT_LANGMAP | |
288 "+langmap", | |
289 #else | |
290 "-langmap", | |
291 #endif | |
292 #ifdef FEAT_LIBCALL | |
293 "+libcall", | |
294 #else | |
295 "-libcall", | |
296 #endif | |
297 #ifdef FEAT_LINEBREAK | |
298 "+linebreak", | |
299 #else | |
300 "-linebreak", | |
301 #endif | |
302 #ifdef FEAT_LISP | |
303 "+lispindent", | |
304 #else | |
305 "-lispindent", | |
306 #endif | |
307 #ifdef FEAT_LISTCMDS | |
308 "+listcmds", | |
309 #else | |
310 "-listcmds", | |
311 #endif | |
312 #ifdef FEAT_LOCALMAP | |
313 "+localmap", | |
314 #else | |
315 "-localmap", | |
316 #endif | |
2320
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
317 #ifdef FEAT_LUA |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
318 # ifdef DYNAMIC_LUA |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
319 "+lua/dyn", |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
320 # else |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
321 "+lua", |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
322 # endif |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
323 #else |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
324 "-lua", |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2275
diff
changeset
|
325 #endif |
7 | 326 #ifdef FEAT_MENU |
327 "+menu", | |
328 #else | |
329 "-menu", | |
330 #endif | |
331 #ifdef FEAT_SESSION | |
332 "+mksession", | |
333 #else | |
334 "-mksession", | |
335 #endif | |
336 #ifdef FEAT_MODIFY_FNAME | |
337 "+modify_fname", | |
338 #else | |
339 "-modify_fname", | |
340 #endif | |
341 #ifdef FEAT_MOUSE | |
342 "+mouse", | |
343 # ifdef FEAT_MOUSESHAPE | |
344 "+mouseshape", | |
345 # else | |
346 "-mouseshape", | |
347 # endif | |
348 # else | |
349 "-mouse", | |
350 #endif | |
351 #if defined(UNIX) || defined(VMS) | |
352 # ifdef FEAT_MOUSE_DEC | |
353 "+mouse_dec", | |
354 # else | |
355 "-mouse_dec", | |
356 # endif | |
357 # ifdef FEAT_MOUSE_GPM | |
358 "+mouse_gpm", | |
359 # else | |
360 "-mouse_gpm", | |
361 # endif | |
362 # ifdef FEAT_MOUSE_JSB | |
363 "+mouse_jsbterm", | |
364 # else | |
365 "-mouse_jsbterm", | |
366 # endif | |
367 # ifdef FEAT_MOUSE_NET | |
368 "+mouse_netterm", | |
369 # else | |
370 "-mouse_netterm", | |
371 # endif | |
1621 | 372 # ifdef FEAT_SYSMOUSE |
373 "+mouse_sysmouse", | |
374 # else | |
375 "-mouse_sysmouse", | |
376 # endif | |
7 | 377 # ifdef FEAT_MOUSE_XTERM |
378 "+mouse_xterm", | |
379 # else | |
380 "-mouse_xterm", | |
381 # endif | |
382 #endif | |
383 #ifdef __QNX__ | |
384 # ifdef FEAT_MOUSE_PTERM | |
385 "+mouse_pterm", | |
386 # else | |
387 "-mouse_pterm", | |
388 # endif | |
389 #endif | |
390 #ifdef FEAT_MBYTE_IME | |
391 # ifdef DYNAMIC_IME | |
392 "+multi_byte_ime/dyn", | |
393 # else | |
394 "+multi_byte_ime", | |
395 # endif | |
396 #else | |
397 # ifdef FEAT_MBYTE | |
398 "+multi_byte", | |
399 # else | |
400 "-multi_byte", | |
401 # endif | |
402 #endif | |
403 #ifdef FEAT_MULTI_LANG | |
404 "+multi_lang", | |
405 #else | |
406 "-multi_lang", | |
407 #endif | |
14 | 408 #ifdef FEAT_MZSCHEME |
132 | 409 # ifdef DYNAMIC_MZSCHEME |
410 "+mzscheme/dyn", | |
411 # else | |
14 | 412 "+mzscheme", |
132 | 413 # endif |
14 | 414 #else |
415 "-mzscheme", | |
416 #endif | |
7 | 417 #ifdef FEAT_NETBEANS_INTG |
418 "+netbeans_intg", | |
419 #else | |
420 "-netbeans_intg", | |
421 #endif | |
422 #ifdef FEAT_GUI_W32 | |
423 # ifdef FEAT_OLE | |
424 "+ole", | |
425 # else | |
426 "-ole", | |
427 # endif | |
428 #endif | |
429 #ifdef FEAT_PATH_EXTRA | |
430 "+path_extra", | |
431 #else | |
432 "-path_extra", | |
433 #endif | |
434 #ifdef FEAT_PERL | |
435 # ifdef DYNAMIC_PERL | |
436 "+perl/dyn", | |
437 # else | |
438 "+perl", | |
439 # endif | |
440 #else | |
441 "-perl", | |
442 #endif | |
2214
f8222d1f9a73
Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
443 #ifdef FEAT_PERSISTENT_UNDO |
f8222d1f9a73
Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
444 "+persistent_undo", |
f8222d1f9a73
Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
445 #else |
f8222d1f9a73
Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
446 "-persistent_undo", |
f8222d1f9a73
Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
447 #endif |
7 | 448 #ifdef FEAT_PRINTER |
449 # ifdef FEAT_POSTSCRIPT | |
450 "+postscript", | |
451 # else | |
452 "-postscript", | |
453 # endif | |
454 "+printer", | |
455 #else | |
456 "-printer", | |
457 #endif | |
170 | 458 #ifdef FEAT_PROFILE |
459 "+profile", | |
460 #else | |
461 "-profile", | |
462 #endif | |
7 | 463 #ifdef FEAT_PYTHON |
464 # ifdef DYNAMIC_PYTHON | |
465 "+python/dyn", | |
466 # else | |
467 "+python", | |
468 # endif | |
469 #else | |
470 "-python", | |
471 #endif | |
2329
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
472 #ifdef FEAT_PYTHON3 |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
473 # ifdef DYNAMIC_PYTHON3 |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
474 "+python3/dyn", |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
475 # else |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
476 "+python3", |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
477 # endif |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
478 #else |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
479 "-python3", |
ad2889f48843
Added support for Python 3. (Roland Puntaier)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
480 #endif |
7 | 481 #ifdef FEAT_QUICKFIX |
482 "+quickfix", | |
483 #else | |
484 "-quickfix", | |
485 #endif | |
857 | 486 #ifdef FEAT_RELTIME |
487 "+reltime", | |
488 #else | |
489 "-reltime", | |
490 #endif | |
7 | 491 #ifdef FEAT_RIGHTLEFT |
492 "+rightleft", | |
493 #else | |
494 "-rightleft", | |
495 #endif | |
496 #ifdef FEAT_RUBY | |
497 # ifdef DYNAMIC_RUBY | |
498 "+ruby/dyn", | |
499 # else | |
500 "+ruby", | |
501 # endif | |
502 #else | |
503 "-ruby", | |
504 #endif | |
505 #ifdef FEAT_SCROLLBIND | |
506 "+scrollbind", | |
507 #else | |
508 "-scrollbind", | |
509 #endif | |
510 #ifdef FEAT_SIGNS | |
511 "+signs", | |
512 #else | |
513 "-signs", | |
514 #endif | |
515 #ifdef FEAT_SMARTINDENT | |
516 "+smartindent", | |
517 #else | |
518 "-smartindent", | |
519 #endif | |
520 #ifdef FEAT_SNIFF | |
521 "+sniff", | |
522 #else | |
523 "-sniff", | |
524 #endif | |
1989 | 525 #ifdef STARTUPTIME |
526 "+startuptime", | |
527 #else | |
528 "-startuptime", | |
529 #endif | |
7 | 530 #ifdef FEAT_STL_OPT |
531 "+statusline", | |
532 #else | |
533 "-statusline", | |
534 #endif | |
535 #ifdef FEAT_SUN_WORKSHOP | |
536 "+sun_workshop", | |
537 #else | |
538 "-sun_workshop", | |
539 #endif | |
540 #ifdef FEAT_SYN_HL | |
541 "+syntax", | |
542 #else | |
543 "-syntax", | |
544 #endif | |
545 /* only interesting on Unix systems */ | |
546 #if defined(USE_SYSTEM) && (defined(UNIX) || defined(__EMX__)) | |
547 "+system()", | |
548 #endif | |
549 #ifdef FEAT_TAG_BINS | |
550 "+tag_binary", | |
551 #else | |
552 "-tag_binary", | |
553 #endif | |
554 #ifdef FEAT_TAG_OLDSTATIC | |
555 "+tag_old_static", | |
556 #else | |
557 "-tag_old_static", | |
558 #endif | |
559 #ifdef FEAT_TAG_ANYWHITE | |
560 "+tag_any_white", | |
561 #else | |
562 "-tag_any_white", | |
563 #endif | |
564 #ifdef FEAT_TCL | |
565 # ifdef DYNAMIC_TCL | |
566 "+tcl/dyn", | |
567 # else | |
568 "+tcl", | |
569 # endif | |
570 #else | |
571 "-tcl", | |
572 #endif | |
573 #if defined(UNIX) || defined(__EMX__) | |
574 /* only Unix (or OS/2 with EMX!) can have terminfo instead of termcap */ | |
575 # ifdef TERMINFO | |
576 "+terminfo", | |
577 # else | |
578 "-terminfo", | |
579 # endif | |
580 #else /* unix always includes termcap support */ | |
581 # ifdef HAVE_TGETENT | |
582 "+tgetent", | |
583 # else | |
584 "-tgetent", | |
585 # endif | |
586 #endif | |
587 #ifdef FEAT_TERMRESPONSE | |
588 "+termresponse", | |
589 #else | |
590 "-termresponse", | |
591 #endif | |
592 #ifdef FEAT_TEXTOBJ | |
593 "+textobjects", | |
594 #else | |
595 "-textobjects", | |
596 #endif | |
597 #ifdef FEAT_TITLE | |
598 "+title", | |
599 #else | |
600 "-title", | |
601 #endif | |
602 #ifdef FEAT_TOOLBAR | |
603 "+toolbar", | |
604 #else | |
605 "-toolbar", | |
606 #endif | |
607 #ifdef FEAT_USR_CMDS | |
608 "+user_commands", | |
609 #else | |
610 "-user_commands", | |
611 #endif | |
612 #ifdef FEAT_VERTSPLIT | |
613 "+vertsplit", | |
614 #else | |
615 "-vertsplit", | |
616 #endif | |
617 #ifdef FEAT_VIRTUALEDIT | |
618 "+virtualedit", | |
619 #else | |
620 "-virtualedit", | |
621 #endif | |
622 #ifdef FEAT_VISUAL | |
623 "+visual", | |
624 # ifdef FEAT_VISUALEXTRA | |
625 "+visualextra", | |
626 # else | |
627 "-visualextra", | |
628 # endif | |
629 #else | |
630 "-visual", | |
631 #endif | |
632 #ifdef FEAT_VIMINFO | |
633 "+viminfo", | |
634 #else | |
635 "-viminfo", | |
636 #endif | |
637 #ifdef FEAT_VREPLACE | |
638 "+vreplace", | |
639 #else | |
640 "-vreplace", | |
641 #endif | |
642 #ifdef FEAT_WILDIGN | |
643 "+wildignore", | |
644 #else | |
645 "-wildignore", | |
646 #endif | |
647 #ifdef FEAT_WILDMENU | |
648 "+wildmenu", | |
649 #else | |
650 "-wildmenu", | |
651 #endif | |
652 #ifdef FEAT_WINDOWS | |
653 "+windows", | |
654 #else | |
655 "-windows", | |
656 #endif | |
657 #ifdef FEAT_WRITEBACKUP | |
658 "+writebackup", | |
659 #else | |
660 "-writebackup", | |
661 #endif | |
662 #if defined(UNIX) || defined(VMS) | |
663 # ifdef FEAT_X11 | |
664 "+X11", | |
665 # else | |
666 "-X11", | |
667 # endif | |
668 #endif | |
669 #ifdef FEAT_XFONTSET | |
670 "+xfontset", | |
671 #else | |
672 "-xfontset", | |
673 #endif | |
674 #ifdef FEAT_XIM | |
675 "+xim", | |
676 #else | |
677 "-xim", | |
678 #endif | |
679 #if defined(UNIX) || defined(VMS) | |
680 # ifdef USE_XSMP_INTERACT | |
681 "+xsmp_interact", | |
682 # else | |
683 # ifdef USE_XSMP | |
684 "+xsmp", | |
685 # else | |
686 "-xsmp", | |
687 # endif | |
688 # endif | |
689 # ifdef FEAT_XCLIPBOARD | |
690 "+xterm_clipboard", | |
691 # else | |
692 "-xterm_clipboard", | |
693 # endif | |
694 #endif | |
695 #ifdef FEAT_XTERM_SAVE | |
696 "+xterm_save", | |
697 #else | |
698 "-xterm_save", | |
699 #endif | |
700 #ifdef WIN3264 | |
701 # ifdef FEAT_XPM_W32 | |
702 "+xpm_w32", | |
703 # else | |
704 "-xpm_w32", | |
705 # endif | |
706 #endif | |
707 NULL | |
708 }; | |
709 | |
710 static int included_patches[] = | |
711 { /* Add new patch number below this line */ | |
712 /**/ | |
3087 | 713 315, |
714 /**/ | |
3085 | 715 314, |
716 /**/ | |
3083 | 717 313, |
718 /**/ | |
3080 | 719 312, |
720 /**/ | |
3078 | 721 311, |
722 /**/ | |
3076 | 723 310, |
724 /**/ | |
3074 | 725 309, |
726 /**/ | |
3072 | 727 308, |
728 /**/ | |
3070 | 729 307, |
730 /**/ | |
3068 | 731 306, |
732 /**/ | |
3066 | 733 305, |
734 /**/ | |
3064 | 735 304, |
736 /**/ | |
3062 | 737 303, |
738 /**/ | |
3060 | 739 302, |
740 /**/ | |
3058 | 741 301, |
742 /**/ | |
3056 | 743 300, |
744 /**/ | |
3054 | 745 299, |
746 /**/ | |
3052 | 747 298, |
748 /**/ | |
3050 | 749 297, |
750 /**/ | |
3048 | 751 296, |
752 /**/ | |
3046 | 753 295, |
754 /**/ | |
3044 | 755 294, |
756 /**/ | |
3042 | 757 293, |
758 /**/ | |
3040 | 759 292, |
760 /**/ | |
3038 | 761 291, |
762 /**/ | |
3036 | 763 290, |
764 /**/ | |
3034 | 765 289, |
766 /**/ | |
3032 | 767 288, |
768 /**/ | |
3030 | 769 287, |
770 /**/ | |
3028 | 771 286, |
772 /**/ | |
3026 | 773 285, |
774 /**/ | |
3024 | 775 284, |
776 /**/ | |
3022 | 777 283, |
778 /**/ | |
3020 | 779 282, |
780 /**/ | |
3018 | 781 281, |
782 /**/ | |
3016 | 783 280, |
784 /**/ | |
3014 | 785 279, |
786 /**/ | |
3012 | 787 278, |
788 /**/ | |
3010 | 789 277, |
790 /**/ | |
3008 | 791 276, |
792 /**/ | |
3006 | 793 275, |
794 /**/ | |
3004 | 795 274, |
796 /**/ | |
3002 | 797 273, |
798 /**/ | |
3000 | 799 272, |
800 /**/ | |
2998 | 801 271, |
802 /**/ | |
2996 | 803 270, |
804 /**/ | |
2994 | 805 269, |
806 /**/ | |
2992 | 807 268, |
808 /**/ | |
2990 | 809 267, |
810 /**/ | |
2988 | 811 266, |
812 /**/ | |
2986 | 813 265, |
814 /**/ | |
2984 | 815 264, |
816 /**/ | |
2982 | 817 263, |
818 /**/ | |
2980 | 819 262, |
820 /**/ | |
2978 | 821 261, |
822 /**/ | |
2976 | 823 260, |
824 /**/ | |
2974 | 825 259, |
826 /**/ | |
2972 | 827 258, |
828 /**/ | |
2970 | 829 257, |
830 /**/ | |
2968 | 831 256, |
832 /**/ | |
2966 | 833 255, |
834 /**/ | |
2963 | 835 254, |
836 /**/ | |
2961 | 837 253, |
838 /**/ | |
2959 | 839 252, |
840 /**/ | |
2957 | 841 251, |
842 /**/ | |
2955 | 843 250, |
844 /**/ | |
2953 | 845 249, |
846 /**/ | |
2951 | 847 248, |
848 /**/ | |
2949 | 849 247, |
850 /**/ | |
2947 | 851 246, |
852 /**/ | |
2945 | 853 245, |
854 /**/ | |
2943 | 855 244, |
856 /**/ | |
2941 | 857 243, |
858 /**/ | |
2939 | 859 242, |
860 /**/ | |
2937 | 861 241, |
862 /**/ | |
2935 | 863 240, |
864 /**/ | |
2933 | 865 239, |
866 /**/ | |
2931 | 867 238, |
868 /**/ | |
2929 | 869 237, |
870 /**/ | |
2927 | 871 236, |
872 /**/ | |
2925 | 873 235, |
874 /**/ | |
2923 | 875 234, |
876 /**/ | |
2921 | 877 233, |
878 /**/ | |
2919 | 879 232, |
880 /**/ | |
2917 | 881 231, |
882 /**/ | |
2915 | 883 230, |
884 /**/ | |
2913 | 885 229, |
886 /**/ | |
2911 | 887 228, |
888 /**/ | |
2909 | 889 227, |
890 /**/ | |
2906 | 891 226, |
892 /**/ | |
2904 | 893 225, |
894 /**/ | |
2902 | 895 224, |
896 /**/ | |
2900 | 897 223, |
898 /**/ | |
2898 | 899 222, |
900 /**/ | |
2896 | 901 221, |
902 /**/ | |
2894 | 903 220, |
904 /**/ | |
2891 | 905 219, |
906 /**/ | |
2889 | 907 218, |
908 /**/ | |
2887 | 909 217, |
910 /**/ | |
2885 | 911 216, |
912 /**/ | |
2883 | 913 215, |
914 /**/ | |
2881 | 915 214, |
916 /**/ | |
2879 | 917 213, |
918 /**/ | |
2877 | 919 212, |
920 /**/ | |
2875 | 921 211, |
922 /**/ | |
2873 | 923 210, |
924 /**/ | |
2871 | 925 209, |
926 /**/ | |
2869 | 927 208, |
928 /**/ | |
2867 | 929 207, |
930 /**/ | |
2865 | 931 206, |
932 /**/ | |
2863 | 933 205, |
934 /**/ | |
2861 | 935 204, |
936 /**/ | |
2859 | 937 203, |
938 /**/ | |
2857 | 939 202, |
940 /**/ | |
2855 | 941 201, |
942 /**/ | |
2853 | 943 200, |
944 /**/ | |
2851 | 945 199, |
946 /**/ | |
2849 | 947 198, |
948 /**/ | |
2847 | 949 197, |
950 /**/ | |
2845 | 951 196, |
952 /**/ | |
2843 | 953 195, |
954 /**/ | |
2841 | 955 194, |
956 /**/ | |
2839 | 957 193, |
958 /**/ | |
2837 | 959 192, |
960 /**/ | |
2834 | 961 191, |
962 /**/ | |
2831 | 963 190, |
964 /**/ | |
2829 | 965 189, |
966 /**/ | |
2827 | 967 188, |
968 /**/ | |
2823 | 969 187, |
970 /**/ | |
2821 | 971 186, |
972 /**/ | |
2819 | 973 185, |
974 /**/ | |
2817 | 975 184, |
976 /**/ | |
2815 | 977 183, |
978 /**/ | |
2813 | 979 182, |
980 /**/ | |
2811 | 981 181, |
982 /**/ | |
2809 | 983 180, |
984 /**/ | |
2807 | 985 179, |
986 /**/ | |
2805 | 987 178, |
988 /**/ | |
2803 | 989 177, |
990 /**/ | |
2801 | 991 176, |
992 /**/ | |
2799 | 993 175, |
994 /**/ | |
2797 | 995 174, |
996 /**/ | |
2795 | 997 173, |
998 /**/ | |
2793 | 999 172, |
1000 /**/ | |
2791 | 1001 171, |
1002 /**/ | |
2789 | 1003 170, |
1004 /**/ | |
2786 | 1005 169, |
1006 /**/ | |
2784 | 1007 168, |
1008 /**/ | |
2782 | 1009 167, |
1010 /**/ | |
2780 | 1011 166, |
1012 /**/ | |
2778 | 1013 165, |
1014 /**/ | |
2776 | 1015 164, |
1016 /**/ | |
2774 | 1017 163, |
1018 /**/ | |
2772 | 1019 162, |
1020 /**/ | |
2770 | 1021 161, |
1022 /**/ | |
2768 | 1023 160, |
1024 /**/ | |
2766 | 1025 159, |
1026 /**/ | |
2764 | 1027 158, |
1028 /**/ | |
2762 | 1029 157, |
1030 /**/ | |
2760 | 1031 156, |
1032 /**/ | |
2758 | 1033 155, |
1034 /**/ | |
2756 | 1035 154, |
1036 /**/ | |
2754 | 1037 153, |
1038 /**/ | |
2752 | 1039 152, |
1040 /**/ | |
2749 | 1041 151, |
1042 /**/ | |
2747 | 1043 150, |
1044 /**/ | |
2745 | 1045 149, |
1046 /**/ | |
2743 | 1047 148, |
1048 /**/ | |
2741 | 1049 147, |
1050 /**/ | |
2739 | 1051 146, |
1052 /**/ | |
2737 | 1053 145, |
1054 /**/ | |
2735 | 1055 144, |
1056 /**/ | |
2730 | 1057 143, |
1058 /**/ | |
2727 | 1059 142, |
1060 /**/ | |
2726 | 1061 141, |
1062 /**/ | |
2724 | 1063 140, |
1064 /**/ | |
2723 | 1065 139, |
1066 /**/ | |
2722 | 1067 138, |
1068 /**/ | |
2721 | 1069 137, |
1070 /**/ | |
2720 | 1071 136, |
1072 /**/ | |
2719 | 1073 135, |
1074 /**/ | |
2718 | 1075 134, |
1076 /**/ | |
2717 | 1077 133, |
1078 /**/ | |
2716 | 1079 132, |
1080 /**/ | |
2715 | 1081 131, |
1082 /**/ | |
2714 | 1083 130, |
1084 /**/ | |
2713 | 1085 129, |
1086 /**/ | |
2712 | 1087 128, |
1088 /**/ | |
2711 | 1089 127, |
1090 /**/ | |
2710 | 1091 126, |
1092 /**/ | |
2708 | 1093 125, |
1094 /**/ | |
2707 | 1095 124, |
1096 /**/ | |
2706 | 1097 123, |
1098 /**/ | |
2705 | 1099 122, |
1100 /**/ | |
2704 | 1101 121, |
1102 /**/ | |
2703 | 1103 120, |
1104 /**/ | |
2702 | 1105 119, |
1106 /**/ | |
2701 | 1107 118, |
1108 /**/ | |
2700 | 1109 117, |
1110 /**/ | |
2699 | 1111 116, |
1112 /**/ | |
2697 | 1113 115, |
1114 /**/ | |
2696 | 1115 114, |
1116 /**/ | |
2695 | 1117 113, |
1118 /**/ | |
2694 | 1119 112, |
1120 /**/ | |
2693 | 1121 111, |
1122 /**/ | |
2692 | 1123 110, |
1124 /**/ | |
2691 | 1125 109, |
1126 /**/ | |
2690 | 1127 108, |
1128 /**/ | |
2689 | 1129 107, |
1130 /**/ | |
2688 | 1131 106, |
1132 /**/ | |
2687 | 1133 105, |
1134 /**/ | |
2686 | 1135 104, |
1136 /**/ | |
2685 | 1137 103, |
1138 /**/ | |
2684 | 1139 102, |
1140 /**/ | |
2683 | 1141 101, |
1142 /**/ | |
2682 | 1143 100, |
1144 /**/ | |
2680 | 1145 99, |
1146 /**/ | |
2679 | 1147 98, |
1148 /**/ | |
2678 | 1149 97, |
1150 /**/ | |
2677 | 1151 96, |
1152 /**/ | |
2676 | 1153 95, |
1154 /**/ | |
2675 | 1155 94, |
1156 /**/ | |
2674 | 1157 93, |
1158 /**/ | |
2673 | 1159 92, |
1160 /**/ | |
2672 | 1161 91, |
1162 /**/ | |
2671 | 1163 90, |
1164 /**/ | |
2670 | 1165 89, |
1166 /**/ | |
2669 | 1167 88, |
1168 /**/ | |
2668 | 1169 87, |
1170 /**/ | |
2667 | 1171 86, |
1172 /**/ | |
2666 | 1173 85, |
1174 /**/ | |
2665 | 1175 84, |
1176 /**/ | |
2664 | 1177 83, |
1178 /**/ | |
2663 | 1179 82, |
1180 /**/ | |
2661 | 1181 81, |
1182 /**/ | |
2660 | 1183 80, |
1184 /**/ | |
2659 | 1185 79, |
1186 /**/ | |
2658 | 1187 78, |
1188 /**/ | |
2657 | 1189 77, |
1190 /**/ | |
2656 | 1191 76, |
1192 /**/ | |
2655 | 1193 75, |
1194 /**/ | |
2654 | 1195 74, |
1196 /**/ | |
2653 | 1197 73, |
1198 /**/ | |
2652 | 1199 72, |
1200 /**/ | |
2651 | 1201 71, |
1202 /**/ | |
2650 | 1203 70, |
1204 /**/ | |
2649 | 1205 69, |
1206 /**/ | |
2648 | 1207 68, |
1208 /**/ | |
2647 | 1209 67, |
1210 /**/ | |
2646 | 1211 66, |
1212 /**/ | |
2645 | 1213 65, |
1214 /**/ | |
2644 | 1215 64, |
1216 /**/ | |
2643 | 1217 63, |
1218 /**/ | |
2641 | 1219 62, |
1220 /**/ | |
2640 | 1221 61, |
1222 /**/ | |
2639 | 1223 60, |
1224 /**/ | |
2638 | 1225 59, |
1226 /**/ | |
2637 | 1227 58, |
1228 /**/ | |
2636 | 1229 57, |
1230 /**/ | |
2635 | 1231 56, |
1232 /**/ | |
2634 | 1233 55, |
1234 /**/ | |
2633 | 1235 54, |
1236 /**/ | |
2632 | 1237 53, |
1238 /**/ | |
2631 | 1239 52, |
1240 /**/ | |
2630 | 1241 51, |
1242 /**/ | |
2629 | 1243 50, |
1244 /**/ | |
2628 | 1245 49, |
1246 /**/ | |
2627 | 1247 48, |
1248 /**/ | |
2626 | 1249 47, |
1250 /**/ | |
2624 | 1251 46, |
1252 /**/ | |
2623 | 1253 45, |
1254 /**/ | |
2622 | 1255 44, |
1256 /**/ | |
2621 | 1257 43, |
1258 /**/ | |
2620 | 1259 42, |
1260 /**/ | |
2619 | 1261 41, |
1262 /**/ | |
2618 | 1263 40, |
1264 /**/ | |
2617 | 1265 39, |
1266 /**/ | |
2616 | 1267 38, |
1268 /**/ | |
2615 | 1269 37, |
1270 /**/ | |
2614 | 1271 36, |
1272 /**/ | |
2613 | 1273 35, |
1274 /**/ | |
2612 | 1275 34, |
1276 /**/ | |
2611 | 1277 33, |
1278 /**/ | |
2610 | 1279 32, |
1280 /**/ | |
2609 | 1281 31, |
1282 /**/ | |
2607 | 1283 30, |
1284 /**/ | |
2606 | 1285 29, |
1286 /**/ | |
2605 | 1287 28, |
1288 /**/ | |
2604 | 1289 27, |
1290 /**/ | |
2603 | 1291 26, |
1292 /**/ | |
2602 | 1293 25, |
1294 /**/ | |
2601 | 1295 24, |
1296 /**/ | |
2600 | 1297 23, |
1298 /**/ | |
2599 | 1299 22, |
1300 /**/ | |
2598 | 1301 21, |
1302 /**/ | |
2597 | 1303 20, |
1304 /**/ | |
2595 | 1305 19, |
1306 /**/ | |
2594 | 1307 18, |
1308 /**/ | |
2593 | 1309 17, |
1310 /**/ | |
2592 | 1311 16, |
1312 /**/ | |
2591 | 1313 15, |
1314 /**/ | |
2590 | 1315 14, |
1316 /**/ | |
2589 | 1317 13, |
1318 /**/ | |
2588 | 1319 12, |
1320 /**/ | |
2586 | 1321 11, |
1322 /**/ | |
2585 | 1323 10, |
1324 /**/ | |
2584 | 1325 9, |
1326 /**/ | |
2583 | 1327 8, |
1328 /**/ | |
2582 | 1329 7, |
1330 /**/ | |
2580 | 1331 6, |
1332 /**/ | |
2579 | 1333 5, |
1334 /**/ | |
2578 | 1335 4, |
1336 /**/ | |
2165
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1337 3, |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1338 /**/ |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1339 2, |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1340 /**/ |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1341 1, |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1342 /**/ |
7 | 1343 0 |
1344 }; | |
1345 | |
1760 | 1346 /* |
1347 * Place to put a short description when adding a feature with a patch. | |
1348 * Keep it short, e.g.,: "relative numbers", "persistent undo". | |
1349 * Also add a comment marker to separate the lines. | |
1350 * See the official Vim patches for the diff format: It must use a context of | |
1777 | 1351 * one line only. Create it by hand or use "diff -C2" and edit the patch. |
1760 | 1352 */ |
1353 static char *(extra_patches[]) = | |
1354 { /* Add your patch description below this line */ | |
1355 /**/ | |
1356 NULL | |
1357 }; | |
1358 | |
7 | 1359 int |
1360 highest_patch() | |
1361 { | |
1362 int i; | |
1363 int h = 0; | |
1364 | |
1365 for (i = 0; included_patches[i] != 0; ++i) | |
1366 if (included_patches[i] > h) | |
1367 h = included_patches[i]; | |
1368 return h; | |
1369 } | |
1370 | |
1371 #if defined(FEAT_EVAL) || defined(PROTO) | |
1372 /* | |
1373 * Return TRUE if patch "n" has been included. | |
1374 */ | |
1375 int | |
1376 has_patch(n) | |
1377 int n; | |
1378 { | |
1379 int i; | |
1380 | |
1381 for (i = 0; included_patches[i] != 0; ++i) | |
1382 if (included_patches[i] == n) | |
1383 return TRUE; | |
1384 return FALSE; | |
1385 } | |
1386 #endif | |
1387 | |
1388 void | |
1389 ex_version(eap) | |
1390 exarg_T *eap; | |
1391 { | |
1392 /* | |
1393 * Ignore a ":version 9.99" command. | |
1394 */ | |
1395 if (*eap->arg == NUL) | |
1396 { | |
1397 msg_putchar('\n'); | |
1398 list_version(); | |
1399 } | |
1400 } | |
1401 | |
1402 void | |
1403 list_version() | |
1404 { | |
1405 int i; | |
1406 int first; | |
1407 char *s = ""; | |
1408 | |
1409 /* | |
1410 * When adding features here, don't forget to update the list of | |
1411 * internal variables in eval.c! | |
1412 */ | |
1413 MSG(longVersion); | |
1414 #ifdef WIN3264 | |
1415 # ifdef FEAT_GUI_W32 | |
1416 # if defined(_MSC_VER) && (_MSC_VER <= 1010) | |
1417 /* Only MS VC 4.1 and earlier can do Win32s */ | |
1607 | 1418 MSG_PUTS(_("\nMS-Windows 16/32-bit GUI version")); |
7 | 1419 # else |
990 | 1420 # ifdef _WIN64 |
1607 | 1421 MSG_PUTS(_("\nMS-Windows 64-bit GUI version")); |
990 | 1422 # else |
1607 | 1423 MSG_PUTS(_("\nMS-Windows 32-bit GUI version")); |
990 | 1424 # endif |
7 | 1425 # endif |
1426 if (gui_is_win32s()) | |
1427 MSG_PUTS(_(" in Win32s mode")); | |
1428 # ifdef FEAT_OLE | |
1429 MSG_PUTS(_(" with OLE support")); | |
1430 # endif | |
1431 # else | |
1607 | 1432 # ifdef _WIN64 |
1433 MSG_PUTS(_("\nMS-Windows 64-bit console version")); | |
1434 # else | |
1435 MSG_PUTS(_("\nMS-Windows 32-bit console version")); | |
1436 # endif | |
7 | 1437 # endif |
1438 #endif | |
1439 #ifdef WIN16 | |
1607 | 1440 MSG_PUTS(_("\nMS-Windows 16-bit version")); |
7 | 1441 #endif |
1442 #ifdef MSDOS | |
1443 # ifdef DJGPP | |
1607 | 1444 MSG_PUTS(_("\n32-bit MS-DOS version")); |
7 | 1445 # else |
1607 | 1446 MSG_PUTS(_("\n16-bit MS-DOS version")); |
7 | 1447 # endif |
1448 #endif | |
1449 #ifdef MACOS | |
1450 # ifdef MACOS_X | |
1451 # ifdef MACOS_X_UNIX | |
1452 MSG_PUTS(_("\nMacOS X (unix) version")); | |
1453 # else | |
1454 MSG_PUTS(_("\nMacOS X version")); | |
1455 # endif | |
1456 #else | |
1457 MSG_PUTS(_("\nMacOS version")); | |
1458 # endif | |
1459 #endif | |
1460 | |
1461 #ifdef VMS | |
1705 | 1462 MSG_PUTS(_("\nOpenVMS version")); |
1045 | 1463 # ifdef HAVE_PATHDEF |
1464 if (*compiled_arch != NUL) | |
1465 { | |
1466 MSG_PUTS(" - "); | |
1467 MSG_PUTS(compiled_arch); | |
1468 } | |
1469 # endif | |
1470 | |
7 | 1471 #endif |
1472 | |
1473 /* Print the list of patch numbers if there is at least one. */ | |
1474 /* Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" */ | |
1475 if (included_patches[0] != 0) | |
1476 { | |
1477 MSG_PUTS(_("\nIncluded patches: ")); | |
1478 first = -1; | |
1479 /* find last one */ | |
1480 for (i = 0; included_patches[i] != 0; ++i) | |
1481 ; | |
1482 while (--i >= 0) | |
1483 { | |
1484 if (first < 0) | |
1485 first = included_patches[i]; | |
1486 if (i == 0 || included_patches[i - 1] != included_patches[i] + 1) | |
1487 { | |
1488 MSG_PUTS(s); | |
1489 s = ", "; | |
1490 msg_outnum((long)first); | |
1491 if (first != included_patches[i]) | |
1492 { | |
1493 MSG_PUTS("-"); | |
1494 msg_outnum((long)included_patches[i]); | |
1495 } | |
1496 first = -1; | |
1497 } | |
1498 } | |
1499 } | |
1500 | |
1760 | 1501 /* Print the list of extra patch descriptions if there is at least one. */ |
1502 if (extra_patches[0] != NULL) | |
1503 { | |
1504 MSG_PUTS(_("\nExtra patches: ")); | |
1505 s = ""; | |
1506 for (i = 0; extra_patches[i] != NULL; ++i) | |
1507 { | |
1508 MSG_PUTS(s); | |
1509 s = ", "; | |
1510 MSG_PUTS(extra_patches[i]); | |
1511 } | |
1512 } | |
1513 | |
7 | 1514 #ifdef MODIFIED_BY |
1515 MSG_PUTS("\n"); | |
1516 MSG_PUTS(_("Modified by ")); | |
1517 MSG_PUTS(MODIFIED_BY); | |
1518 #endif | |
1519 | |
1520 #ifdef HAVE_PATHDEF | |
1521 if (*compiled_user != NUL || *compiled_sys != NUL) | |
1522 { | |
1523 MSG_PUTS(_("\nCompiled ")); | |
1524 if (*compiled_user != NUL) | |
1525 { | |
1526 MSG_PUTS(_("by ")); | |
1527 MSG_PUTS(compiled_user); | |
1528 } | |
1529 if (*compiled_sys != NUL) | |
1530 { | |
1531 MSG_PUTS("@"); | |
1532 MSG_PUTS(compiled_sys); | |
1533 } | |
1534 } | |
1535 #endif | |
1536 | |
1537 #ifdef FEAT_HUGE | |
1538 MSG_PUTS(_("\nHuge version ")); | |
1539 #else | |
1540 # ifdef FEAT_BIG | |
1541 MSG_PUTS(_("\nBig version ")); | |
1542 # else | |
1543 # ifdef FEAT_NORMAL | |
1544 MSG_PUTS(_("\nNormal version ")); | |
1545 # else | |
1546 # ifdef FEAT_SMALL | |
1547 MSG_PUTS(_("\nSmall version ")); | |
1548 # else | |
1549 MSG_PUTS(_("\nTiny version ")); | |
1550 # endif | |
1551 # endif | |
1552 # endif | |
1553 #endif | |
1554 #ifndef FEAT_GUI | |
1555 MSG_PUTS(_("without GUI.")); | |
1556 #else | |
1557 # ifdef FEAT_GUI_GTK | |
1558 # ifdef FEAT_GUI_GNOME | |
1559 MSG_PUTS(_("with GTK2-GNOME GUI.")); | |
1560 # else | |
1561 MSG_PUTS(_("with GTK2 GUI.")); | |
1562 # endif | |
1563 # else | |
1564 # ifdef FEAT_GUI_MOTIF | |
1565 MSG_PUTS(_("with X11-Motif GUI.")); | |
1566 # else | |
1567 # ifdef FEAT_GUI_ATHENA | |
1568 # ifdef FEAT_GUI_NEXTAW | |
1569 MSG_PUTS(_("with X11-neXtaw GUI.")); | |
1570 # else | |
1571 MSG_PUTS(_("with X11-Athena GUI.")); | |
1572 # endif | |
1573 # else | |
1574 # ifdef FEAT_GUI_PHOTON | |
1575 MSG_PUTS(_("with Photon GUI.")); | |
1576 # else | |
1577 # if defined(MSWIN) | |
1578 MSG_PUTS(_("with GUI.")); | |
1579 # else | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
1580 # if defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON |
7 | 1581 MSG_PUTS(_("with Carbon GUI.")); |
1582 # else | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
1583 # if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX |
7 | 1584 MSG_PUTS(_("with Cocoa GUI.")); |
1585 # else | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
1586 # if defined(MACOS) |
7 | 1587 MSG_PUTS(_("with (classic) GUI.")); |
1588 # endif | |
1589 # endif | |
1590 # endif | |
1591 # endif | |
1592 # endif | |
1593 # endif | |
1594 # endif | |
1595 # endif | |
1596 #endif | |
1597 version_msg(_(" Features included (+) or not (-):\n")); | |
1598 | |
1599 /* print all the features */ | |
1600 for (i = 0; features[i] != NULL; ++i) | |
1601 { | |
1602 version_msg(features[i]); | |
1603 if (msg_col > 0) | |
1604 version_msg(" "); | |
1605 } | |
1606 | |
1607 version_msg("\n"); | |
1608 #ifdef SYS_VIMRC_FILE | |
1609 version_msg(_(" system vimrc file: \"")); | |
1610 version_msg(SYS_VIMRC_FILE); | |
1611 version_msg("\"\n"); | |
1612 #endif | |
1613 #ifdef USR_VIMRC_FILE | |
1614 version_msg(_(" user vimrc file: \"")); | |
1615 version_msg(USR_VIMRC_FILE); | |
1616 version_msg("\"\n"); | |
1617 #endif | |
1618 #ifdef USR_VIMRC_FILE2 | |
1619 version_msg(_(" 2nd user vimrc file: \"")); | |
1620 version_msg(USR_VIMRC_FILE2); | |
1621 version_msg("\"\n"); | |
1622 #endif | |
1623 #ifdef USR_VIMRC_FILE3 | |
1624 version_msg(_(" 3rd user vimrc file: \"")); | |
1625 version_msg(USR_VIMRC_FILE3); | |
1626 version_msg("\"\n"); | |
1627 #endif | |
1628 #ifdef USR_EXRC_FILE | |
1629 version_msg(_(" user exrc file: \"")); | |
1630 version_msg(USR_EXRC_FILE); | |
1631 version_msg("\"\n"); | |
1632 #endif | |
1633 #ifdef USR_EXRC_FILE2 | |
1634 version_msg(_(" 2nd user exrc file: \"")); | |
1635 version_msg(USR_EXRC_FILE2); | |
1636 version_msg("\"\n"); | |
1637 #endif | |
1638 #ifdef FEAT_GUI | |
1639 # ifdef SYS_GVIMRC_FILE | |
1640 version_msg(_(" system gvimrc file: \"")); | |
1641 version_msg(SYS_GVIMRC_FILE); | |
1642 version_msg("\"\n"); | |
1643 # endif | |
1644 version_msg(_(" user gvimrc file: \"")); | |
1645 version_msg(USR_GVIMRC_FILE); | |
1646 version_msg("\"\n"); | |
1647 # ifdef USR_GVIMRC_FILE2 | |
1648 version_msg(_("2nd user gvimrc file: \"")); | |
1649 version_msg(USR_GVIMRC_FILE2); | |
1650 version_msg("\"\n"); | |
1651 # endif | |
1652 # ifdef USR_GVIMRC_FILE3 | |
1653 version_msg(_("3rd user gvimrc file: \"")); | |
1654 version_msg(USR_GVIMRC_FILE3); | |
1655 version_msg("\"\n"); | |
1656 # endif | |
1657 #endif | |
1658 #ifdef FEAT_GUI | |
1659 # ifdef SYS_MENU_FILE | |
1660 version_msg(_(" system menu file: \"")); | |
1661 version_msg(SYS_MENU_FILE); | |
1662 version_msg("\"\n"); | |
1663 # endif | |
1664 #endif | |
1665 #ifdef HAVE_PATHDEF | |
1666 if (*default_vim_dir != NUL) | |
1667 { | |
1668 version_msg(_(" fall-back for $VIM: \"")); | |
1669 version_msg((char *)default_vim_dir); | |
1670 version_msg("\"\n"); | |
1671 } | |
1672 if (*default_vimruntime_dir != NUL) | |
1673 { | |
1674 version_msg(_(" f-b for $VIMRUNTIME: \"")); | |
1675 version_msg((char *)default_vimruntime_dir); | |
1676 version_msg("\"\n"); | |
1677 } | |
1678 version_msg(_("Compilation: ")); | |
1679 version_msg((char *)all_cflags); | |
1680 version_msg("\n"); | |
1681 #ifdef VMS | |
1682 if (*compiler_version != NUL) | |
1683 { | |
1684 version_msg(_("Compiler: ")); | |
1685 version_msg((char *)compiler_version); | |
1686 version_msg("\n"); | |
1687 } | |
1688 #endif | |
1689 version_msg(_("Linking: ")); | |
1690 version_msg((char *)all_lflags); | |
1691 #endif | |
1692 #ifdef DEBUG | |
1693 version_msg("\n"); | |
1694 version_msg(_(" DEBUG BUILD")); | |
1695 #endif | |
1696 } | |
1697 | |
1698 /* | |
1699 * Output a string for the version message. If it's going to wrap, output a | |
1700 * newline, unless the message is too long to fit on the screen anyway. | |
1701 */ | |
1702 static void | |
1703 version_msg(s) | |
1704 char *s; | |
1705 { | |
1706 int len = (int)STRLEN(s); | |
1707 | |
1708 if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns | |
1709 && *s != '\n') | |
1710 msg_putchar('\n'); | |
1711 if (!got_int) | |
1712 MSG_PUTS(s); | |
1713 } | |
1714 | |
1715 static void do_intro_line __ARGS((int row, char_u *mesg, int add_version, int attr)); | |
1716 | |
1717 /* | |
1718 * Give an introductory message about Vim. | |
1719 * Only used when starting Vim on an empty file, without a file name. | |
1720 * Or with the ":intro" command (for Sven :-). | |
1721 */ | |
1722 void | |
1723 intro_message(colon) | |
1724 int colon; /* TRUE for ":intro" */ | |
1725 { | |
1726 int i; | |
1727 int row; | |
1728 int blanklines; | |
1729 int sponsor; | |
1730 char *p; | |
1731 static char *(lines[]) = | |
1732 { | |
1733 N_("VIM - Vi IMproved"), | |
1734 "", | |
1735 N_("version "), | |
1736 N_("by Bram Moolenaar et al."), | |
1737 #ifdef MODIFIED_BY | |
1738 " ", | |
1739 #endif | |
1740 N_("Vim is open source and freely distributable"), | |
1741 "", | |
1742 N_("Help poor children in Uganda!"), | |
1743 N_("type :help iccf<Enter> for information "), | |
1744 "", | |
1745 N_("type :q<Enter> to exit "), | |
1746 N_("type :help<Enter> or <F1> for on-line help"), | |
26 | 1747 N_("type :help version7<Enter> for version info"), |
7 | 1748 NULL, |
1749 "", | |
1750 N_("Running in Vi compatible mode"), | |
1751 N_("type :set nocp<Enter> for Vim defaults"), | |
1752 N_("type :help cp-default<Enter> for info on this"), | |
1753 }; | |
1754 #ifdef FEAT_GUI | |
1755 static char *(gui_lines[]) = | |
1756 { | |
1757 NULL, | |
1758 NULL, | |
1759 NULL, | |
1760 NULL, | |
1761 #ifdef MODIFIED_BY | |
1762 NULL, | |
1763 #endif | |
1764 NULL, | |
1765 NULL, | |
1766 NULL, | |
1767 N_("menu Help->Orphans for information "), | |
1768 NULL, | |
1769 N_("Running modeless, typed text is inserted"), | |
1770 N_("menu Edit->Global Settings->Toggle Insert Mode "), | |
1771 N_(" for two modes "), | |
1772 NULL, | |
1773 NULL, | |
1774 NULL, | |
1775 N_("menu Edit->Global Settings->Toggle Vi Compatible"), | |
1776 N_(" for Vim defaults "), | |
1777 }; | |
1778 #endif | |
1779 | |
1780 /* blanklines = screen height - # message lines */ | |
1781 blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1); | |
1782 if (!p_cp) | |
1783 blanklines += 4; /* add 4 for not showing "Vi compatible" message */ | |
1784 #if defined(WIN3264) && !defined(FEAT_GUI_W32) | |
1785 if (mch_windows95()) | |
1786 blanklines -= 3; /* subtract 3 for showing "Windows 95" message */ | |
1787 #endif | |
1788 | |
1789 #ifdef FEAT_WINDOWS | |
1790 /* Don't overwrite a statusline. Depends on 'cmdheight'. */ | |
1791 if (p_ls > 1) | |
1792 blanklines -= Rows - topframe->fr_height; | |
1793 #endif | |
1794 if (blanklines < 0) | |
1795 blanklines = 0; | |
1796 | |
1797 /* Show the sponsor and register message one out of four times, the Uganda | |
1798 * message two out of four times. */ | |
615 | 1799 sponsor = (int)time(NULL); |
7 | 1800 sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0); |
1801 | |
1802 /* start displaying the message lines after half of the blank lines */ | |
1803 row = blanklines / 2; | |
1804 if ((row >= 2 && Columns >= 50) || colon) | |
1805 { | |
1806 for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) | |
1807 { | |
1808 p = lines[i]; | |
1809 #ifdef FEAT_GUI | |
1810 if (p_im && gui.in_use && gui_lines[i] != NULL) | |
1811 p = gui_lines[i]; | |
1812 #endif | |
1813 if (p == NULL) | |
1814 { | |
1815 if (!p_cp) | |
1816 break; | |
1817 continue; | |
1818 } | |
1819 if (sponsor != 0) | |
1820 { | |
1821 if (strstr(p, "children") != NULL) | |
1822 p = sponsor < 0 | |
1823 ? N_("Sponsor Vim development!") | |
1824 : N_("Become a registered Vim user!"); | |
1825 else if (strstr(p, "iccf") != NULL) | |
1826 p = sponsor < 0 | |
1827 ? N_("type :help sponsor<Enter> for information ") | |
1828 : N_("type :help register<Enter> for information "); | |
1829 else if (strstr(p, "Orphans") != NULL) | |
1830 p = N_("menu Help->Sponsor/Register for information "); | |
1831 } | |
1832 if (*p != NUL) | |
1833 do_intro_line(row, (char_u *)_(p), i == 2, 0); | |
1834 ++row; | |
1835 } | |
1836 #if defined(WIN3264) && !defined(FEAT_GUI_W32) | |
1837 if (mch_windows95()) | |
1838 { | |
1839 do_intro_line(++row, | |
1840 (char_u *)_("WARNING: Windows 95/98/ME detected"), | |
1841 FALSE, hl_attr(HLF_E)); | |
1842 do_intro_line(++row, | |
1843 (char_u *)_("type :help windows95<Enter> for info on this"), | |
1844 FALSE, 0); | |
1845 } | |
1846 #endif | |
1847 } | |
1848 | |
1849 /* Make the wait-return message appear just below the text. */ | |
1850 if (colon) | |
1851 msg_row = row; | |
1852 } | |
1853 | |
1854 static void | |
1855 do_intro_line(row, mesg, add_version, attr) | |
1856 int row; | |
1857 char_u *mesg; | |
1858 int add_version; | |
1859 int attr; | |
1860 { | |
1861 char_u vers[20]; | |
1862 int col; | |
1863 char_u *p; | |
1864 int l; | |
1865 int clen; | |
1866 #ifdef MODIFIED_BY | |
1867 # define MODBY_LEN 150 | |
1868 char_u modby[MODBY_LEN]; | |
1869 | |
1870 if (*mesg == ' ') | |
1871 { | |
1491 | 1872 vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); |
7 | 1873 l = STRLEN(modby); |
1491 | 1874 vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); |
7 | 1875 mesg = modby; |
1876 } | |
1877 #endif | |
1878 | |
1879 /* Center the message horizontally. */ | |
1880 col = vim_strsize(mesg); | |
1881 if (add_version) | |
1882 { | |
1883 STRCPY(vers, mediumVersion); | |
1884 if (highest_patch()) | |
1885 { | |
1886 /* Check for 9.9x or 9.9xx, alpha/beta version */ | |
2619 | 1887 if (isalpha((int)vers[3])) |
7 | 1888 { |
2619 | 1889 if (isalpha((int)vers[4])) |
7 | 1890 sprintf((char *)vers + 5, ".%d%s", highest_patch(), |
1891 mediumVersion + 5); | |
1892 else | |
1893 sprintf((char *)vers + 4, ".%d%s", highest_patch(), | |
1894 mediumVersion + 4); | |
1895 } | |
1896 else | |
1897 sprintf((char *)vers + 3, ".%d", highest_patch()); | |
1898 } | |
1899 col += (int)STRLEN(vers); | |
1900 } | |
1901 col = (Columns - col) / 2; | |
1902 if (col < 0) | |
1903 col = 0; | |
1904 | |
1905 /* Split up in parts to highlight <> items differently. */ | |
1906 for (p = mesg; *p != NUL; p += l) | |
1907 { | |
1908 clen = 0; | |
1909 for (l = 0; p[l] != NUL | |
1910 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) | |
1911 { | |
1912 #ifdef FEAT_MBYTE | |
1913 if (has_mbyte) | |
1914 { | |
1915 clen += ptr2cells(p + l); | |
474 | 1916 l += (*mb_ptr2len)(p + l) - 1; |
7 | 1917 } |
1918 else | |
1919 #endif | |
1920 clen += byte2cells(p[l]); | |
1921 } | |
1922 screen_puts_len(p, l, row, col, *p == '<' ? hl_attr(HLF_8) : attr); | |
1923 col += clen; | |
1924 } | |
1925 | |
1926 /* Add the version number to the version line. */ | |
1927 if (add_version) | |
1928 screen_puts(vers, row, col, 0); | |
1929 } | |
1930 | |
1931 /* | |
1932 * ":intro": clear screen, display intro screen and wait for return. | |
1933 */ | |
1934 void | |
1935 ex_intro(eap) | |
1876 | 1936 exarg_T *eap UNUSED; |
7 | 1937 { |
1938 screenclear(); | |
1939 intro_message(TRUE); | |
1940 wait_return(TRUE); | |
1941 } |