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 */ 8 /* 9 * feature.h: Defines for optional code and preferences 10 * 11 * Edit this file to include/exclude parts of Vim, before compiling. 12 * The only other file that may be edited is Makefile, it contains machine 13 * specific options. 14 * 15 * To include specific options, change the "#if*" and "#endif" into comments, 16 * or uncomment the "#define". 17 * To exclude specific options, change the "#define" into a comment. 18 */ 19 20 /* 21 * When adding a new feature: 22 * - Add a #define below. 23 * - Add a message in the table above ex_version(). 24 * - Add a string to f_has(). 25 * - Add a feature to ":help feature-list" in doc/eval.txt. 26 * - Add feature to ":help +feature-list" in doc/various.txt. 27 * - Add comment for the documentation of commands that use the feature. 28 */ 29 30 /* 31 * Basic choices: 32 * ============== 33 * 34 * +tiny almost no features enabled, not even multiple windows 35 * +small few features enabled, as basic as possible 36 * +normal A default selection of features enabled 37 * +big many features enabled, as rich as possible. 38 * +huge all possible features enabled. 39 * 40 * When +small is used, +tiny is also included. +normal implies +small, etc. 41 */ 42 43 /* 44 * Uncomment one of these to override the default. For unix use a configure 45 * argument, see Makefile. 46 */ 47 #if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \ 48 && !defined(FEAT_BIG) && !defined(FEAT_HUGE) 49 /* #define FEAT_TINY */ 50 /* #define FEAT_SMALL */ 51 /* #define FEAT_NORMAL */ 52 /* #define FEAT_BIG */ 53 /* #define FEAT_HUGE */ 54 #endif 55 56 /* 57 * For Unix, Mac and Win32 use +huge by default. These days CPUs are fast and 58 * Memory is cheap. 59 * Use +big for older systems: Other MS-Windows, dos32, OS/2 and VMS. 60 * The dos16 version has very little RAM available, use +small. 61 * Otherwise use +normal 62 */ 63 #if !defined(FEAT_TINY) && !defined(FEAT_SMALL) && !defined(FEAT_NORMAL) \ 64 && !defined(FEAT_BIG) && !defined(FEAT_HUGE) 65 # if defined(UNIX) || defined(WIN3264) || defined(MACOS) 66 # define FEAT_HUGE 67 # else 68 # if defined(MSWIN) || defined(VMS) || defined(MACOS) || defined(AMIGA) 69 # define FEAT_BIG 70 # else 71 # define FEAT_NORMAL 72 # endif 73 # endif 74 #endif 75 76 /* 77 * Each feature implies including the "smaller" ones. 78 */ 79 #ifdef FEAT_HUGE 80 # define FEAT_BIG 81 #endif 82 #ifdef FEAT_BIG 83 # define FEAT_NORMAL 84 #endif 85 #ifdef FEAT_NORMAL 86 # define FEAT_SMALL 87 #endif 88 #ifdef FEAT_SMALL 89 # define FEAT_TINY 90 #endif 91 92 /* 93 * Optional code (see ":help +feature-list") 94 * ============= 95 */ 96 97 /* 98 * +windows Multiple windows. Without this there is no help 99 * window and no status lines. 100 * +vertsplit Vertically split windows. 101 */ 102 #ifdef FEAT_SMALL 103 # define FEAT_WINDOWS 104 #endif 105 106 /* 107 * +listcmds Vim commands for the buffer list and the argument 108 * list. Without this there is no ":buffer" ":bnext", 109 * ":bdel", ":argdelete", etc. 110 */ 111 #ifdef FEAT_NORMAL 112 # define FEAT_LISTCMDS 113 #endif 114 115 /* 116 * +cmdhist Command line history. 117 */ 118 #ifdef FEAT_SMALL 119 # define FEAT_CMDHIST 120 #endif 121 122 /* 123 * Message history is fixed at 200 message, 20 for the tiny version. 124 */ 125 #ifdef FEAT_SMALL 126 # define MAX_MSG_HIST_LEN 200 127 #else 128 # define MAX_MSG_HIST_LEN 20 129 #endif 130 131 /* 132 * +jumplist Jumplist, CTRL-O and CTRL-I commands. 133 */ 134 #ifdef FEAT_SMALL 135 # define FEAT_JUMPLIST 136 #endif 137 138 /* the cmdline-window requires FEAT_WINDOWS and FEAT_CMDHIST */ 139 #if defined(FEAT_WINDOWS) && defined(FEAT_CMDHIST) 140 # define FEAT_CMDWIN 141 #endif 142 143 /* 144 * +folding Fold lines. 145 */ 146 #ifdef FEAT_NORMAL 147 # define FEAT_FOLDING 148 #endif 149 150 /* 151 * +digraphs Digraphs. 152 * In insert mode and on the command line you will be 153 * able to use digraphs. The CTRL-K command will work. 154 * Define OLD_DIGRAPHS to get digraphs compatible with 155 * Vim 5.x. The new ones are from RFC 1345. 156 */ 157 #ifdef FEAT_NORMAL 158 # define FEAT_DIGRAPHS 159 /* #define OLD_DIGRAPHS */ 160 #endif 161 162 /* 163 * +langmap 'langmap' option. Only useful when you put your 164 * keyboard in a special language mode, e.g. for typing 165 * greek. 166 */ 167 #ifdef FEAT_BIG 168 # define FEAT_LANGMAP 169 #endif 170 171 /* 172 * +keymap 'keymap' option. Allows you to map typed keys in 173 * Insert mode for a special language. 174 */ 175 #ifdef FEAT_BIG 176 # define FEAT_KEYMAP 177 #endif 178 179 /* 180 * +localmap Mappings and abbreviations local to a buffer. 181 */ 182 #ifdef FEAT_NORMAL 183 # define FEAT_LOCALMAP 184 #endif 185 186 /* 187 * +insert_expand CTRL-N/CTRL-P/CTRL-X in insert mode. Takes about 188 * 4Kbyte of code. 189 */ 190 #ifdef FEAT_NORMAL 191 # define FEAT_INS_EXPAND 192 #endif 193 194 /* 195 * +cmdline_compl completion of mappings/abbreviations in cmdline mode. 196 * Takes a few Kbyte of code. 197 */ 198 #ifdef FEAT_NORMAL 199 # define FEAT_CMDL_COMPL 200 #endif 201 202 #ifdef FEAT_NORMAL 203 # define VIM_BACKTICK /* internal backtick expansion */ 204 #endif 205 206 /* 207 * +visual Visual mode - now always included. 208 * +visualextra Extra features for Visual mode (mostly block operators). 209 */ 210 #ifdef FEAT_NORMAL 211 # define FEAT_VISUALEXTRA 212 #endif 213 214 /* 215 * +virtualedit 'virtualedit' option and its implementation 216 */ 217 #ifdef FEAT_NORMAL 218 # define FEAT_VIRTUALEDIT 219 #endif 220 221 /* 222 * +vreplace "gR" and "gr" commands. 223 */ 224 #ifdef FEAT_NORMAL 225 # define FEAT_VREPLACE 226 #endif 227 228 /* 229 * +cmdline_info 'showcmd' and 'ruler' options. 230 */ 231 #ifdef FEAT_NORMAL 232 # define FEAT_CMDL_INFO 233 #endif 234 235 /* 236 * +linebreak 'showbreak', 'breakat' and 'linebreak' options. 237 * Also 'numberwidth'. 238 */ 239 #ifdef FEAT_NORMAL 240 # define FEAT_LINEBREAK 241 #endif 242 243 /* 244 * +extra_search 'hlsearch' and 'incsearch' options. 245 */ 246 #ifdef FEAT_NORMAL 247 # define FEAT_SEARCH_EXTRA 248 #endif 249 250 /* 251 * +quickfix Quickfix commands. 252 */ 253 #ifdef FEAT_NORMAL 254 # define FEAT_QUICKFIX 255 #endif 256 257 /* 258 * +file_in_path "gf" and "<cfile>" commands. 259 */ 260 #ifdef FEAT_NORMAL 261 # define FEAT_SEARCHPATH 262 #endif 263 264 /* 265 * +find_in_path "[I" ":isearch" "^W^I", ":checkpath", etc. 266 */ 267 #ifdef FEAT_NORMAL 268 # ifdef FEAT_SEARCHPATH /* FEAT_SEARCHPATH is required */ 269 # define FEAT_FIND_ID 270 # endif 271 #endif 272 273 /* 274 * +path_extra up/downwards searching in 'path' and 'tags'. 275 */ 276 #ifdef FEAT_NORMAL 277 # define FEAT_PATH_EXTRA 278 #endif 279 280 /* 281 * +rightleft Right-to-left editing/typing support. 282 * 283 * Disabled for EBCDIC as it requires multibyte. 284 */ 285 #if defined(FEAT_BIG) && !defined(EBCDIC) 286 # define FEAT_RIGHTLEFT 287 #endif 288 289 /* 290 * +farsi Farsi (Persian language) Keymap support. 291 * Requires FEAT_RIGHTLEFT. 292 * 293 * Disabled for EBCDIC as it requires multibyte. 294 */ 295 #if defined(FEAT_BIG) && !defined(EBCDIC) 296 # define FEAT_FKMAP 297 #endif 298 #ifdef FEAT_FKMAP 299 # ifndef FEAT_RIGHTLEFT 300 # define FEAT_RIGHTLEFT 301 # endif 302 #endif 303 304 /* 305 * +arabic Arabic keymap and shaping support. 306 * Requires FEAT_RIGHTLEFT and FEAT_MBYTE. 307 * 308 * Disabled for EBCDIC as it requires multibyte. 309 */ 310 #if defined(FEAT_BIG) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) 311 # define FEAT_ARABIC 312 #endif 313 #ifdef FEAT_ARABIC 314 # ifndef FEAT_RIGHTLEFT 315 # define FEAT_RIGHTLEFT 316 # endif 317 #endif 318 319 /* 320 * +emacs_tags When FEAT_EMACS_TAGS defined: Include support for 321 * emacs style TAGS file. 322 */ 323 #ifdef FEAT_BIG 324 # define FEAT_EMACS_TAGS 325 #endif 326 327 /* 328 * +tag_binary Can use a binary search for the tags file. 329 * 330 * Disabled for EBCDIC: 331 * On z/OS Unix we have the problem that /bin/sort sorts ASCII instead of 332 * EBCDIC. With this binary search doesn't work, as VIM expects a tag file 333 * sorted by character values. I'm not sure how to fix this. Should we really 334 * do a EBCDIC to ASCII conversion for this?? 335 */ 336 #if defined(FEAT_NORMAL) && !defined(EBCDIC) 337 # define FEAT_TAG_BINS 338 #endif 339 340 /* 341 * +tag_old_static Old style static tags: "file:tag file ..". Slows 342 * down tag searching a bit. 343 */ 344 #ifdef FEAT_NORMAL 345 # define FEAT_TAG_OLDSTATIC 346 #endif 347 348 /* 349 * +tag_any_white Allow any white space to separate the fields in a tags 350 * file. When not defined, only a TAB is allowed. 351 */ 352 /* #define FEAT_TAG_ANYWHITE */ 353 354 /* 355 * +cscope Unix only: Cscope support. 356 */ 357 #if defined(UNIX) && defined(FEAT_BIG) && !defined(FEAT_CSCOPE) && !defined(MACOS_X) 358 # define FEAT_CSCOPE 359 #endif 360 361 /* 362 * +eval Built-in script language and expression evaluation, 363 * ":let", ":if", etc. 364 * +float Floating point variables. 365 */ 366 #ifdef FEAT_NORMAL 367 # define FEAT_EVAL 368 # if defined(HAVE_FLOAT_FUNCS) || defined(WIN3264) || defined(MACOS) 369 # define FEAT_FLOAT 370 # endif 371 #endif 372 373 /* 374 * +profile Profiling for functions and scripts. 375 */ 376 #if defined(FEAT_HUGE) \ 377 && defined(FEAT_EVAL) \ 378 && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \ 379 || defined(WIN3264)) 380 # define FEAT_PROFILE 381 #endif 382 383 /* 384 * +reltime reltime() function 385 */ 386 #if defined(FEAT_NORMAL) \ 387 && defined(FEAT_EVAL) \ 388 && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \ 389 || defined(WIN3264)) 390 # define FEAT_RELTIME 391 #endif 392 393 /* 394 * +timers timer_start() 395 */ 396 #if defined(FEAT_RELTIME) && (defined(UNIX) || defined(WIN32)) 397 # define FEAT_TIMERS 398 #endif 399 400 /* 401 * +textobjects Text objects: "vaw", "das", etc. 402 */ 403 #if defined(FEAT_NORMAL) && defined(FEAT_EVAL) 404 # define FEAT_TEXTOBJ 405 #endif 406 407 /* 408 * Insert mode completion with 'completefunc'. 409 */ 410 #if defined(FEAT_INS_EXPAND) && defined(FEAT_EVAL) 411 # define FEAT_COMPL_FUNC 412 #endif 413 414 /* 415 * +user_commands Allow the user to define his own commands. 416 */ 417 #ifdef FEAT_NORMAL 418 # define FEAT_USR_CMDS 419 #endif 420 421 /* 422 * +printer ":hardcopy" command 423 * +postscript Printing uses PostScript file output. 424 */ 425 #if defined(FEAT_NORMAL) && (defined(MSWIN) || defined(FEAT_EVAL)) \ 426 && !defined(AMIGA) 427 # define FEAT_PRINTER 428 #endif 429 #if defined(FEAT_PRINTER) && ((defined(MSWIN) && defined(MSWINPS)) \ 430 || (!defined(MSWIN) && defined(FEAT_EVAL))) 431 # define FEAT_POSTSCRIPT 432 #endif 433 434 /* 435 * +modify_fname modifiers for file name. E.g., "%:p:h". 436 */ 437 #ifdef FEAT_NORMAL 438 # define FEAT_MODIFY_FNAME 439 #endif 440 441 /* 442 * +autocmd ":autocmd" command 443 */ 444 #ifdef FEAT_NORMAL 445 # define FEAT_AUTOCMD 446 #endif 447 448 /* 449 * +diff Displaying diffs in a nice way. 450 * Requires +windows and +autocmd. 451 */ 452 #if defined(FEAT_NORMAL) && defined(FEAT_WINDOWS) && defined(FEAT_AUTOCMD) 453 # define FEAT_DIFF 454 #endif 455 456 /* 457 * +title 'title' and 'icon' options 458 * +statusline 'statusline', 'rulerformat' and special format of 459 * 'titlestring' and 'iconstring' options. 460 * +byte_offset '%o' in 'statusline' and builtin functions line2byte() 461 * and byte2line(). 462 * Note: Required for Macintosh. 463 */ 464 #if defined(FEAT_NORMAL) 465 # define FEAT_TITLE 466 #endif 467 468 #ifdef FEAT_NORMAL 469 # define FEAT_STL_OPT 470 # ifndef FEAT_CMDL_INFO 471 # define FEAT_CMDL_INFO /* 'ruler' is required for 'statusline' */ 472 # endif 473 #endif 474 475 #ifdef FEAT_NORMAL 476 # define FEAT_BYTEOFF 477 #endif 478 479 /* 480 * +wildignore 'wildignore' and 'backupskip' options 481 * Needed for Unix to make "crontab -e" work. 482 */ 483 #if defined(FEAT_NORMAL) || defined(UNIX) 484 # define FEAT_WILDIGN 485 #endif 486 487 /* 488 * +wildmenu 'wildmenu' option 489 */ 490 #if defined(FEAT_NORMAL) && defined(FEAT_WINDOWS) 491 # define FEAT_WILDMENU 492 #endif 493 494 /* 495 * +viminfo reading/writing the viminfo file. Takes about 8Kbyte 496 * of code. 497 * VIMINFO_FILE Location of user .viminfo file (should start with $). 498 * VIMINFO_FILE2 Location of alternate user .viminfo file. 499 */ 500 #ifdef FEAT_NORMAL 501 # define FEAT_VIMINFO 502 /* #define VIMINFO_FILE "$HOME/foo/.viminfo" */ 503 /* #define VIMINFO_FILE2 "~/bar/.viminfo" */ 504 #endif 505 506 /* 507 * +syntax syntax highlighting. When using this, it's a good 508 * idea to have +autocmd and +eval too. 509 */ 510 #if defined(FEAT_NORMAL) || defined(PROTO) 511 # define FEAT_SYN_HL 512 #endif 513 514 /* 515 * +conceal 'conceal' option. Needs syntax highlighting 516 * as this is how the concealed text is defined. 517 */ 518 #if defined(FEAT_BIG) && defined(FEAT_SYN_HL) 519 # define FEAT_CONCEAL 520 #endif 521 522 /* 523 * +spell spell checking 524 * 525 * Disabled for EBCDIC: * Doesn't work (SIGSEGV). 526 */ 527 #if (defined(FEAT_NORMAL) || defined(PROTO)) && !defined(EBCDIC) 528 # define FEAT_SPELL 529 #endif 530 531 /* 532 * +builtin_terms Choose one out of the following four: 533 * 534 * NO_BUILTIN_TCAPS Do not include any builtin termcap entries (used only 535 * with HAVE_TGETENT defined). 536 * 537 * (nothing) Machine specific termcap entries will be included. 538 * 539 * SOME_BUILTIN_TCAPS Include most useful builtin termcap entries (used only 540 * with NO_BUILTIN_TCAPS not defined). 541 * This is the default. 542 * 543 * ALL_BUILTIN_TCAPS Include all builtin termcap entries 544 * (used only with NO_BUILTIN_TCAPS not defined). 545 */ 546 #ifdef HAVE_TGETENT 547 /* #define NO_BUILTIN_TCAPS */ 548 #endif 549 550 #if !defined(NO_BUILTIN_TCAPS) 551 # ifdef FEAT_BIG 552 # define ALL_BUILTIN_TCAPS 553 # else 554 # define SOME_BUILTIN_TCAPS /* default */ 555 # endif 556 #endif 557 558 /* 559 * +lispindent lisp indenting (From Eric Fischer). 560 * +cindent C code indenting (From Eric Fischer). 561 * +smartindent smart C code indenting when the 'si' option is set. 562 * 563 * These two need to be defined when making prototypes. 564 */ 565 #if defined(FEAT_NORMAL) || defined(PROTO) 566 # define FEAT_LISP 567 #endif 568 569 #if defined(FEAT_NORMAL) || defined(PROTO) 570 # define FEAT_CINDENT 571 #endif 572 573 #ifdef FEAT_NORMAL 574 # define FEAT_SMARTINDENT 575 #endif 576 577 /* 578 * +comments 'comments' option. 579 */ 580 #ifdef FEAT_NORMAL 581 # define FEAT_COMMENTS 582 #endif 583 584 /* 585 * +cryptv Encryption (by Mohsin Ahmed <[email protected]>). 586 */ 587 #if defined(FEAT_NORMAL) && !defined(FEAT_CRYPT) || defined(PROTO) 588 # define FEAT_CRYPT 589 #endif 590 591 /* 592 * +mksession ":mksession" command. 593 * Requires +windows and +vertsplit. 594 */ 595 #if defined(FEAT_NORMAL) && defined(FEAT_WINDOWS) 596 # define FEAT_SESSION 597 #endif 598 599 /* 600 * +multi_lang Multi language support. ":menutrans", ":language", etc. 601 * +gettext Message translations (requires +multi_lang) 602 * (only when "lang" archive unpacked) 603 */ 604 #ifdef FEAT_NORMAL 605 # define FEAT_MULTI_LANG 606 #endif 607 #if defined(HAVE_GETTEXT) && defined(FEAT_MULTI_LANG) \ 608 && (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) 609 # define FEAT_GETTEXT 610 #endif 611 612 /* 613 * +multi_byte Generic multi-byte character handling. Doesn't work 614 * with 16 bit ints. Required for GTK+ 2. 615 * 616 * Disabled for EBCDIC: 617 * Multibyte support doesn't work on z/OS Unix currently. 618 */ 619 #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \ 620 && !defined(FEAT_MBYTE) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) 621 # define FEAT_MBYTE 622 #endif 623 624 /* Define this if you want to use 16 bit Unicode only, reduces memory used for 625 * the screen structures. */ 626 /* #define UNICODE16 */ 627 628 /* 629 * +multi_byte_ime Win32 IME input method. Requires +multi_byte. 630 * Only for far-east Windows, so IME can be used to input 631 * chars. Not tested much! 632 */ 633 #if defined(FEAT_GUI_W32) && !defined(FEAT_MBYTE_IME) 634 /* #define FEAT_MBYTE_IME */ 635 # endif 636 637 #if defined(FEAT_MBYTE_IME) && !defined(FEAT_MBYTE) 638 # define FEAT_MBYTE 639 #endif 640 641 #if defined(FEAT_MBYTE) && VIM_SIZEOF_INT < 4 && !defined(PROTO) 642 Error: Can only handle multi-byte feature with 32 bit int or larger 643 #endif 644 645 /* Use iconv() when it's available. */ 646 #if defined(FEAT_MBYTE) && ((defined(HAVE_ICONV_H) && defined(HAVE_ICONV)) \ 647 || defined(DYNAMIC_ICONV)) 648 # define USE_ICONV 649 #endif 650 651 /* 652 * +xim X Input Method. For entering special languages like 653 * chinese and Japanese. 654 * +hangul_input Internal Hangul input method. Must be included 655 * through configure: "--enable-hangulin" 656 * Both are for Unix and VMS only. 657 */ 658 #ifndef FEAT_XIM 659 /* #define FEAT_XIM */ 660 #endif 661 662 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) 663 # define USE_XIM 1 /* needed for GTK include files */ 664 #endif 665 666 #ifdef FEAT_HANGULIN 667 # define HANGUL_DEFAULT_KEYBOARD 2 /* 2 or 3 bulsik keyboard */ 668 # define ESC_CHG_TO_ENG_MODE /* if defined, when ESC pressed, 669 * turn to english mode 670 */ 671 # if defined(FEAT_XIM) && !defined(LINT) 672 Error: You should select only ONE of XIM and HANGUL INPUT 673 # endif 674 #endif 675 #if defined(FEAT_HANGULIN) || defined(FEAT_XIM) 676 /* # define X_LOCALE */ /* for OS with incomplete locale 677 support, like old linux versions. */ 678 #endif 679 680 /* 681 * +xfontset X fontset support. For outputting wide characters. 682 */ 683 #ifndef FEAT_XFONTSET 684 # if defined(FEAT_MBYTE) && defined(HAVE_X11) && !defined(FEAT_GUI_GTK) 685 # define FEAT_XFONTSET 686 # else 687 /* # define FEAT_XFONTSET */ 688 # endif 689 #endif 690 691 /* 692 * +libcall libcall() function 693 */ 694 /* Using dlopen() also requires dlsym() to be available. */ 695 #if defined(HAVE_DLOPEN) && defined(HAVE_DLSYM) 696 # define USE_DLOPEN 697 #endif 698 #if defined(FEAT_EVAL) && (defined(WIN3264) || ((defined(UNIX) || defined(VMS)) \ 699 && (defined(USE_DLOPEN) || defined(HAVE_SHL_LOAD)))) 700 # define FEAT_LIBCALL 701 #endif 702 703 /* 704 * +scrollbind synchronization of split windows 705 */ 706 #if defined(FEAT_NORMAL) && defined(FEAT_WINDOWS) 707 # define FEAT_SCROLLBIND 708 #endif 709 710 /* 711 * +cursorbind synchronization of split windows 712 */ 713 #if defined(FEAT_NORMAL) && defined(FEAT_WINDOWS) 714 # define FEAT_CURSORBIND 715 #endif 716 717 /* 718 * +menu ":menu" command 719 */ 720 #ifdef FEAT_NORMAL 721 # define FEAT_MENU 722 # ifdef FEAT_GUI_W32 723 # define FEAT_TEAROFF 724 # endif 725 #endif 726 727 /* There are two ways to use XPM. */ 728 #if (defined(HAVE_XM_XPMP_H) && defined(FEAT_GUI_MOTIF)) \ 729 || defined(HAVE_X11_XPM_H) 730 # define HAVE_XPM 1 731 #endif 732 733 /* 734 * +toolbar Include code for a toolbar (for the Win32 GUI, GTK 735 * always has it). But only if menus are enabled. 736 */ 737 #if defined(FEAT_NORMAL) && defined(FEAT_MENU) \ 738 && (defined(FEAT_GUI_GTK) \ 739 || defined(FEAT_GUI_MSWIN) \ 740 || ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \ 741 && defined(HAVE_XPM)) \ 742 || defined(FEAT_GUI_PHOTON)) 743 # define FEAT_TOOLBAR 744 #endif 745 746 747 #if defined(FEAT_TOOLBAR) && !defined(FEAT_MENU) 748 # define FEAT_MENU 749 #endif 750 751 /* 752 * GUI tabline 753 */ 754 #if defined(FEAT_WINDOWS) && defined(FEAT_NORMAL) \ 755 && (defined(FEAT_GUI_GTK) \ 756 || (defined(FEAT_GUI_MOTIF) && defined(HAVE_XM_NOTEBOOK_H)) \ 757 || defined(FEAT_GUI_MAC) \ 758 || (defined(FEAT_GUI_MSWIN) \ 759 && (!defined(_MSC_VER) || _MSC_VER > 1020))) 760 # define FEAT_GUI_TABLINE 761 #endif 762 763 /* 764 * +browse ":browse" command. 765 * or just the ":browse" command modifier 766 */ 767 #if defined(FEAT_NORMAL) 768 # define FEAT_BROWSE_CMD 769 # if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) 770 # define FEAT_BROWSE 771 # endif 772 #endif 773 774 /* 775 * On some systems, when we compile with the GUI, we always use it. On Mac 776 * there is no terminal version, and on Windows we can't figure out how to 777 * fork one off with :gui. 778 */ 779 #if defined(FEAT_GUI_MSWIN) || (defined(FEAT_GUI_MAC) && !defined(MACOS_X_UNIX)) 780 # define ALWAYS_USE_GUI 781 #endif 782 783 /* 784 * +dialog_gui Use GUI dialog. 785 * +dialog_con May use Console dialog. 786 * When none of these defined there is no dialog support. 787 */ 788 #ifdef FEAT_NORMAL 789 # if ((defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_MOTIF)) \ 790 && defined(HAVE_X11_XPM_H)) \ 791 || defined(FEAT_GUI_GTK) \ 792 || defined(FEAT_GUI_PHOTON) \ 793 || defined(FEAT_GUI_MSWIN) \ 794 || defined(FEAT_GUI_MAC) 795 # define FEAT_CON_DIALOG 796 # define FEAT_GUI_DIALOG 797 # else 798 # define FEAT_CON_DIALOG 799 # endif 800 #endif 801 #if !defined(FEAT_GUI_DIALOG) && (defined(FEAT_GUI_MOTIF) \ 802 || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \ 803 || defined(FEAT_GUI_W32)) 804 /* need a dialog to show error messages when starting from the desktop */ 805 # define FEAT_GUI_DIALOG 806 #endif 807 #if defined(FEAT_GUI_DIALOG) && \ 808 (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ 809 || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN) \ 810 || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)) 811 # define FEAT_GUI_TEXTDIALOG 812 # ifndef ALWAYS_USE_GUI 813 # define FEAT_CON_DIALOG 814 # endif 815 #endif 816 817 /* Mac specific thing: Codewarrior interface. */ 818 #ifdef FEAT_GUI_MAC 819 # define FEAT_CW_EDITOR 820 #endif 821 822 /* 823 * Preferences: 824 * ============ 825 */ 826 827 /* 828 * +writebackup 'writebackup' is default on: 829 * Use a backup file while overwriting a file. But it's 830 * deleted again when 'backup' is not set. Changing this 831 * is strongly discouraged: You can lose all your 832 * changes when the computer crashes while writing the 833 * file. 834 * VMS note: It does work on VMS as well, but because of 835 * version handling it does not have any purpose. 836 * Overwrite will write to the new version. 837 */ 838 #ifndef VMS 839 # define FEAT_WRITEBACKUP 840 #endif 841 842 /* 843 * +xterm_save The t_ti and t_te entries for the builtin xterm will 844 * be set to save the screen when starting Vim and 845 * restoring it when exiting. 846 */ 847 /* #define FEAT_XTERM_SAVE */ 848 849 /* 850 * DEBUG Output a lot of debugging garbage. 851 */ 852 /* #define DEBUG */ 853 854 /* 855 * STARTUPTIME Time the startup process. Writes a file with 856 * timestamps. 857 */ 858 #if defined(FEAT_NORMAL) \ 859 && ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \ 860 || defined(WIN3264)) 861 # define STARTUPTIME 1 862 #endif 863 864 /* 865 * MEM_PROFILE Debugging of memory allocation and freeing. 866 */ 867 /* #define MEM_PROFILE */ 868 869 /* 870 * VIMRC_FILE Name of the .vimrc file in current dir. 871 */ 872 /* #define VIMRC_FILE ".vimrc" */ 873 874 /* 875 * EXRC_FILE Name of the .exrc file in current dir. 876 */ 877 /* #define EXRC_FILE ".exrc" */ 878 879 /* 880 * GVIMRC_FILE Name of the .gvimrc file in current dir. 881 */ 882 /* #define GVIMRC_FILE ".gvimrc" */ 883 884 /* 885 * SESSION_FILE Name of the default ":mksession" file. 886 */ 887 #define SESSION_FILE "Session.vim" 888 889 /* 890 * USR_VIMRC_FILE Name of the user .vimrc file. 891 * USR_VIMRC_FILE2 Name of alternate user .vimrc file. 892 * USR_VIMRC_FILE3 Name of alternate user .vimrc file. 893 */ 894 /* #define USR_VIMRC_FILE "~/foo/.vimrc" */ 895 /* #define USR_VIMRC_FILE2 "~/bar/.vimrc" */ 896 /* #define USR_VIMRC_FILE3 "$VIM/.vimrc" */ 897 898 /* 899 * EVIM_FILE Name of the evim.vim script file 900 */ 901 /* #define EVIM_FILE "$VIMRUNTIME/evim.vim" */ 902 903 /* 904 * USR_EXRC_FILE Name of the user .exrc file. 905 * USR_EXRC_FILE2 Name of the alternate user .exrc file. 906 */ 907 /* #define USR_EXRC_FILE "~/foo/.exrc" */ 908 /* #define USR_EXRC_FILE2 "~/bar/.exrc" */ 909 910 /* 911 * USR_GVIMRC_FILE Name of the user .gvimrc file. 912 * USR_GVIMRC_FILE2 Name of the alternate user .gvimrc file. 913 */ 914 /* #define USR_GVIMRC_FILE "~/foo/.gvimrc" */ 915 /* #define USR_GVIMRC_FILE2 "~/bar/.gvimrc" */ 916 /* #define USR_GVIMRC_FILE3 "$VIM/.gvimrc" */ 917 918 /* 919 * SYS_VIMRC_FILE Name of the system-wide .vimrc file. 920 */ 921 /* #define SYS_VIMRC_FILE "/etc/vimrc" */ 922 923 /* 924 * SYS_GVIMRC_FILE Name of the system-wide .gvimrc file. 925 */ 926 /* #define SYS_GVIMRC_FILE "/etc/gvimrc" */ 927 928 /* 929 * DFLT_HELPFILE Name of the help file. 930 */ 931 /* # define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt.gz" */ 932 933 /* 934 * File names for: 935 * FILETYPE_FILE switch on file type detection 936 * FTPLUGIN_FILE switch on loading filetype plugin files 937 * INDENT_FILE switch on loading indent files 938 * FTOFF_FILE switch off file type detection 939 * FTPLUGOF_FILE switch off loading settings files 940 * INDOFF_FILE switch off loading indent files 941 */ 942 /* # define FILETYPE_FILE "filetype.vim" */ 943 /* # define FTPLUGIN_FILE "ftplugin.vim" */ 944 /* # define INDENT_FILE "indent.vim" */ 945 /* # define FTOFF_FILE "ftoff.vim" */ 946 /* # define FTPLUGOF_FILE "ftplugof.vim" */ 947 /* # define INDOFF_FILE "indoff.vim" */ 948 949 /* 950 * SYS_MENU_FILE Name of the default menu.vim file. 951 */ 952 /* # define SYS_MENU_FILE "$VIMRUNTIME/menu.vim" */ 953 954 /* 955 * SYS_OPTWIN_FILE Name of the default optwin.vim file. 956 */ 957 #ifndef SYS_OPTWIN_FILE 958 # define SYS_OPTWIN_FILE "$VIMRUNTIME/optwin.vim" 959 #endif 960 961 /* 962 * SYNTAX_FNAME Name of a syntax file, where %s is the syntax name. 963 */ 964 /* #define SYNTAX_FNAME "/foo/%s.vim" */ 965 966 /* 967 * RUNTIME_DIRNAME Generic name for the directory of the runtime files. 968 */ 969 #ifndef RUNTIME_DIRNAME 970 # define RUNTIME_DIRNAME "runtime" 971 #endif 972 973 /* 974 * RUNTIME_GLOBAL Directory name for global Vim runtime directory. 975 * Don't define this if the preprocessor can't handle 976 * string concatenation. 977 * Also set by "--with-global-runtime" configure argument. 978 */ 979 /* #define RUNTIME_GLOBAL "/etc/vim" */ 980 981 /* 982 * MODIFIED_BY Name of who modified Vim. Required when distributing 983 * a modified version of Vim. 984 * Also from the "--with-modified-by" configure argument. 985 */ 986 /* #define MODIFIED_BY "John Doe" */ 987 988 /* 989 * Machine dependent: 990 * ================== 991 */ 992 993 /* 994 * +fork Unix only: fork() support (detected by configure) 995 * +system Use system() instead of fork/exec for starting a 996 * shell. Doesn't work for the GUI! 997 */ 998 /* #define USE_SYSTEM */ 999 1000 /* 1001 * +X11 Unix only. Include code for xterm title saving and X 1002 * clipboard. Only works if HAVE_X11 is also defined. 1003 */ 1004 #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) 1005 # define WANT_X11 1006 #endif 1007 1008 /* 1009 * XSMP - X11 Session Management Protocol 1010 * It may be preferred to disable this if the GUI supports it (e.g., 1011 * GNOME/KDE) and implement save-yourself etc. through that, but it may also 1012 * be cleaner to have all SM-aware vims do the same thing (libSM does not 1013 * depend upon X11). 1014 * If your GUI wants to support SM itself, change this ifdef. 1015 * I'm assuming that any X11 implementation will cope with this for now. 1016 */ 1017 #if defined(HAVE_X11) && defined(WANT_X11) && defined(HAVE_X11_SM_SMLIB_H) 1018 # define USE_XSMP 1019 #endif 1020 #if defined(USE_XSMP_INTERACT) && !defined(USE_XSMP) 1021 # undef USE_XSMP_INTERACT 1022 #endif 1023 1024 /* 1025 * +mouse_xterm Unix only: Include code for xterm mouse handling. 1026 * +mouse_dec idem, for Dec mouse handling. 1027 * +mouse_jsbterm idem, for Jsbterm mouse handling. 1028 * +mouse_netterm idem, for Netterm mouse handling. 1029 * (none) MS-DOS mouse support. 1030 * +mouse_gpm Unix only: Include code for Linux console mouse 1031 * handling. 1032 * +mouse_pterm PTerm mouse support for QNX 1033 * +mouse_sgr Unix only: Include code for for SGR-styled mouse. 1034 * +mouse_sysmouse Unix only: Include code for FreeBSD and DragonFly 1035 * console mouse handling. 1036 * +mouse_urxvt Unix only: Include code for for urxvt mosue handling. 1037 * +mouse Any mouse support (any of the above enabled). 1038 */ 1039 /* OS/2 and Amiga console have no mouse support */ 1040 #if !defined(AMIGA) 1041 # ifdef FEAT_NORMAL 1042 # define FEAT_MOUSE_XTERM 1043 # endif 1044 # ifdef FEAT_BIG 1045 # define FEAT_MOUSE_NET 1046 # endif 1047 # ifdef FEAT_BIG 1048 # define FEAT_MOUSE_DEC 1049 # endif 1050 # ifdef FEAT_BIG 1051 # define FEAT_MOUSE_URXVT 1052 # endif 1053 # ifdef FEAT_BIG 1054 # define FEAT_MOUSE_SGR 1055 # endif 1056 # if defined(FEAT_NORMAL) && defined(WIN3264) 1057 # define DOS_MOUSE 1058 # endif 1059 # if defined(FEAT_NORMAL) && defined(__QNX__) 1060 # define FEAT_MOUSE_PTERM 1061 # endif 1062 #endif 1063 1064 /* 1065 * Note: Only one of the following may be defined: 1066 * FEAT_MOUSE_GPM 1067 * FEAT_SYSMOUSE 1068 * FEAT_MOUSE_JSB 1069 * FEAT_MOUSE_PTERM 1070 */ 1071 #if defined(FEAT_NORMAL) && defined(HAVE_GPM) 1072 # define FEAT_MOUSE_GPM 1073 #endif 1074 1075 #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE) 1076 # define FEAT_SYSMOUSE 1077 #endif 1078 1079 /* urxvt is a small variation of mouse_xterm, and shares its code */ 1080 #if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM) 1081 # define FEAT_MOUSE_XTERM 1082 #endif 1083 1084 /* sgr is a small variation of mouse_xterm, and shares its code */ 1085 #if defined(FEAT_MOUSE_SGR) && !defined(FEAT_MOUSE_XTERM) 1086 # define FEAT_MOUSE_XTERM 1087 #endif 1088 1089 /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */ 1090 #if !defined(FEAT_MOUSE_TTY) \ 1091 && (defined(FEAT_MOUSE_XTERM) \ 1092 || defined(FEAT_MOUSE_NET) \ 1093 || defined(FEAT_MOUSE_DEC) \ 1094 || defined(DOS_MOUSE) \ 1095 || defined(FEAT_MOUSE_GPM) \ 1096 || defined(FEAT_MOUSE_JSB) \ 1097 || defined(FEAT_MOUSE_PTERM) \ 1098 || defined(FEAT_SYSMOUSE) \ 1099 || defined(FEAT_MOUSE_URXVT) \ 1100 || defined(FEAT_MOUSE_SGR)) 1101 # define FEAT_MOUSE_TTY /* include non-GUI mouse support */ 1102 #endif 1103 #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI)) 1104 # define FEAT_MOUSE /* include generic mouse support */ 1105 #endif 1106 1107 /* 1108 * +clipboard Clipboard support. Always used for the GUI. 1109 * +xterm_clipboard Unix only: Include code for handling the clipboard 1110 * in an xterm like in the GUI. 1111 */ 1112 1113 #ifdef FEAT_CYGWIN_WIN32_CLIPBOARD 1114 # define FEAT_CLIPBOARD 1115 #endif 1116 1117 #ifdef FEAT_GUI 1118 # ifndef FEAT_CLIPBOARD 1119 # define FEAT_CLIPBOARD 1120 # endif 1121 #endif 1122 1123 #if defined(FEAT_NORMAL) \ 1124 && (defined(UNIX) || defined(VMS)) \ 1125 && defined(WANT_X11) && defined(HAVE_X11) 1126 # define FEAT_XCLIPBOARD 1127 # ifndef FEAT_CLIPBOARD 1128 # define FEAT_CLIPBOARD 1129 # endif 1130 #endif 1131 1132 /* 1133 * +dnd Drag'n'drop support. Always used for the GTK+ GUI. 1134 */ 1135 #if defined(FEAT_CLIPBOARD) && defined(FEAT_GUI_GTK) 1136 # define FEAT_DND 1137 #endif 1138 1139 #if defined(FEAT_GUI_MSWIN) && defined(FEAT_SMALL) 1140 # define MSWIN_FIND_REPLACE /* include code for find/replace dialog */ 1141 # define MSWIN_FR_BUFSIZE 256 1142 #endif 1143 1144 #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MOTIF) \ 1145 || defined(MSWIN_FIND_REPLACE) 1146 # define FIND_REPLACE_DIALOG 1 1147 #endif 1148 1149 /* 1150 * +clientserver Remote control via the remote_send() function 1151 * and the --remote argument 1152 */ 1153 #if (defined(WIN32) || defined(FEAT_XCLIPBOARD)) && defined(FEAT_EVAL) 1154 # define FEAT_CLIENTSERVER 1155 #endif 1156 1157 /* 1158 * +termresponse send t_RV to obtain terminal response. Used for xterm 1159 * to check if mouse dragging can be used and if term 1160 * codes can be obtained. 1161 */ 1162 #if (defined(FEAT_NORMAL) || defined(FEAT_MOUSE)) && defined(HAVE_TGETENT) 1163 # define FEAT_TERMRESPONSE 1164 #endif 1165 1166 /* 1167 * cursor shape Adjust the shape of the cursor to the mode. 1168 * mouse shape Adjust the shape of the mouse pointer to the mode. 1169 */ 1170 #ifdef FEAT_NORMAL 1171 /* MS-DOS console and Win32 console can change cursor shape */ 1172 # if defined(WIN3264) && !defined(FEAT_GUI_W32) 1173 # define MCH_CURSOR_SHAPE 1174 # endif 1175 # if defined(FEAT_GUI_W32) || defined(FEAT_GUI_MOTIF) \ 1176 || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) \ 1177 || defined(FEAT_GUI_PHOTON) 1178 # define FEAT_MOUSESHAPE 1179 # endif 1180 #endif 1181 1182 /* GUI and some consoles can change the shape of the cursor. The code is also 1183 * needed for the 'mouseshape' and 'concealcursor' options. */ 1184 #if defined(FEAT_GUI) \ 1185 || defined(MCH_CURSOR_SHAPE) \ 1186 || defined(FEAT_MOUSESHAPE) \ 1187 || defined(FEAT_CONCEAL) \ 1188 || (defined(UNIX) && defined(FEAT_NORMAL)) 1189 # define CURSOR_SHAPE 1190 #endif 1191 1192 #if defined(FEAT_MZSCHEME) && (defined(FEAT_GUI_W32) || defined(FEAT_GUI_GTK) \ 1193 || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ 1194 || defined(FEAT_GUI_MAC)) 1195 # define MZSCHEME_GUI_THREADS 1196 #endif 1197 1198 /* 1199 * +ARP Amiga only. Use arp.library, DOS 2.0 is not required. 1200 */ 1201 #if !defined(NO_ARP) && !defined(__amigaos4__) 1202 # define FEAT_ARP 1203 #endif 1204 1205 /* 1206 * +GUI_Athena To compile Vim with or without the GUI (gvim) you have 1207 * +GUI_Motif to edit the Makefile. 1208 */ 1209 1210 /* 1211 * +ole Win32 OLE automation: Use Makefile.ovc. 1212 */ 1213 1214 /* 1215 * These features can only be included by using a configure argument. See the 1216 * Makefile for a line to uncomment. 1217 * +lua Lua interface: "--enable-luainterp" 1218 * +mzscheme MzScheme interface: "--enable-mzscheme" 1219 * +perl Perl interface: "--enable-perlinterp" 1220 * +python Python interface: "--enable-pythoninterp" 1221 * +tcl TCL interface: "--enable-tclinterp" 1222 * +sun_workshop Sun Workshop integration 1223 * +netbeans_intg Netbeans integration 1224 * +channel Inter process communication 1225 */ 1226 1227 /* 1228 * These features are automatically detected: 1229 * +terminfo 1230 * +tgetent 1231 */ 1232 1233 /* 1234 * The Sun Workshop features currently only work with Motif. 1235 */ 1236 #if !defined(FEAT_GUI_MOTIF) && defined(FEAT_SUN_WORKSHOP) 1237 # undef FEAT_SUN_WORKSHOP 1238 #endif 1239 1240 /* 1241 * The Netbeans feature requires +listcmds and +eval. 1242 */ 1243 #if (!defined(FEAT_LISTCMDS) || !defined(FEAT_EVAL)) \ 1244 && defined(FEAT_NETBEANS_INTG) 1245 # undef FEAT_NETBEANS_INTG 1246 #endif 1247 1248 /* 1249 * The +channel feature requires +eval. 1250 */ 1251 #if !defined(FEAT_EVAL) && defined(FEAT_JOB_CHANNEL) 1252 # undef FEAT_JOB_CHANNEL 1253 #endif 1254 1255 /* 1256 * +signs Allow signs to be displayed to the left of text lines. 1257 * Adds the ":sign" command. 1258 */ 1259 #if defined(FEAT_BIG) || defined(FEAT_SUN_WORKSHOP) \ 1260 || defined(FEAT_NETBEANS_INTG) 1261 # define FEAT_SIGNS 1262 # if ((defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) \ 1263 && defined(HAVE_X11_XPM_H)) \ 1264 || defined(FEAT_GUI_GTK) \ 1265 || (defined(WIN32) && defined(FEAT_GUI)) 1266 # define FEAT_SIGN_ICONS 1267 # endif 1268 #endif 1269 1270 /* 1271 * +balloon_eval Allow balloon expression evaluation. Used with a 1272 * debugger and for tooltips. 1273 * Only for GUIs where it was implemented. 1274 */ 1275 #if (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) \ 1276 || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32)) \ 1277 && ( ((defined(FEAT_TOOLBAR) || defined(FEAT_GUI_TABLINE)) \ 1278 && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)) \ 1279 || defined(FEAT_SUN_WORKSHOP) \ 1280 || defined(FEAT_NETBEANS_INTG) || defined(FEAT_EVAL)) 1281 # define FEAT_BEVAL 1282 # if !defined(FEAT_XFONTSET) && !defined(FEAT_GUI_GTK) \ 1283 && !defined(FEAT_GUI_W32) 1284 # define FEAT_XFONTSET 1285 # endif 1286 #endif 1287 1288 #if defined(FEAT_BEVAL) && (defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA)) 1289 # define FEAT_BEVAL_TIP /* balloon eval used for toolbar tooltip */ 1290 #endif 1291 1292 /* both Motif and Athena are X11 and share some code */ 1293 #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) 1294 # define FEAT_GUI_X11 1295 #endif 1296 1297 #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) 1298 /* 1299 * The following features are (currently) only used by Sun Visual WorkShop 6 1300 * and NetBeans. These features could be used with other integrations with 1301 * debuggers so I've used separate feature defines. 1302 */ 1303 # if !defined(FEAT_MENU) 1304 # define FEAT_MENU 1305 # endif 1306 #endif 1307 1308 #if defined(FEAT_SUN_WORKSHOP) 1309 /* 1310 * Use an alternative method of X input for a secondary 1311 * command input. 1312 */ 1313 # define ALT_X_INPUT 1314 1315 /* 1316 * +footer Motif only: Add a message area at the bottom of the 1317 * main window area. 1318 */ 1319 # define FEAT_FOOTER 1320 1321 #endif 1322 1323 /* 1324 * +autochdir 'autochdir' option. 1325 */ 1326 #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_NETBEANS_INTG) \ 1327 || defined(FEAT_BIG) 1328 # define FEAT_AUTOCHDIR 1329 #endif 1330 1331 /* 1332 * +persistent_undo 'undofile', 'undodir' options, :wundo and :rundo, and 1333 * implementation. 1334 */ 1335 #ifdef FEAT_NORMAL 1336 # define FEAT_PERSISTENT_UNDO 1337 #endif 1338 1339 /* 1340 * +filterpipe 1341 */ 1342 #if (defined(UNIX) && !defined(USE_SYSTEM)) \ 1343 || (defined(WIN3264) && defined(FEAT_GUI_W32)) 1344 # define FEAT_FILTERPIPE 1345 #endif 1346