Mercurial > vim
annotate src/version.c @ 2894:fe9c7da98b5e v7.3.220
updated for version 7.3.220
Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object,
so 'except' or 'raise' it causes a 'SystemError' exception.
Buffer objects do not support slice assignment.
When exchanging text between Vim and Python, multibyte texts become
gabage or cause Unicode Expceptions, etc.
'py3file' tries to read in the file as Unicode, sometimes causes
UnicodeDecodeException
Solution: Fix the problems. (lilydjwg)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 19 Jun 2011 00:27:51 +0200 |
parents | acda456c788a |
children | fd4224d9ee09 |
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 /**/ | |
2894 | 713 220, |
714 /**/ | |
2891 | 715 219, |
716 /**/ | |
2889 | 717 218, |
718 /**/ | |
2887 | 719 217, |
720 /**/ | |
2885 | 721 216, |
722 /**/ | |
2883 | 723 215, |
724 /**/ | |
2881 | 725 214, |
726 /**/ | |
2879 | 727 213, |
728 /**/ | |
2877 | 729 212, |
730 /**/ | |
2875 | 731 211, |
732 /**/ | |
2873 | 733 210, |
734 /**/ | |
2871 | 735 209, |
736 /**/ | |
2869 | 737 208, |
738 /**/ | |
2867 | 739 207, |
740 /**/ | |
2865 | 741 206, |
742 /**/ | |
2863 | 743 205, |
744 /**/ | |
2861 | 745 204, |
746 /**/ | |
2859 | 747 203, |
748 /**/ | |
2857 | 749 202, |
750 /**/ | |
2855 | 751 201, |
752 /**/ | |
2853 | 753 200, |
754 /**/ | |
2851 | 755 199, |
756 /**/ | |
2849 | 757 198, |
758 /**/ | |
2847 | 759 197, |
760 /**/ | |
2845 | 761 196, |
762 /**/ | |
2843 | 763 195, |
764 /**/ | |
2841 | 765 194, |
766 /**/ | |
2839 | 767 193, |
768 /**/ | |
2837 | 769 192, |
770 /**/ | |
2834 | 771 191, |
772 /**/ | |
2831 | 773 190, |
774 /**/ | |
2829 | 775 189, |
776 /**/ | |
2827 | 777 188, |
778 /**/ | |
2823 | 779 187, |
780 /**/ | |
2821 | 781 186, |
782 /**/ | |
2819 | 783 185, |
784 /**/ | |
2817 | 785 184, |
786 /**/ | |
2815 | 787 183, |
788 /**/ | |
2813 | 789 182, |
790 /**/ | |
2811 | 791 181, |
792 /**/ | |
2809 | 793 180, |
794 /**/ | |
2807 | 795 179, |
796 /**/ | |
2805 | 797 178, |
798 /**/ | |
2803 | 799 177, |
800 /**/ | |
2801 | 801 176, |
802 /**/ | |
2799 | 803 175, |
804 /**/ | |
2797 | 805 174, |
806 /**/ | |
2795 | 807 173, |
808 /**/ | |
2793 | 809 172, |
810 /**/ | |
2791 | 811 171, |
812 /**/ | |
2789 | 813 170, |
814 /**/ | |
2786 | 815 169, |
816 /**/ | |
2784 | 817 168, |
818 /**/ | |
2782 | 819 167, |
820 /**/ | |
2780 | 821 166, |
822 /**/ | |
2778 | 823 165, |
824 /**/ | |
2776 | 825 164, |
826 /**/ | |
2774 | 827 163, |
828 /**/ | |
2772 | 829 162, |
830 /**/ | |
2770 | 831 161, |
832 /**/ | |
2768 | 833 160, |
834 /**/ | |
2766 | 835 159, |
836 /**/ | |
2764 | 837 158, |
838 /**/ | |
2762 | 839 157, |
840 /**/ | |
2760 | 841 156, |
842 /**/ | |
2758 | 843 155, |
844 /**/ | |
2756 | 845 154, |
846 /**/ | |
2754 | 847 153, |
848 /**/ | |
2752 | 849 152, |
850 /**/ | |
2749 | 851 151, |
852 /**/ | |
2747 | 853 150, |
854 /**/ | |
2745 | 855 149, |
856 /**/ | |
2743 | 857 148, |
858 /**/ | |
2741 | 859 147, |
860 /**/ | |
2739 | 861 146, |
862 /**/ | |
2737 | 863 145, |
864 /**/ | |
2735 | 865 144, |
866 /**/ | |
2730 | 867 143, |
868 /**/ | |
2727 | 869 142, |
870 /**/ | |
2726 | 871 141, |
872 /**/ | |
2724 | 873 140, |
874 /**/ | |
2723 | 875 139, |
876 /**/ | |
2722 | 877 138, |
878 /**/ | |
2721 | 879 137, |
880 /**/ | |
2720 | 881 136, |
882 /**/ | |
2719 | 883 135, |
884 /**/ | |
2718 | 885 134, |
886 /**/ | |
2717 | 887 133, |
888 /**/ | |
2716 | 889 132, |
890 /**/ | |
2715 | 891 131, |
892 /**/ | |
2714 | 893 130, |
894 /**/ | |
2713 | 895 129, |
896 /**/ | |
2712 | 897 128, |
898 /**/ | |
2711 | 899 127, |
900 /**/ | |
2710 | 901 126, |
902 /**/ | |
2708 | 903 125, |
904 /**/ | |
2707 | 905 124, |
906 /**/ | |
2706 | 907 123, |
908 /**/ | |
2705 | 909 122, |
910 /**/ | |
2704 | 911 121, |
912 /**/ | |
2703 | 913 120, |
914 /**/ | |
2702 | 915 119, |
916 /**/ | |
2701 | 917 118, |
918 /**/ | |
2700 | 919 117, |
920 /**/ | |
2699 | 921 116, |
922 /**/ | |
2697 | 923 115, |
924 /**/ | |
2696 | 925 114, |
926 /**/ | |
2695 | 927 113, |
928 /**/ | |
2694 | 929 112, |
930 /**/ | |
2693 | 931 111, |
932 /**/ | |
2692 | 933 110, |
934 /**/ | |
2691 | 935 109, |
936 /**/ | |
2690 | 937 108, |
938 /**/ | |
2689 | 939 107, |
940 /**/ | |
2688 | 941 106, |
942 /**/ | |
2687 | 943 105, |
944 /**/ | |
2686 | 945 104, |
946 /**/ | |
2685 | 947 103, |
948 /**/ | |
2684 | 949 102, |
950 /**/ | |
2683 | 951 101, |
952 /**/ | |
2682 | 953 100, |
954 /**/ | |
2680 | 955 99, |
956 /**/ | |
2679 | 957 98, |
958 /**/ | |
2678 | 959 97, |
960 /**/ | |
2677 | 961 96, |
962 /**/ | |
2676 | 963 95, |
964 /**/ | |
2675 | 965 94, |
966 /**/ | |
2674 | 967 93, |
968 /**/ | |
2673 | 969 92, |
970 /**/ | |
2672 | 971 91, |
972 /**/ | |
2671 | 973 90, |
974 /**/ | |
2670 | 975 89, |
976 /**/ | |
2669 | 977 88, |
978 /**/ | |
2668 | 979 87, |
980 /**/ | |
2667 | 981 86, |
982 /**/ | |
2666 | 983 85, |
984 /**/ | |
2665 | 985 84, |
986 /**/ | |
2664 | 987 83, |
988 /**/ | |
2663 | 989 82, |
990 /**/ | |
2661 | 991 81, |
992 /**/ | |
2660 | 993 80, |
994 /**/ | |
2659 | 995 79, |
996 /**/ | |
2658 | 997 78, |
998 /**/ | |
2657 | 999 77, |
1000 /**/ | |
2656 | 1001 76, |
1002 /**/ | |
2655 | 1003 75, |
1004 /**/ | |
2654 | 1005 74, |
1006 /**/ | |
2653 | 1007 73, |
1008 /**/ | |
2652 | 1009 72, |
1010 /**/ | |
2651 | 1011 71, |
1012 /**/ | |
2650 | 1013 70, |
1014 /**/ | |
2649 | 1015 69, |
1016 /**/ | |
2648 | 1017 68, |
1018 /**/ | |
2647 | 1019 67, |
1020 /**/ | |
2646 | 1021 66, |
1022 /**/ | |
2645 | 1023 65, |
1024 /**/ | |
2644 | 1025 64, |
1026 /**/ | |
2643 | 1027 63, |
1028 /**/ | |
2641 | 1029 62, |
1030 /**/ | |
2640 | 1031 61, |
1032 /**/ | |
2639 | 1033 60, |
1034 /**/ | |
2638 | 1035 59, |
1036 /**/ | |
2637 | 1037 58, |
1038 /**/ | |
2636 | 1039 57, |
1040 /**/ | |
2635 | 1041 56, |
1042 /**/ | |
2634 | 1043 55, |
1044 /**/ | |
2633 | 1045 54, |
1046 /**/ | |
2632 | 1047 53, |
1048 /**/ | |
2631 | 1049 52, |
1050 /**/ | |
2630 | 1051 51, |
1052 /**/ | |
2629 | 1053 50, |
1054 /**/ | |
2628 | 1055 49, |
1056 /**/ | |
2627 | 1057 48, |
1058 /**/ | |
2626 | 1059 47, |
1060 /**/ | |
2624 | 1061 46, |
1062 /**/ | |
2623 | 1063 45, |
1064 /**/ | |
2622 | 1065 44, |
1066 /**/ | |
2621 | 1067 43, |
1068 /**/ | |
2620 | 1069 42, |
1070 /**/ | |
2619 | 1071 41, |
1072 /**/ | |
2618 | 1073 40, |
1074 /**/ | |
2617 | 1075 39, |
1076 /**/ | |
2616 | 1077 38, |
1078 /**/ | |
2615 | 1079 37, |
1080 /**/ | |
2614 | 1081 36, |
1082 /**/ | |
2613 | 1083 35, |
1084 /**/ | |
2612 | 1085 34, |
1086 /**/ | |
2611 | 1087 33, |
1088 /**/ | |
2610 | 1089 32, |
1090 /**/ | |
2609 | 1091 31, |
1092 /**/ | |
2607 | 1093 30, |
1094 /**/ | |
2606 | 1095 29, |
1096 /**/ | |
2605 | 1097 28, |
1098 /**/ | |
2604 | 1099 27, |
1100 /**/ | |
2603 | 1101 26, |
1102 /**/ | |
2602 | 1103 25, |
1104 /**/ | |
2601 | 1105 24, |
1106 /**/ | |
2600 | 1107 23, |
1108 /**/ | |
2599 | 1109 22, |
1110 /**/ | |
2598 | 1111 21, |
1112 /**/ | |
2597 | 1113 20, |
1114 /**/ | |
2595 | 1115 19, |
1116 /**/ | |
2594 | 1117 18, |
1118 /**/ | |
2593 | 1119 17, |
1120 /**/ | |
2592 | 1121 16, |
1122 /**/ | |
2591 | 1123 15, |
1124 /**/ | |
2590 | 1125 14, |
1126 /**/ | |
2589 | 1127 13, |
1128 /**/ | |
2588 | 1129 12, |
1130 /**/ | |
2586 | 1131 11, |
1132 /**/ | |
2585 | 1133 10, |
1134 /**/ | |
2584 | 1135 9, |
1136 /**/ | |
2583 | 1137 8, |
1138 /**/ | |
2582 | 1139 7, |
1140 /**/ | |
2580 | 1141 6, |
1142 /**/ | |
2579 | 1143 5, |
1144 /**/ | |
2578 | 1145 4, |
1146 /**/ | |
2165
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1147 3, |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1148 /**/ |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1149 2, |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1150 /**/ |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1151 1, |
733f0dc510c3
Undo changes that are meant for the Vim 7.3 branch.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
1152 /**/ |
7 | 1153 0 |
1154 }; | |
1155 | |
1760 | 1156 /* |
1157 * Place to put a short description when adding a feature with a patch. | |
1158 * Keep it short, e.g.,: "relative numbers", "persistent undo". | |
1159 * Also add a comment marker to separate the lines. | |
1160 * See the official Vim patches for the diff format: It must use a context of | |
1777 | 1161 * one line only. Create it by hand or use "diff -C2" and edit the patch. |
1760 | 1162 */ |
1163 static char *(extra_patches[]) = | |
1164 { /* Add your patch description below this line */ | |
1165 /**/ | |
1166 NULL | |
1167 }; | |
1168 | |
7 | 1169 int |
1170 highest_patch() | |
1171 { | |
1172 int i; | |
1173 int h = 0; | |
1174 | |
1175 for (i = 0; included_patches[i] != 0; ++i) | |
1176 if (included_patches[i] > h) | |
1177 h = included_patches[i]; | |
1178 return h; | |
1179 } | |
1180 | |
1181 #if defined(FEAT_EVAL) || defined(PROTO) | |
1182 /* | |
1183 * Return TRUE if patch "n" has been included. | |
1184 */ | |
1185 int | |
1186 has_patch(n) | |
1187 int n; | |
1188 { | |
1189 int i; | |
1190 | |
1191 for (i = 0; included_patches[i] != 0; ++i) | |
1192 if (included_patches[i] == n) | |
1193 return TRUE; | |
1194 return FALSE; | |
1195 } | |
1196 #endif | |
1197 | |
1198 void | |
1199 ex_version(eap) | |
1200 exarg_T *eap; | |
1201 { | |
1202 /* | |
1203 * Ignore a ":version 9.99" command. | |
1204 */ | |
1205 if (*eap->arg == NUL) | |
1206 { | |
1207 msg_putchar('\n'); | |
1208 list_version(); | |
1209 } | |
1210 } | |
1211 | |
1212 void | |
1213 list_version() | |
1214 { | |
1215 int i; | |
1216 int first; | |
1217 char *s = ""; | |
1218 | |
1219 /* | |
1220 * When adding features here, don't forget to update the list of | |
1221 * internal variables in eval.c! | |
1222 */ | |
1223 MSG(longVersion); | |
1224 #ifdef WIN3264 | |
1225 # ifdef FEAT_GUI_W32 | |
1226 # if defined(_MSC_VER) && (_MSC_VER <= 1010) | |
1227 /* Only MS VC 4.1 and earlier can do Win32s */ | |
1607 | 1228 MSG_PUTS(_("\nMS-Windows 16/32-bit GUI version")); |
7 | 1229 # else |
990 | 1230 # ifdef _WIN64 |
1607 | 1231 MSG_PUTS(_("\nMS-Windows 64-bit GUI version")); |
990 | 1232 # else |
1607 | 1233 MSG_PUTS(_("\nMS-Windows 32-bit GUI version")); |
990 | 1234 # endif |
7 | 1235 # endif |
1236 if (gui_is_win32s()) | |
1237 MSG_PUTS(_(" in Win32s mode")); | |
1238 # ifdef FEAT_OLE | |
1239 MSG_PUTS(_(" with OLE support")); | |
1240 # endif | |
1241 # else | |
1607 | 1242 # ifdef _WIN64 |
1243 MSG_PUTS(_("\nMS-Windows 64-bit console version")); | |
1244 # else | |
1245 MSG_PUTS(_("\nMS-Windows 32-bit console version")); | |
1246 # endif | |
7 | 1247 # endif |
1248 #endif | |
1249 #ifdef WIN16 | |
1607 | 1250 MSG_PUTS(_("\nMS-Windows 16-bit version")); |
7 | 1251 #endif |
1252 #ifdef MSDOS | |
1253 # ifdef DJGPP | |
1607 | 1254 MSG_PUTS(_("\n32-bit MS-DOS version")); |
7 | 1255 # else |
1607 | 1256 MSG_PUTS(_("\n16-bit MS-DOS version")); |
7 | 1257 # endif |
1258 #endif | |
1259 #ifdef MACOS | |
1260 # ifdef MACOS_X | |
1261 # ifdef MACOS_X_UNIX | |
1262 MSG_PUTS(_("\nMacOS X (unix) version")); | |
1263 # else | |
1264 MSG_PUTS(_("\nMacOS X version")); | |
1265 # endif | |
1266 #else | |
1267 MSG_PUTS(_("\nMacOS version")); | |
1268 # endif | |
1269 #endif | |
1270 | |
1271 #ifdef VMS | |
1705 | 1272 MSG_PUTS(_("\nOpenVMS version")); |
1045 | 1273 # ifdef HAVE_PATHDEF |
1274 if (*compiled_arch != NUL) | |
1275 { | |
1276 MSG_PUTS(" - "); | |
1277 MSG_PUTS(compiled_arch); | |
1278 } | |
1279 # endif | |
1280 | |
7 | 1281 #endif |
1282 | |
1283 /* Print the list of patch numbers if there is at least one. */ | |
1284 /* Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" */ | |
1285 if (included_patches[0] != 0) | |
1286 { | |
1287 MSG_PUTS(_("\nIncluded patches: ")); | |
1288 first = -1; | |
1289 /* find last one */ | |
1290 for (i = 0; included_patches[i] != 0; ++i) | |
1291 ; | |
1292 while (--i >= 0) | |
1293 { | |
1294 if (first < 0) | |
1295 first = included_patches[i]; | |
1296 if (i == 0 || included_patches[i - 1] != included_patches[i] + 1) | |
1297 { | |
1298 MSG_PUTS(s); | |
1299 s = ", "; | |
1300 msg_outnum((long)first); | |
1301 if (first != included_patches[i]) | |
1302 { | |
1303 MSG_PUTS("-"); | |
1304 msg_outnum((long)included_patches[i]); | |
1305 } | |
1306 first = -1; | |
1307 } | |
1308 } | |
1309 } | |
1310 | |
1760 | 1311 /* Print the list of extra patch descriptions if there is at least one. */ |
1312 if (extra_patches[0] != NULL) | |
1313 { | |
1314 MSG_PUTS(_("\nExtra patches: ")); | |
1315 s = ""; | |
1316 for (i = 0; extra_patches[i] != NULL; ++i) | |
1317 { | |
1318 MSG_PUTS(s); | |
1319 s = ", "; | |
1320 MSG_PUTS(extra_patches[i]); | |
1321 } | |
1322 } | |
1323 | |
7 | 1324 #ifdef MODIFIED_BY |
1325 MSG_PUTS("\n"); | |
1326 MSG_PUTS(_("Modified by ")); | |
1327 MSG_PUTS(MODIFIED_BY); | |
1328 #endif | |
1329 | |
1330 #ifdef HAVE_PATHDEF | |
1331 if (*compiled_user != NUL || *compiled_sys != NUL) | |
1332 { | |
1333 MSG_PUTS(_("\nCompiled ")); | |
1334 if (*compiled_user != NUL) | |
1335 { | |
1336 MSG_PUTS(_("by ")); | |
1337 MSG_PUTS(compiled_user); | |
1338 } | |
1339 if (*compiled_sys != NUL) | |
1340 { | |
1341 MSG_PUTS("@"); | |
1342 MSG_PUTS(compiled_sys); | |
1343 } | |
1344 } | |
1345 #endif | |
1346 | |
1347 #ifdef FEAT_HUGE | |
1348 MSG_PUTS(_("\nHuge version ")); | |
1349 #else | |
1350 # ifdef FEAT_BIG | |
1351 MSG_PUTS(_("\nBig version ")); | |
1352 # else | |
1353 # ifdef FEAT_NORMAL | |
1354 MSG_PUTS(_("\nNormal version ")); | |
1355 # else | |
1356 # ifdef FEAT_SMALL | |
1357 MSG_PUTS(_("\nSmall version ")); | |
1358 # else | |
1359 MSG_PUTS(_("\nTiny version ")); | |
1360 # endif | |
1361 # endif | |
1362 # endif | |
1363 #endif | |
1364 #ifndef FEAT_GUI | |
1365 MSG_PUTS(_("without GUI.")); | |
1366 #else | |
1367 # ifdef FEAT_GUI_GTK | |
1368 # ifdef FEAT_GUI_GNOME | |
1369 MSG_PUTS(_("with GTK2-GNOME GUI.")); | |
1370 # else | |
1371 MSG_PUTS(_("with GTK2 GUI.")); | |
1372 # endif | |
1373 # else | |
1374 # ifdef FEAT_GUI_MOTIF | |
1375 MSG_PUTS(_("with X11-Motif GUI.")); | |
1376 # else | |
1377 # ifdef FEAT_GUI_ATHENA | |
1378 # ifdef FEAT_GUI_NEXTAW | |
1379 MSG_PUTS(_("with X11-neXtaw GUI.")); | |
1380 # else | |
1381 MSG_PUTS(_("with X11-Athena GUI.")); | |
1382 # endif | |
1383 # else | |
1384 # ifdef FEAT_GUI_PHOTON | |
1385 MSG_PUTS(_("with Photon GUI.")); | |
1386 # else | |
1387 # if defined(MSWIN) | |
1388 MSG_PUTS(_("with GUI.")); | |
1389 # else | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
1390 # if defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON |
7 | 1391 MSG_PUTS(_("with Carbon GUI.")); |
1392 # else | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
1393 # if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX |
7 | 1394 MSG_PUTS(_("with Cocoa GUI.")); |
1395 # else | |
2250
1bac28a53fae
Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
1396 # if defined(MACOS) |
7 | 1397 MSG_PUTS(_("with (classic) GUI.")); |
1398 # endif | |
1399 # endif | |
1400 # endif | |
1401 # endif | |
1402 # endif | |
1403 # endif | |
1404 # endif | |
1405 # endif | |
1406 #endif | |
1407 version_msg(_(" Features included (+) or not (-):\n")); | |
1408 | |
1409 /* print all the features */ | |
1410 for (i = 0; features[i] != NULL; ++i) | |
1411 { | |
1412 version_msg(features[i]); | |
1413 if (msg_col > 0) | |
1414 version_msg(" "); | |
1415 } | |
1416 | |
1417 version_msg("\n"); | |
1418 #ifdef SYS_VIMRC_FILE | |
1419 version_msg(_(" system vimrc file: \"")); | |
1420 version_msg(SYS_VIMRC_FILE); | |
1421 version_msg("\"\n"); | |
1422 #endif | |
1423 #ifdef USR_VIMRC_FILE | |
1424 version_msg(_(" user vimrc file: \"")); | |
1425 version_msg(USR_VIMRC_FILE); | |
1426 version_msg("\"\n"); | |
1427 #endif | |
1428 #ifdef USR_VIMRC_FILE2 | |
1429 version_msg(_(" 2nd user vimrc file: \"")); | |
1430 version_msg(USR_VIMRC_FILE2); | |
1431 version_msg("\"\n"); | |
1432 #endif | |
1433 #ifdef USR_VIMRC_FILE3 | |
1434 version_msg(_(" 3rd user vimrc file: \"")); | |
1435 version_msg(USR_VIMRC_FILE3); | |
1436 version_msg("\"\n"); | |
1437 #endif | |
1438 #ifdef USR_EXRC_FILE | |
1439 version_msg(_(" user exrc file: \"")); | |
1440 version_msg(USR_EXRC_FILE); | |
1441 version_msg("\"\n"); | |
1442 #endif | |
1443 #ifdef USR_EXRC_FILE2 | |
1444 version_msg(_(" 2nd user exrc file: \"")); | |
1445 version_msg(USR_EXRC_FILE2); | |
1446 version_msg("\"\n"); | |
1447 #endif | |
1448 #ifdef FEAT_GUI | |
1449 # ifdef SYS_GVIMRC_FILE | |
1450 version_msg(_(" system gvimrc file: \"")); | |
1451 version_msg(SYS_GVIMRC_FILE); | |
1452 version_msg("\"\n"); | |
1453 # endif | |
1454 version_msg(_(" user gvimrc file: \"")); | |
1455 version_msg(USR_GVIMRC_FILE); | |
1456 version_msg("\"\n"); | |
1457 # ifdef USR_GVIMRC_FILE2 | |
1458 version_msg(_("2nd user gvimrc file: \"")); | |
1459 version_msg(USR_GVIMRC_FILE2); | |
1460 version_msg("\"\n"); | |
1461 # endif | |
1462 # ifdef USR_GVIMRC_FILE3 | |
1463 version_msg(_("3rd user gvimrc file: \"")); | |
1464 version_msg(USR_GVIMRC_FILE3); | |
1465 version_msg("\"\n"); | |
1466 # endif | |
1467 #endif | |
1468 #ifdef FEAT_GUI | |
1469 # ifdef SYS_MENU_FILE | |
1470 version_msg(_(" system menu file: \"")); | |
1471 version_msg(SYS_MENU_FILE); | |
1472 version_msg("\"\n"); | |
1473 # endif | |
1474 #endif | |
1475 #ifdef HAVE_PATHDEF | |
1476 if (*default_vim_dir != NUL) | |
1477 { | |
1478 version_msg(_(" fall-back for $VIM: \"")); | |
1479 version_msg((char *)default_vim_dir); | |
1480 version_msg("\"\n"); | |
1481 } | |
1482 if (*default_vimruntime_dir != NUL) | |
1483 { | |
1484 version_msg(_(" f-b for $VIMRUNTIME: \"")); | |
1485 version_msg((char *)default_vimruntime_dir); | |
1486 version_msg("\"\n"); | |
1487 } | |
1488 version_msg(_("Compilation: ")); | |
1489 version_msg((char *)all_cflags); | |
1490 version_msg("\n"); | |
1491 #ifdef VMS | |
1492 if (*compiler_version != NUL) | |
1493 { | |
1494 version_msg(_("Compiler: ")); | |
1495 version_msg((char *)compiler_version); | |
1496 version_msg("\n"); | |
1497 } | |
1498 #endif | |
1499 version_msg(_("Linking: ")); | |
1500 version_msg((char *)all_lflags); | |
1501 #endif | |
1502 #ifdef DEBUG | |
1503 version_msg("\n"); | |
1504 version_msg(_(" DEBUG BUILD")); | |
1505 #endif | |
1506 } | |
1507 | |
1508 /* | |
1509 * Output a string for the version message. If it's going to wrap, output a | |
1510 * newline, unless the message is too long to fit on the screen anyway. | |
1511 */ | |
1512 static void | |
1513 version_msg(s) | |
1514 char *s; | |
1515 { | |
1516 int len = (int)STRLEN(s); | |
1517 | |
1518 if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns | |
1519 && *s != '\n') | |
1520 msg_putchar('\n'); | |
1521 if (!got_int) | |
1522 MSG_PUTS(s); | |
1523 } | |
1524 | |
1525 static void do_intro_line __ARGS((int row, char_u *mesg, int add_version, int attr)); | |
1526 | |
1527 /* | |
1528 * Give an introductory message about Vim. | |
1529 * Only used when starting Vim on an empty file, without a file name. | |
1530 * Or with the ":intro" command (for Sven :-). | |
1531 */ | |
1532 void | |
1533 intro_message(colon) | |
1534 int colon; /* TRUE for ":intro" */ | |
1535 { | |
1536 int i; | |
1537 int row; | |
1538 int blanklines; | |
1539 int sponsor; | |
1540 char *p; | |
1541 static char *(lines[]) = | |
1542 { | |
1543 N_("VIM - Vi IMproved"), | |
1544 "", | |
1545 N_("version "), | |
1546 N_("by Bram Moolenaar et al."), | |
1547 #ifdef MODIFIED_BY | |
1548 " ", | |
1549 #endif | |
1550 N_("Vim is open source and freely distributable"), | |
1551 "", | |
1552 N_("Help poor children in Uganda!"), | |
1553 N_("type :help iccf<Enter> for information "), | |
1554 "", | |
1555 N_("type :q<Enter> to exit "), | |
1556 N_("type :help<Enter> or <F1> for on-line help"), | |
26 | 1557 N_("type :help version7<Enter> for version info"), |
7 | 1558 NULL, |
1559 "", | |
1560 N_("Running in Vi compatible mode"), | |
1561 N_("type :set nocp<Enter> for Vim defaults"), | |
1562 N_("type :help cp-default<Enter> for info on this"), | |
1563 }; | |
1564 #ifdef FEAT_GUI | |
1565 static char *(gui_lines[]) = | |
1566 { | |
1567 NULL, | |
1568 NULL, | |
1569 NULL, | |
1570 NULL, | |
1571 #ifdef MODIFIED_BY | |
1572 NULL, | |
1573 #endif | |
1574 NULL, | |
1575 NULL, | |
1576 NULL, | |
1577 N_("menu Help->Orphans for information "), | |
1578 NULL, | |
1579 N_("Running modeless, typed text is inserted"), | |
1580 N_("menu Edit->Global Settings->Toggle Insert Mode "), | |
1581 N_(" for two modes "), | |
1582 NULL, | |
1583 NULL, | |
1584 NULL, | |
1585 N_("menu Edit->Global Settings->Toggle Vi Compatible"), | |
1586 N_(" for Vim defaults "), | |
1587 }; | |
1588 #endif | |
1589 | |
1590 /* blanklines = screen height - # message lines */ | |
1591 blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1); | |
1592 if (!p_cp) | |
1593 blanklines += 4; /* add 4 for not showing "Vi compatible" message */ | |
1594 #if defined(WIN3264) && !defined(FEAT_GUI_W32) | |
1595 if (mch_windows95()) | |
1596 blanklines -= 3; /* subtract 3 for showing "Windows 95" message */ | |
1597 #endif | |
1598 | |
1599 #ifdef FEAT_WINDOWS | |
1600 /* Don't overwrite a statusline. Depends on 'cmdheight'. */ | |
1601 if (p_ls > 1) | |
1602 blanklines -= Rows - topframe->fr_height; | |
1603 #endif | |
1604 if (blanklines < 0) | |
1605 blanklines = 0; | |
1606 | |
1607 /* Show the sponsor and register message one out of four times, the Uganda | |
1608 * message two out of four times. */ | |
615 | 1609 sponsor = (int)time(NULL); |
7 | 1610 sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0); |
1611 | |
1612 /* start displaying the message lines after half of the blank lines */ | |
1613 row = blanklines / 2; | |
1614 if ((row >= 2 && Columns >= 50) || colon) | |
1615 { | |
1616 for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) | |
1617 { | |
1618 p = lines[i]; | |
1619 #ifdef FEAT_GUI | |
1620 if (p_im && gui.in_use && gui_lines[i] != NULL) | |
1621 p = gui_lines[i]; | |
1622 #endif | |
1623 if (p == NULL) | |
1624 { | |
1625 if (!p_cp) | |
1626 break; | |
1627 continue; | |
1628 } | |
1629 if (sponsor != 0) | |
1630 { | |
1631 if (strstr(p, "children") != NULL) | |
1632 p = sponsor < 0 | |
1633 ? N_("Sponsor Vim development!") | |
1634 : N_("Become a registered Vim user!"); | |
1635 else if (strstr(p, "iccf") != NULL) | |
1636 p = sponsor < 0 | |
1637 ? N_("type :help sponsor<Enter> for information ") | |
1638 : N_("type :help register<Enter> for information "); | |
1639 else if (strstr(p, "Orphans") != NULL) | |
1640 p = N_("menu Help->Sponsor/Register for information "); | |
1641 } | |
1642 if (*p != NUL) | |
1643 do_intro_line(row, (char_u *)_(p), i == 2, 0); | |
1644 ++row; | |
1645 } | |
1646 #if defined(WIN3264) && !defined(FEAT_GUI_W32) | |
1647 if (mch_windows95()) | |
1648 { | |
1649 do_intro_line(++row, | |
1650 (char_u *)_("WARNING: Windows 95/98/ME detected"), | |
1651 FALSE, hl_attr(HLF_E)); | |
1652 do_intro_line(++row, | |
1653 (char_u *)_("type :help windows95<Enter> for info on this"), | |
1654 FALSE, 0); | |
1655 } | |
1656 #endif | |
1657 } | |
1658 | |
1659 /* Make the wait-return message appear just below the text. */ | |
1660 if (colon) | |
1661 msg_row = row; | |
1662 } | |
1663 | |
1664 static void | |
1665 do_intro_line(row, mesg, add_version, attr) | |
1666 int row; | |
1667 char_u *mesg; | |
1668 int add_version; | |
1669 int attr; | |
1670 { | |
1671 char_u vers[20]; | |
1672 int col; | |
1673 char_u *p; | |
1674 int l; | |
1675 int clen; | |
1676 #ifdef MODIFIED_BY | |
1677 # define MODBY_LEN 150 | |
1678 char_u modby[MODBY_LEN]; | |
1679 | |
1680 if (*mesg == ' ') | |
1681 { | |
1491 | 1682 vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); |
7 | 1683 l = STRLEN(modby); |
1491 | 1684 vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); |
7 | 1685 mesg = modby; |
1686 } | |
1687 #endif | |
1688 | |
1689 /* Center the message horizontally. */ | |
1690 col = vim_strsize(mesg); | |
1691 if (add_version) | |
1692 { | |
1693 STRCPY(vers, mediumVersion); | |
1694 if (highest_patch()) | |
1695 { | |
1696 /* Check for 9.9x or 9.9xx, alpha/beta version */ | |
2619 | 1697 if (isalpha((int)vers[3])) |
7 | 1698 { |
2619 | 1699 if (isalpha((int)vers[4])) |
7 | 1700 sprintf((char *)vers + 5, ".%d%s", highest_patch(), |
1701 mediumVersion + 5); | |
1702 else | |
1703 sprintf((char *)vers + 4, ".%d%s", highest_patch(), | |
1704 mediumVersion + 4); | |
1705 } | |
1706 else | |
1707 sprintf((char *)vers + 3, ".%d", highest_patch()); | |
1708 } | |
1709 col += (int)STRLEN(vers); | |
1710 } | |
1711 col = (Columns - col) / 2; | |
1712 if (col < 0) | |
1713 col = 0; | |
1714 | |
1715 /* Split up in parts to highlight <> items differently. */ | |
1716 for (p = mesg; *p != NUL; p += l) | |
1717 { | |
1718 clen = 0; | |
1719 for (l = 0; p[l] != NUL | |
1720 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) | |
1721 { | |
1722 #ifdef FEAT_MBYTE | |
1723 if (has_mbyte) | |
1724 { | |
1725 clen += ptr2cells(p + l); | |
474 | 1726 l += (*mb_ptr2len)(p + l) - 1; |
7 | 1727 } |
1728 else | |
1729 #endif | |
1730 clen += byte2cells(p[l]); | |
1731 } | |
1732 screen_puts_len(p, l, row, col, *p == '<' ? hl_attr(HLF_8) : attr); | |
1733 col += clen; | |
1734 } | |
1735 | |
1736 /* Add the version number to the version line. */ | |
1737 if (add_version) | |
1738 screen_puts(vers, row, col, 0); | |
1739 } | |
1740 | |
1741 /* | |
1742 * ":intro": clear screen, display intro screen and wait for return. | |
1743 */ | |
1744 void | |
1745 ex_intro(eap) | |
1876 | 1746 exarg_T *eap UNUSED; |
7 | 1747 { |
1748 screenclear(); | |
1749 intro_message(TRUE); | |
1750 wait_return(TRUE); | |
1751 } |