]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.378 v7.4.378
authorBram Moolenaar <Bram@vim.org>
Wed, 23 Jul 2014 13:55:00 +0000 (15:55 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 23 Jul 2014 13:55:00 +0000 (15:55 +0200)
Problem:    Title of quickfist list is not kept for setqflist(list, 'r').
Solution:   Keep the title.  Add a test. (Lcd)

src/quickfix.c
src/testdir/Make_amiga.mak
src/testdir/Make_dos.mak
src/testdir/Make_ming.mak
src/testdir/Make_os2.mak
src/testdir/Make_vms.mms
src/testdir/Makefile
src/testdir/test_qf_title.in [new file with mode: 0644]
src/testdir/test_qf_title.ok [new file with mode: 0644]
src/version.c

index 799421e7ffed7bc1be16db85f6cb2013d912fcd1..fc3a144819a5032d184e913477e578bf60db8ee5 100644 (file)
@@ -107,6 +107,7 @@ struct efm_S
 };
 
 static int     qf_init_ext __ARGS((qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title));
+static void    qf_store_title __ARGS((qf_info_T *qi, char_u *title));
 static void    qf_new_list __ARGS((qf_info_T *qi, char_u *qf_title));
 static void    ll_free_all __ARGS((qf_info_T **pqi));
 static int     qf_add_entry __ARGS((qf_info_T *qi, qfline_T **prevp, char_u *dir, char_u *fname, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid));
@@ -126,7 +127,7 @@ static int  is_qf_win __ARGS((win_T *win, qf_info_T *qi));
 static win_T   *qf_find_win __ARGS((qf_info_T *qi));
 static buf_T   *qf_find_buf __ARGS((qf_info_T *qi));
 static void    qf_update_buffer __ARGS((qf_info_T *qi));
-static void    qf_set_title __ARGS((qf_info_T *qi));
+static void    qf_set_title_var __ARGS((qf_info_T *qi));
 static void    qf_fill_buffer __ARGS((qf_info_T *qi));
 #endif
 static char_u  *get_mef_name __ARGS((void));
@@ -884,6 +885,21 @@ qf_init_end:
     return retval;
 }
 
+    static void
+qf_store_title(qi, title)
+    qf_info_T  *qi;
+    char_u     *title;
+{
+    if (title != NULL)
+    {
+       char_u *p = alloc((int)STRLEN(title) + 2);
+
+       qi->qf_lists[qi->qf_curlist].qf_title = p;
+       if (p != NULL)
+           sprintf((char *)p, ":%s", (char *)title);
+    }
+}
+
 /*
  * Prepare for adding a new quickfix list.
  */
@@ -895,7 +911,7 @@ qf_new_list(qi, qf_title)
     int                i;
 
     /*
-     * If the current entry is not the last entry, delete entries below
+     * If the current entry is not the last entry, delete entries beyond
      * the current entry.  This makes it possible to browse in a tree-like
      * way with ":grep'.
      */
@@ -916,14 +932,7 @@ qf_new_list(qi, qf_title)
     else
        qi->qf_curlist = qi->qf_listcount++;
     vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
