home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 6.1.370 < prev    next >
Encoding:
Internet Message Format  |  2003-03-08  |  16.8 KB

  1. To: vim-dev@vim.org
  2. Subject: Patch 6.1.370
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. Mime-Version: 1.0
  6. Content-Type: text/plain; charset=ISO-8859-1
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 6.1.370
  11. Problem:    #ifdef nesting is unclear.
  12. Solution:   Insert spaces to indicate the nesting.
  13. Files:        src/os_unix.c
  14.  
  15.  
  16. *** ../vim61.369/src/os_unix.c    Sun Mar  9 14:08:43 2003
  17. --- src/os_unix.c    Fri Mar  7 22:50:28 2003
  18. ***************
  19. *** 3027,3035 ****
  20.       int        tmode = cur_tmode;
  21.   #ifdef USE_SYSTEM    /* use system() to start the shell: simple but slow */
  22.       int        x;
  23. ! #ifndef __EMX__
  24.       char_u  *newcmd;   /* only needed for unix */
  25. ! #else
  26.       /*
  27.        * Set the preferred shell in the EMXSHELL environment variable (but
  28.        * only if it is different from what is already in the environment).
  29. --- 3036,3044 ----
  30.       int        tmode = cur_tmode;
  31.   #ifdef USE_SYSTEM    /* use system() to start the shell: simple but slow */
  32.       int        x;
  33. ! # ifndef __EMX__
  34.       char_u  *newcmd;   /* only needed for unix */
  35. ! # else
  36.       /*
  37.        * Set the preferred shell in the EMXSHELL environment variable (but
  38.        * only if it is different from what is already in the environment).
  39. ***************
  40. *** 3050,3063 ****
  41.           putenv((char *)p);    /* don't free the pointer! */
  42.       }
  43.       }
  44. ! #endif
  45.   
  46.       out_flush();
  47.   
  48.       if (options & SHELL_COOKED)
  49.       settmode(TMODE_COOK);        /* set to normal mode */
  50.   
  51. ! #ifdef __EMX__
  52.       if (cmd == NULL)
  53.       x = system("");    /* this starts an interactive shell in emx */
  54.       else
  55. --- 3059,3072 ----
  56.           putenv((char *)p);    /* don't free the pointer! */
  57.       }
  58.       }
  59. ! # endif
  60.   
  61.       out_flush();
  62.   
  63.       if (options & SHELL_COOKED)
  64.       settmode(TMODE_COOK);        /* set to normal mode */
  65.   
  66. ! # ifdef __EMX__
  67.       if (cmd == NULL)
  68.       x = system("");    /* this starts an interactive shell in emx */
  69.       else
  70. ***************
  71. *** 3069,3080 ****
  72.       msg_outtrans(p_sh);
  73.       msg_putchar('\n');
  74.       }
  75. ! #else /* not __EMX__ */
  76.       if (cmd == NULL)
  77.       x = system((char *)p_sh);
  78.       else
  79.       {
  80. ! # ifdef VMS
  81.       if (ofn = strchr((char *)cmd, '>'))
  82.           *ofn++ = '\0';
  83.       if (ifn = strchr((char *)cmd, '<'))
  84. --- 3078,3089 ----
  85.       msg_outtrans(p_sh);
  86.       msg_putchar('\n');
  87.       }
  88. ! # else /* not __EMX__ */
  89.       if (cmd == NULL)
  90.       x = system((char *)p_sh);
  91.       else
  92.       {
  93. ! #  ifdef VMS
  94.       if (ofn = strchr((char *)cmd, '>'))
  95.           *ofn++ = '\0';
  96.       if (ifn = strchr((char *)cmd, '<'))
  97. ***************
  98. *** 3090,3096 ****
  99.           x = vms_sys((char *)cmd, ofn, ifn);
  100.       else
  101.           x = system((char *)cmd);
  102. ! # else
  103.       newcmd = lalloc(STRLEN(p_sh)
  104.           + (extra_shell_arg == NULL ? 0 : STRLEN(extra_shell_arg))
  105.           + STRLEN(p_shcf) + STRLEN(cmd) + 4, TRUE);
  106. --- 3099,3105 ----
  107.           x = vms_sys((char *)cmd, ofn, ifn);
  108.       else
  109.           x = system((char *)cmd);
  110. ! #  else
  111.       newcmd = lalloc(STRLEN(p_sh)
  112.           + (extra_shell_arg == NULL ? 0 : STRLEN(extra_shell_arg))
  113.           + STRLEN(p_shcf) + STRLEN(cmd) + 4, TRUE);
  114. ***************
  115. *** 3124,3132 ****
  116.   
  117.       if (tmode == TMODE_RAW)
  118.       settmode(TMODE_RAW);    /* set to raw mode */
  119. ! #ifdef FEAT_TITLE
  120.       resettitle();
  121. ! #endif
  122.       return x;
  123.   
  124.   #else /* USE_SYSTEM */        /* don't use system(), use fork()/exec() */
  125. --- 3133,3141 ----
  126.   
  127.       if (tmode == TMODE_RAW)
  128.       settmode(TMODE_RAW);    /* set to raw mode */
  129. ! # ifdef FEAT_TITLE
  130.       resettitle();
  131. ! # endif
  132.       return x;
  133.   
  134.   #else /* USE_SYSTEM */        /* don't use system(), use fork()/exec() */
  135. ***************
  136. *** 3137,3167 ****
  137.       char_u    *newcmd = NULL;
  138.       pid_t    pid;
  139.       pid_t    wait_pid = 0;
  140. ! #ifdef HAVE_UNION_WAIT
  141.       union wait    status;
  142. ! #else
  143.       int        status = -1;
  144. ! #endif
  145.       int        retval = -1;
  146.       char    **argv = NULL;
  147.       int        argc;
  148.       int        i;
  149.       char_u    *p;
  150.       int        inquote;
  151. ! #ifdef FEAT_GUI
  152.       int        pty_master_fd = -1;        /* for pty's */
  153.       int        pty_slave_fd = -1;
  154.       char    *tty_name;
  155.       int        fd_toshell[2];        /* for pipes */
  156.       int        fd_fromshell[2];
  157.       int        pipe_error = FALSE;
  158. ! # ifdef HAVE_SETENV
  159.       char    envbuf[50];
  160. ! # else
  161.       static char    envbuf_Rows[20];
  162.       static char    envbuf_Columns[20];
  163.   # endif
  164. - #endif
  165.       int        did_settmode = FALSE; /* TRUE when settmode(TMODE_RAW) called */
  166.   
  167.       out_flush();
  168. --- 3146,3176 ----
  169.       char_u    *newcmd = NULL;
  170.       pid_t    pid;
  171.       pid_t    wait_pid = 0;
  172. ! # ifdef HAVE_UNION_WAIT
  173.       union wait    status;
  174. ! # else
  175.       int        status = -1;
  176. ! # endif
  177.       int        retval = -1;
  178.       char    **argv = NULL;
  179.       int        argc;
  180.       int        i;
  181.       char_u    *p;
  182.       int        inquote;
  183. ! # ifdef FEAT_GUI
  184.       int        pty_master_fd = -1;        /* for pty's */
  185.       int        pty_slave_fd = -1;
  186.       char    *tty_name;
  187.       int        fd_toshell[2];        /* for pipes */
  188.       int        fd_fromshell[2];
  189.       int        pipe_error = FALSE;
  190. ! #  ifdef HAVE_SETENV
  191.       char    envbuf[50];
  192. ! #  else
  193.       static char    envbuf_Rows[20];
  194.       static char    envbuf_Columns[20];
  195. + #  endif
  196.   # endif
  197.       int        did_settmode = FALSE; /* TRUE when settmode(TMODE_RAW) called */
  198.   
  199.       out_flush();
  200. ***************
  201. *** 3213,3219 ****
  202.       }
  203.       argv[argc] = NULL;
  204.   
  205. ! #ifdef FEAT_GUI
  206.       /*
  207.        * For the GUI: Try using a pseudo-tty to get the stdin/stdout of the
  208.        * executed command into the Vim window.  Or use a pipe.
  209. --- 3222,3228 ----
  210.       }
  211.       argv[argc] = NULL;
  212.   
  213. ! # ifdef FEAT_GUI
  214.       /*
  215.        * For the GUI: Try using a pseudo-tty to get the stdin/stdout of the
  216.        * executed command into the Vim window.  Or use a pipe.
  217. ***************
  218. *** 3259,3274 ****
  219.       }
  220.   
  221.       if (!pipe_error)            /* pty or pipe opened or not used */
  222. ! #endif
  223.   
  224.       {
  225. ! #ifdef __BEOS__
  226.       beos_cleanup_read_thread();
  227. ! #endif
  228.       if ((pid = fork()) == -1)    /* maybe we should use vfork() */
  229.       {
  230.           MSG_PUTS(_("\nCannot fork\n"));
  231. ! #ifdef FEAT_GUI
  232.           if (gui.in_use && show_shell_mess)
  233.           {
  234.           if (pty_master_fd >= 0)        /* close the pseudo tty */
  235. --- 3268,3283 ----
  236.       }
  237.   
  238.       if (!pipe_error)            /* pty or pipe opened or not used */
  239. ! # endif
  240.   
  241.       {
  242. ! # ifdef __BEOS__
  243.       beos_cleanup_read_thread();
  244. ! # endif
  245.       if ((pid = fork()) == -1)    /* maybe we should use vfork() */
  246.       {
  247.           MSG_PUTS(_("\nCannot fork\n"));
  248. ! # ifdef FEAT_GUI
  249.           if (gui.in_use && show_shell_mess)
  250.           {
  251.           if (pty_master_fd >= 0)        /* close the pseudo tty */
  252. ***************
  253. *** 3284,3290 ****
  254.               close(fd_fromshell[1]);
  255.           }
  256.           }
  257. ! #endif
  258.       }
  259.       else if (pid == 0)    /* child */
  260.       {
  261. --- 3293,3299 ----
  262.               close(fd_fromshell[1]);
  263.           }
  264.           }
  265. ! # endif
  266.       }
  267.       else if (pid == 0)    /* child */
  268.       {
  269. ***************
  270. *** 3326,3348 ****
  271.               close(fd);
  272.           }
  273.           }
  274. ! #ifdef FEAT_GUI
  275.           else if (gui.in_use)
  276.           {
  277.   
  278. ! #ifdef HAVE_SETSID
  279.           (void)setsid();
  280. ! #endif
  281.           /* push stream discipline modules */
  282.           if (options & SHELL_COOKED)
  283.               SetupSlavePTY(pty_slave_fd);
  284. ! #ifdef TIOCSCTTY
  285.           /* try to become controlling tty (probably doesn't work,
  286.            * unless run by root) */
  287.           ioctl(pty_slave_fd, TIOCSCTTY, (char *)NULL);
  288. ! #endif
  289.           /* Simulate to have a dumb terminal (for now) */
  290. ! #ifdef HAVE_SETENV
  291.           setenv("TERM", "dumb", 1);
  292.           sprintf((char *)envbuf, "%ld", Rows);
  293.           setenv("ROWS", (char *)envbuf, 1);
  294. --- 3335,3357 ----
  295.               close(fd);
  296.           }
  297.           }
  298. ! # ifdef FEAT_GUI
  299.           else if (gui.in_use)
  300.           {
  301.   
  302. ! #  ifdef HAVE_SETSID
  303.           (void)setsid();
  304. ! #  endif
  305.           /* push stream discipline modules */
  306.           if (options & SHELL_COOKED)
  307.               SetupSlavePTY(pty_slave_fd);
  308. ! #  ifdef TIOCSCTTY
  309.           /* try to become controlling tty (probably doesn't work,
  310.            * unless run by root) */
  311.           ioctl(pty_slave_fd, TIOCSCTTY, (char *)NULL);
  312. ! #  endif
  313.           /* Simulate to have a dumb terminal (for now) */
  314. ! #  ifdef HAVE_SETENV
  315.           setenv("TERM", "dumb", 1);
  316.           sprintf((char *)envbuf, "%ld", Rows);
  317.           setenv("ROWS", (char *)envbuf, 1);
  318. ***************
  319. *** 3350,3356 ****
  320.           setenv("LINES", (char *)envbuf, 1);
  321.           sprintf((char *)envbuf, "%ld", Columns);
  322.           setenv("COLUMNS", (char *)envbuf, 1);
  323. ! #else
  324.           /*
  325.            * Putenv does not copy the string, it has to remain valid.
  326.            * Use a static array to avoid loosing allocated memory.
  327. --- 3359,3365 ----
  328.           setenv("LINES", (char *)envbuf, 1);
  329.           sprintf((char *)envbuf, "%ld", Columns);
  330.           setenv("COLUMNS", (char *)envbuf, 1);
  331. ! #  else
  332.           /*
  333.            * Putenv does not copy the string, it has to remain valid.
  334.            * Use a static array to avoid loosing allocated memory.
  335. ***************
  336. *** 3362,3368 ****
  337.           putenv(envbuf_Rows);
  338.           sprintf(envbuf_Columns, "COLUMNS=%ld", Columns);
  339.           putenv(envbuf_Columns);
  340. ! #endif
  341.   
  342.           if (pty_master_fd >= 0)
  343.           {
  344. --- 3371,3377 ----
  345.           putenv(envbuf_Rows);
  346.           sprintf(envbuf_Columns, "COLUMNS=%ld", Columns);
  347.           putenv(envbuf_Columns);
  348. ! #  endif
  349.   
  350.           if (pty_master_fd >= 0)
  351.           {
  352. ***************
  353. *** 3397,3403 ****
  354.               dup(1);
  355.           }
  356.           }
  357. ! #endif
  358.           /*
  359.            * There is no type cast for the argv, because the type may be
  360.            * different on different machines. This may cause a warning
  361. --- 3406,3412 ----
  362.               dup(1);
  363.           }
  364.           }
  365. ! # endif /* FEAT_GUI */
  366.           /*
  367.            * There is no type cast for the argv, because the type may be
  368.            * different on different machines. This may cause a warning
  369. ***************
  370. *** 3415,3432 ****
  371.            */
  372.           catch_signals(SIG_IGN, SIG_ERR);
  373.   
  374. ! #ifdef FEAT_GUI
  375.   
  376.           /*
  377.            * For the GUI we redirect stdin, stdout and stderr to our window.
  378.            */
  379.           if (gui.in_use && show_shell_mess)
  380.           {
  381. ! #define BUFLEN 100        /* length for buffer, pseudo tty limit is 128 */
  382.           char_u        buffer[BUFLEN + 1];
  383. ! #ifdef FEAT_MBYTE
  384.           int        buffer_off = 0;    /* valid bytes in buffer[] */
  385. ! #endif
  386.           char_u        ta_buf[BUFLEN + 1];    /* TypeAHead */
  387.           int        ta_len = 0;        /* valid bytes in ta_buf[] */
  388.           int        len;
  389. --- 3424,3441 ----
  390.            */
  391.           catch_signals(SIG_IGN, SIG_ERR);
  392.   
  393. ! # ifdef FEAT_GUI
  394.   
  395.           /*
  396.            * For the GUI we redirect stdin, stdout and stderr to our window.
  397.            */
  398.           if (gui.in_use && show_shell_mess)
  399.           {
  400. ! #  define BUFLEN 100        /* length for buffer, pseudo tty limit is 128 */
  401.           char_u        buffer[BUFLEN + 1];
  402. ! #  ifdef FEAT_MBYTE
  403.           int        buffer_off = 0;    /* valid bytes in buffer[] */
  404. ! #  endif
  405.           char_u        ta_buf[BUFLEN + 1];    /* TypeAHead */
  406.           int        ta_len = 0;        /* valid bytes in ta_buf[] */
  407.           int        len;
  408. ***************
  409. *** 3491,3509 ****
  410.                */
  411.               if (len == 1 && (pty_master_fd < 0 || cmd != NULL))
  412.               {
  413. ! #ifdef SIGINT
  414.                   /*
  415.                    * Send SIGINT to the child's group or all
  416.                    * processes in our group.
  417.                    */
  418.                   if (ta_buf[ta_len] == Ctrl_C
  419.                              || ta_buf[ta_len] == intr_char)
  420. ! # ifdef HAVE_SETSID
  421.                   kill(-pid, SIGINT);
  422. ! # else
  423.                   kill(0, SIGINT);
  424. ! # endif
  425. ! #endif
  426.                   if (pty_master_fd < 0 && toshell_fd >= 0
  427.                              && ta_buf[ta_len] == Ctrl_D)
  428.                   {
  429. --- 3500,3518 ----
  430.                */
  431.               if (len == 1 && (pty_master_fd < 0 || cmd != NULL))
  432.               {
  433. ! #  ifdef SIGINT
  434.                   /*
  435.                    * Send SIGINT to the child's group or all
  436.                    * processes in our group.
  437.                    */
  438.                   if (ta_buf[ta_len] == Ctrl_C
  439.                              || ta_buf[ta_len] == intr_char)
  440. ! #   ifdef HAVE_SETSID
  441.                   kill(-pid, SIGINT);
  442. ! #   else
  443.                   kill(0, SIGINT);
  444. ! #   endif
  445. ! #  endif
  446.                   if (pty_master_fd < 0 && toshell_fd >= 0
  447.                              && ta_buf[ta_len] == Ctrl_D)
  448.                   {
  449. ***************
  450. *** 3531,3540 ****
  451.                   }
  452.                   else if (ta_buf[i] == '\r')
  453.                   ta_buf[i] = '\n';
  454. ! #ifdef FEAT_MBYTE
  455.                   if (has_mbyte)
  456.                   i += (*mb_ptr2len_check)(ta_buf + i) - 1;
  457. ! #endif
  458.               }
  459.   
  460.               /*
  461. --- 3540,3549 ----
  462.                   }
  463.                   else if (ta_buf[i] == '\r')
  464.                   ta_buf[i] = '\n';
  465. ! #  ifdef FEAT_MBYTE
  466.                   if (has_mbyte)
  467.                   i += (*mb_ptr2len_check)(ta_buf + i) - 1;
  468. ! #  endif
  469.               }
  470.   
  471.               /*
  472. ***************
  473. *** 3547,3553 ****
  474.                   {
  475.                   if (ta_buf[i] == '\n' || ta_buf[i] == '\b')
  476.                       msg_putchar(ta_buf[i]);
  477. ! #ifdef FEAT_MBYTE
  478.                   else if (has_mbyte)
  479.                   {
  480.                       int l = (*mb_ptr2len_check)(ta_buf + i);
  481. --- 3556,3562 ----
  482.                   {
  483.                   if (ta_buf[i] == '\n' || ta_buf[i] == '\b')
  484.                       msg_putchar(ta_buf[i]);
  485. ! #  ifdef FEAT_MBYTE
  486.                   else if (has_mbyte)
  487.                   {
  488.                       int l = (*mb_ptr2len_check)(ta_buf + i);
  489. ***************
  490. *** 3555,3561 ****
  491.                       msg_outtrans_len(ta_buf + i, l);
  492.                       i += l - 1;
  493.                   }
  494. ! #endif
  495.                   else
  496.                       msg_outtrans_len(ta_buf + i, 1);
  497.                   }
  498. --- 3564,3570 ----
  499.                       msg_outtrans_len(ta_buf + i, l);
  500.                       i += l - 1;
  501.                   }
  502. ! #  endif
  503.                   else
  504.                       msg_outtrans_len(ta_buf + i, 1);
  505.                   }
  506. ***************
  507. *** 3593,3607 ****
  508.               while (RealWaitForChar(fromshell_fd, 10L, NULL))
  509.               {
  510.               len = read(fromshell_fd, (char *)buffer
  511. ! #ifdef FEAT_MBYTE
  512.                   + buffer_off, (size_t)(BUFLEN - buffer_off)
  513. ! #else
  514.                   , (size_t)BUFLEN
  515. ! #endif
  516.                   );
  517.               if (len <= 0)            /* end of file or error */
  518.                   goto finished;
  519. ! #ifdef FEAT_MBYTE
  520.               len += buffer_off;
  521.               buffer[len] = NUL;
  522.               if (has_mbyte)
  523. --- 3602,3616 ----
  524.               while (RealWaitForChar(fromshell_fd, 10L, NULL))
  525.               {
  526.               len = read(fromshell_fd, (char *)buffer
  527. ! #  ifdef FEAT_MBYTE
  528.                   + buffer_off, (size_t)(BUFLEN - buffer_off)
  529. ! #  else
  530.                   , (size_t)BUFLEN
  531. ! #  endif
  532.                   );
  533.               if (len <= 0)            /* end of file or error */
  534.                   goto finished;
  535. ! #  ifdef FEAT_MBYTE
  536.               len += buffer_off;
  537.               buffer[len] = NUL;
  538.               if (has_mbyte)
  539. ***************
  540. *** 3647,3653 ****
  541.                   buffer_off = 0;
  542.               }
  543.               else
  544. ! #endif
  545.               {
  546.                   buffer[len] = NUL;
  547.                   msg_puts(buffer);
  548. --- 3656,3662 ----
  549.                   buffer_off = 0;
  550.               }
  551.               else
  552. ! #  endif /* FEAT_MBYTE */
  553.               {
  554.                   buffer[len] = NUL;
  555.                   msg_puts(buffer);
  556. ***************
  557. *** 3664,3674 ****
  558.                * Check if the child still exists, before checking for
  559.                * typed characters (otherwise we would loose typeahead).
  560.                */
  561. ! #ifdef __NeXT__
  562.               wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *) 0);
  563. ! #else
  564.               wait_pid = waitpid(pid, &status, WNOHANG);
  565. ! #endif
  566.               if ((wait_pid == (pid_t)-1 && errno == ECHILD)
  567.                   || (wait_pid == pid && WIFEXITED(status)))
  568.               {
  569. --- 3673,3683 ----
  570.                * Check if the child still exists, before checking for
  571.                * typed characters (otherwise we would loose typeahead).
  572.                */
  573. ! #  ifdef __NeXT__
  574.               wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *) 0);
  575. ! #  else
  576.               wait_pid = waitpid(pid, &status, WNOHANG);
  577. ! #  endif
  578.               if ((wait_pid == (pid_t)-1 && errno == ECHILD)
  579.                   || (wait_pid == pid && WIFEXITED(status)))
  580.               {
  581. ***************
  582. *** 3680,3698 ****
  583.   finished:
  584.           p_more = p_more_save;
  585.   
  586. ! #ifndef MACOS_X_UNIX /* TODO: Is it needed for MACOS_X ? */
  587.           /*
  588.            * Give all typeahead that wasn't used back to ui_inchar().
  589.            */
  590.           if (ta_len)
  591.               ui_inchar_undo(ta_buf, ta_len);
  592. ! #endif
  593.           State = old_State;
  594.           if (toshell_fd >= 0)
  595.               close(toshell_fd);
  596.           close(fromshell_fd);
  597.           }
  598. ! #endif /* FEAT_GUI */
  599.   
  600.           /*
  601.            * Wait until our child has exited.
  602. --- 3689,3707 ----
  603.   finished:
  604.           p_more = p_more_save;
  605.   
  606. ! #  ifndef MACOS_X_UNIX /* TODO: Is it needed for MACOS_X ? */
  607.           /*
  608.            * Give all typeahead that wasn't used back to ui_inchar().
  609.            */
  610.           if (ta_len)
  611.               ui_inchar_undo(ta_buf, ta_len);
  612. ! #  endif
  613.           State = old_State;
  614.           if (toshell_fd >= 0)
  615.               close(toshell_fd);
  616.           close(fromshell_fd);
  617.           }
  618. ! # endif /* FEAT_GUI */
  619.   
  620.           /*
  621.            * Wait until our child has exited.
  622. ***************
  623. *** 3705,3713 ****
  624.           {
  625.           wait_pid = wait(&status);
  626.           if (wait_pid <= 0
  627. ! #ifdef ECHILD
  628.               && errno == ECHILD
  629. ! #endif
  630.              )
  631.               break;
  632.           }
  633. --- 3714,3722 ----
  634.           {
  635.           wait_pid = wait(&status);
  636.           if (wait_pid <= 0
  637. ! # ifdef ECHILD
  638.               && errno == ECHILD
  639. ! # endif
  640.              )
  641.               break;
  642.           }
  643. ***************
  644. *** 3750,3758 ****
  645.       if (!did_settmode)
  646.       if (tmode == TMODE_RAW)
  647.           settmode(TMODE_RAW);    /* set to raw mode */
  648. ! #ifdef FEAT_TITLE
  649.       resettitle();
  650. ! #endif
  651.       vim_free(newcmd);
  652.   
  653.       return retval;
  654. --- 3759,3767 ----
  655.       if (!did_settmode)
  656.       if (tmode == TMODE_RAW)
  657.           settmode(TMODE_RAW);    /* set to raw mode */
  658. ! # ifdef FEAT_TITLE
  659.       resettitle();
  660. ! # endif
  661.       vim_free(newcmd);
  662.   
  663.       return retval;
  664. *** ../vim61.369/src/version.c    Sun Mar  9 14:08:43 2003
  665. --- src/version.c    Sun Mar  9 14:12:12 2003
  666. ***************
  667. *** 613,614 ****
  668. --- 613,616 ----
  669.   {   /* Add new patch number below this line */
  670. + /**/
  671. +     370,
  672.   /**/
  673.  
  674. -- 
  675. It's totally unfair to suggest - as many have - that engineers are socially
  676. inept.  Engineers simply have different objectives when it comes to social
  677. interaction.
  678.                 (Scott Adams - The Dilbert principle)
  679.  
  680.  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
  681. ///          Creator of Vim - Vi IMproved -- http://www.Vim.org          \\\
  682. \\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
  683.  \\\     Help AIDS victims, buy at Amazon -- http://ICCF.nl/click1.html ///
  684.