Loading ...
Sorry, an error occurred while loading the content.

Patch 7.1.177

Expand Messages
  • Bram Moolenaar
    Patch 7.1.177 Problem: Freeing memory twice when in debug mode while reading a script. Solution: Ignore script input while in debug mode. Files:
    Message 1 of 2 , Jan 1, 2008
    • 0 Attachment
      Patch 7.1.177
      Problem: Freeing memory twice when in debug mode while reading a script.
      Solution: Ignore script input while in debug mode.
      Files: src/ex_cmds2.c, src/getchar.c, src/globals.h


      *** ../vim-7.1.176/src/ex_cmds2.c Thu May 10 20:55:46 2007
      --- src/ex_cmds2.c Tue Jan 1 14:13:41 2008
      ***************
      *** 93,98 ****
      --- 93,100 ----
      int save_emsg_silent = emsg_silent;
      int save_redir_off = redir_off;
      tasave_T typeaheadbuf;
      + int typeahead_saved = FALSE;
      + int save_ignore_script;
      # ifdef FEAT_EX_EXTRA
      int save_ex_normal_busy;
      # endif
      ***************
      *** 159,176 ****
      * This makes sure we get input from the user here and don't interfere
      * with the commands being executed. Reset "ex_normal_busy" to avoid
      * the side effects of using ":normal". Save the stuff buffer and make
      ! * it empty. */
      # ifdef FEAT_EX_EXTRA
      save_ex_normal_busy = ex_normal_busy;
      ex_normal_busy = 0;
      # endif
      if (!debug_greedy)
      save_typeahead(&typeaheadbuf);

      cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);

      ! if (!debug_greedy)
      restore_typeahead(&typeaheadbuf);
      # ifdef FEAT_EX_EXTRA
      ex_normal_busy = save_ex_normal_busy;
      # endif
      --- 161,186 ----
      * This makes sure we get input from the user here and don't interfere
      * with the commands being executed. Reset "ex_normal_busy" to avoid
      * the side effects of using ":normal". Save the stuff buffer and make
      ! * it empty. Set ignore_script to avoid reading from script input. */
      # ifdef FEAT_EX_EXTRA
      save_ex_normal_busy = ex_normal_busy;
      ex_normal_busy = 0;
      # endif
      if (!debug_greedy)
      + {
      save_typeahead(&typeaheadbuf);
      + typeahead_saved = TRUE;
      + save_ignore_script = ignore_script;
      + ignore_script = TRUE;
      + }

      cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);

      ! if (typeahead_saved)
      ! {
      restore_typeahead(&typeaheadbuf);
      + ignore_script = save_ignore_script;
      + }
      # ifdef FEAT_EX_EXTRA
      ex_normal_busy = save_ex_normal_busy;
      # endif
      *** ../vim-7.1.176/src/getchar.c Fri Dec 7 17:30:04 2007
      --- src/getchar.c Tue Jan 1 14:11:42 2008
      ***************
      *** 1279,1286 ****
      void
      free_typebuf()
      {
      ! vim_free(typebuf.tb_buf);
      ! vim_free(typebuf.tb_noremap);
      }

      /*
      --- 1279,1292 ----
      void
      free_typebuf()
      {
      ! if (typebuf.tb_buf == typebuf_init)
      ! EMSG2(_(e_intern2), "Free typebuf 1");
      ! else
      ! vim_free(typebuf.tb_buf);
      ! if (typebuf.tb_buf == noremapbuf_init)
      ! EMSG2(_(e_intern2), "Free typebuf 2");
      ! else
      ! vim_free(typebuf.tb_noremap);
      }

      /*
      ***************
      *** 1359,1364 ****
      --- 1365,1375 ----
      EMSG(_(e_nesting));
      return;
      }
      + #ifdef FEAT_EVAL
      + if (ignore_script)
      + /* Not reading from script, also don't open one. Warning message? */
      + return;
      + #endif

      if (scriptin[curscript] != NULL) /* already reading script */
      ++curscript;
      ***************
      *** 2346,2352 ****
      current_menu->silent[idx]);
      }
      }
      ! #endif /* FEAT_GUI */
      continue; /* try mapping again */
      }

      --- 2357,2363 ----
      current_menu->silent[idx]);
      }
      }
      ! #endif /* FEAT_GUI && FEAT_MENU */
      continue; /* try mapping again */
      }

      ***************
      *** 2862,2872 ****
      undo_off = FALSE; /* restart undo now */

      /*
      ! * first try script file
      ! * If interrupted: Stop reading script files.
      */
      script_char = -1;
      ! while (scriptin[curscript] != NULL && script_char < 0)
      {
      if (got_int || (script_char = getc(scriptin[curscript])) < 0)
      {
      --- 2873,2887 ----
      undo_off = FALSE; /* restart undo now */

      /*
      ! * Get a character from a script file if there is one.
      ! * If interrupted: Stop reading script files, close them all.
      */
      script_char = -1;
      ! while (scriptin[curscript] != NULL && script_char < 0
      ! #ifdef FEAT_EVAL
      ! && !ignore_script
      ! #endif
      ! )
      {
      if (got_int || (script_char = getc(scriptin[curscript])) < 0)
      {
      *** ../vim-7.1.176/src/globals.h Sat Sep 29 14:15:00 2007
      --- src/globals.h Mon Dec 31 17:00:21 2007
      ***************
      *** 954,959 ****
      --- 954,962 ----
      EXTERN int ex_normal_busy INIT(= 0); /* recursiveness of ex_normal() */
      EXTERN int ex_normal_lock INIT(= 0); /* forbid use of ex_normal() */
      #endif
      + #ifdef FEAT_EVAL
      + EXTERN int ignore_script INIT(= FALSE); /* ignore script input */
      + #endif
      EXTERN int stop_insert_mode; /* for ":stopinsert" and 'insertmode' */

      EXTERN int KeyTyped; /* TRUE if user typed current char */
      *** ../vim-7.1.176/src/version.c Mon Dec 31 16:41:31 2007
      --- src/version.c Tue Jan 1 14:00:09 2008
      ***************
      *** 668,669 ****
      --- 668,671 ----
      { /* Add new patch number below this line */
      + /**/
      + 177,
      /**/

      --
      Back up my hard drive? I can't find the reverse switch!

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ download, build and distribute -- http://www.A-A-P.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    • Edward L. Fox
      Hi Bram, ... I didn t see this patch on the FTP site. Could you please re-upload it? Thanks a lot! ... Regards, Edward L. Fox
      Message 2 of 2 , Jan 1, 2008
      • 0 Attachment
        Hi Bram,

        On Jan 1, 2008 9:17 PM, Bram Moolenaar <Bram@...> wrote:
        >
        >
        > Patch 7.1.177
        > Problem: Freeing memory twice when in debug mode while reading a script.
        > Solution: Ignore script input while in debug mode.
        > Files: src/ex_cmds2.c, src/getchar.c, src/globals.h

        I didn't see this patch on the FTP site. Could you please re-upload
        it? Thanks a lot!

        >
        > [...]


        Regards,


        Edward L. Fox

        --~--~---------~--~----~------------~-------~--~----~
        You received this message from the "vim_dev" maillist.
        For more information, visit http://www.vim.org/maillist.php
        -~----------~----~----~----~------~----~------~--~---
      Your message has been successfully submitted and would be delivered to recipients shortly.