-    if (qf_title != NULL)
-    {
-       char_u *p = alloc((int)STRLEN(qf_title) + 2);
-
-       qi->qf_lists[qi->qf_curlist].qf_title = p;
-       if (p != NULL)
-           sprintf((char *)p, ":%s", (char *)qf_title);
-    }
+    qf_store_title(qi, qf_title);
 }
 
 /*
@@ -2444,7 +2453,7 @@ ex_copen(eap)
     qf_fill_buffer(qi);
 
     if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
-       qf_set_title(qi);
+       qf_set_title_var(qi);
 
     curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
     curwin->w_cursor.col = 0;
@@ -2599,7 +2608,7 @@ qf_update_buffer(qi)
        {
            curwin_save = curwin;
            curwin = win;
-           qf_set_title(qi);
+           qf_set_title_var(qi);
            curwin = curwin_save;
 
        }
@@ -2612,7 +2621,7 @@ qf_update_buffer(qi)
 }
 
     static void
-qf_set_title(qi)
+qf_set_title_var(qi)
     qf_info_T  *qi;
 {
     set_internal_string_var((char_u *)"w:quickfix_title",
@@ -3845,7 +3854,10 @@ set_errorlist(wp, list, action, title)
             prevp->qf_next != prevp; prevp = prevp->qf_next)
            ;
     else if (action == 'r')
+    {
        qf_free(qi, qi->qf_curlist);
+       qf_store_title(qi, title);
+    }
 
     for (li = list->lv_first; li != NULL; li = li->li_next)
     {
index 60d820ab8784d423900b8cf7e0ec0ab569e651f3..46cd6a90dea58ce0eab09579262f344460092c80 100644 (file)
@@ -40,6 +40,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
                test_breakindent.out \
                test_listlbr.out \
                test_listlbr_utf8.out \
+               test_qf_title.out \
                test_eval.out \
                test_options.out
 
@@ -169,5 +170,6 @@ test_autoformat_join.out: test_autoformat_join.in
 test_breakindent.out: test_breakindent.in
 test_listlbr.out: test_listlbr.in
 test_listlbr_utf8.out: test_listlbr_utf8.in
+test_qf_title.out: test_qf_title.in
 test_eval.out: test_eval.in
 test_options.out: test_options.in
index d715d07767068c918a63dbae88e9e41577dbba6a..86176ae481f87fcec1381c8a213e9f34c4a6f72c 100644 (file)
@@ -39,6 +39,7 @@ SCRIPTS =     test3.out test4.out test5.out test6.out test7.out \
                test_breakindent.out \
                test_listlbr.out \
                test_listlbr_utf8.out \
+               test_qf_title.out \
                test_eval.out \
                test_options.out
 
index 8993517693b6897e3edb87d865d53b7cdc0731a6..cf10301b226bd44838b1e4343c8a15eabda5f5e2 100644 (file)
@@ -59,6 +59,7 @@ SCRIPTS =     test3.out test4.out test5.out test6.out test7.out \
                test_breakindent.out \
                test_listlbr.out \
                test_listlbr_utf8.out \
+               test_qf_title.out \
                test_eval.out \
                test_options.out
 
index b37bf2aae538f99af097a4a8ecf9f61cbd923be4..a7f3989f8ee92d24508e4092d8f68ead5b2d7d4b 100644 (file)
@@ -40,8 +40,9 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
                test_autoformat_join.out \
                test_eval.out \
                test_breakindent.out \
-               test_listlbr_utf8.out \
                test_listlbr.out \
+               test_listlbr_utf8.out \
+               test_qf_title.out \
                test_options.out
 
 .SUFFIXES: .in .out
index 9c6f1189a592a75e0f648abf5c796bda4512978f..9bf395be37f83bd108bbd126e5db20bfb113043b 100644 (file)
@@ -4,7 +4,7 @@
 # Authors:     Zoltan Arpadffy, <arpadffy@polarhome.com>
 #              Sandor Kopanyi,  <sandor.kopanyi@mailbox.hu>
 #
-# Last change:  2014 May 28
+# Last change:  2014 Jul 23
 #
 # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
 # Edit the lines in the Configuration section below to select.
@@ -100,6 +100,7 @@ SCRIPT = test1.out  test2.out  test3.out  test4.out  test5.out  \
         test_breakindent.out \
         test_listlbr.out \
         test_listlbr_utf8.out \
+        test_qf_title.out \
         test_eval.out \
         test_options.out
 
index abfef353b893ac4386f69bc51b26882224d53da6..b5f5d18030256b3ac80626abd833ba1a2894b3f5 100644 (file)
@@ -37,6 +37,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
                test_breakindent.out \
                test_listlbr.out \
                test_listlbr_utf8.out \
+               test_qf_title.out \
                test_eval.out \
                test_options.out
 
diff --git a/src/testdir/test_qf_title.in b/src/testdir/test_qf_title.in
new file mode 100644 (file)
index 0000000..fce0c26
--- /dev/null
@@ -0,0 +1,18 @@
+Tests for quickfix window's title     vim: set ft=vim :
+
+STARTTEST
+:so small.vim
+:if !has('quickfix') | e! test.ok | wq! test.out | endif
+:set efm=%E%f:%l:%c:%m
+:cgetexpr ['file:1:1:message']
+:let qflist=getqflist()
+:call setqflist(qflist, 'r')
+:copen
+:let g:quickfix_title=w:quickfix_title
+:wincmd p
+:$put =g:quickfix_title
+:/^Results/,$w test.out
+:qa!
+ENDTEST
+
+Results of test_qf_title:
diff --git a/src/testdir/test_qf_title.ok b/src/testdir/test_qf_title.ok
new file mode 100644 (file)
index 0000000..4ebdbef
--- /dev/null
@@ -0,0 +1,2 @@
+Results of test_qf_title:
+:setqflist()
index c0b0c3581c86afc63548ac4ceb9ad63b2d120b8d..c312e99dd1d6f3010a061cfd1c1e5e5908489ef4 100644 (file)
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    378,
 /**/
     377,
 /**/