summaryrefslogtreecommitdiffstats
path: root/vi/vim-7.2/7.2.031
diff options
context:
space:
mode:
Diffstat (limited to 'vi/vim-7.2/7.2.031')
-rw-r--r--vi/vim-7.2/7.2.0311281
1 files changed, 0 insertions, 1281 deletions
diff --git a/vi/vim-7.2/7.2.031 b/vi/vim-7.2/7.2.031
deleted file mode 100644
index 4b2bca7..0000000
--- a/vi/vim-7.2/7.2.031
+++ /dev/null
@@ -1,1281 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.2.031
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.031
-Problem: Information in the viminfo file about previously edited files is
- not available to the user. There is no way to get a complete list
- of files edited in previous Vim sessions.
-Solution: Add v:oldfiles and fill it with the list of old file names when
- first reading the viminfo file. Add the ":oldfiles" command,
- ":browse oldfiles" and the "#<123" special file name. Increase
- the default value for 'viminfo' from '20 to '100.
-Files: runtime/doc/cmdline.txt, runtime/doc/eval.txt,
- runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c,
- src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h,
- src/fileio.c, src/main.c, src/mark.c, src/misc1.c,
- src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro,
- src/option.c, src/structs.h, src/vim.h
-
-
-*** ../vim-7.2.030/runtime/doc/cmdline.txt Sat Aug 9 19:36:46 2008
---- runtime/doc/cmdline.txt Thu Sep 18 22:55:27 2008
-***************
-*** 1,4 ****
-! *cmdline.txt* For Vim version 7.2. Last change: 2008 Jul 29
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 157,162 ****
---- 157,167 ----
- (doesn't work at the expression prompt; some
- things such as changing the buffer or current
- window are not allowed to avoid side effects)
-+ When the result is a |List| the items are used
-+ as lines. They can have line breaks inside
-+ too.
-+ When the result is a Float it's automatically
-+ converted to a String.
- See |registers| about registers. {not in Vi}
- Implementation detail: When using the |expression| register
- and invoking setcmdpos(), this sets the position before
-***************
-*** 730,748 ****
- In Ex commands, at places where a file name can be used, the following
- characters have a special meaning. These can also be used in the expression
- function expand() |expand()|.
-! % is replaced with the current file name *:_%*
-! # is replaced with the alternate file name *:_#*
- #n (where n is a number) is replaced with the file name of
-! buffer n. "#0" is the same as "#"
-! ## is replaced with all names in the argument list *:_##*
- concatenated, separated by spaces. Each space in a name
- is preceded with a backslash.
-! Note that these give the file name as it was typed. If an absolute path is
-! needed (when using the file name from a different directory), you need to add
-! ":p". See |filename-modifiers|.
- Note that backslashes are inserted before spaces, so that the command will
- correctly interpret the file name. But this doesn't happen for shell
-! commands. For those you probably have to use quotes: >
- :!ls "%"
- :r !spell "%"
-
---- 735,763 ----
- In Ex commands, at places where a file name can be used, the following
- characters have a special meaning. These can also be used in the expression
- function expand() |expand()|.
-! % Is replaced with the current file name. *:_%* *c_%*
-! # Is replaced with the alternate file name. *:_#* *c_#*
- #n (where n is a number) is replaced with the file name of
-! buffer n. "#0" is the same as "#".
-! ## Is replaced with all names in the argument list *:_##* *c_##*
- concatenated, separated by spaces. Each space in a name
- is preceded with a backslash.
-! #<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
-! file name n. See |:oldfiles| or |v:oldfiles| to get the
-! number. *E809*
-! {only when compiled with the +eval and +viminfo features}
-!
-! Note that these, except "#<n", give the file name as it was typed. If an
-! absolute path is needed (when using the file name from a different directory),
-! you need to add ":p". See |filename-modifiers|.
-!
-! The "#<n" item returns an absolute path, but it will start with "~/" for files
-! below your home directory.
-!
- Note that backslashes are inserted before spaces, so that the command will
- correctly interpret the file name. But this doesn't happen for shell
-! commands. For those you probably have to use quotes (this fails for files
-! that contain a quote and wildcards): >
- :!ls "%"
- :r !spell "%"
-
-*** ../vim-7.2.030/runtime/doc/eval.txt Sat Aug 9 19:36:47 2008
---- runtime/doc/eval.txt Sun Nov 2 14:25:38 2008
-***************
-*** 1,4 ****
-! *eval.txt* For Vim version 7.2. Last change: 2008 Aug 09
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *eval.txt* For Vim version 7.2. Last change: 2008 Nov 02
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1484,1489 ****
---- 1484,1500 ----
- This is the screen column number, like with |virtcol()|. The
- value is zero when there was no mouse button click.
-
-+ *v:oldfiles* *oldfiles-variable*
-+ v:oldfiles List of file names that is loaded from the |viminfo| file on
-+ startup. These are the files that Vim remembers marks for.
-+ The length of the List is limited by the ' argument of the
-+ 'viminfo' option (default is 100).
-+ Also see |:oldfiles| and |c_#<|.
-+ The List can be modified, but this has no effect on what is
-+ stored in the |viminfo| file later. If you use values other
-+ than String this will cause trouble.
-+ {only when compiled with the +viminfo feature}
-+
- *v:operator* *operator-variable*
- v:operator The last operator given in Normal mode. This is a single
- character except for commands starting with <g> or <z>,
-*** ../vim-7.2.030/runtime/doc/starting.txt Sat Aug 9 19:36:52 2008
---- runtime/doc/starting.txt Sun Nov 9 12:12:19 2008
-***************
-*** 1,4 ****
-! *starting.txt* For Vim version 7.2. Last change: 2008 Jun 21
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
---- 1,4 ----
-! *starting.txt* For Vim version 7.2. Last change: 2008 Nov 09
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-***************
-*** 1337,1344 ****
- *viminfo-read*
- When Vim is started and the 'viminfo' option is non-empty, the contents of
- the viminfo file are read and the info can be used in the appropriate places.
-! The marks are not read in at startup (but file marks are). See
-! |initialization| for how to set the 'viminfo' option upon startup.
-
- *viminfo-write*
- When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
---- 1335,1343 ----
- *viminfo-read*
- When Vim is started and the 'viminfo' option is non-empty, the contents of
- the viminfo file are read and the info can be used in the appropriate places.
-! The |v:oldfiles| variable is filled. The marks are not read in at startup
-! (but file marks are). See |initialization| for how to set the 'viminfo'
-! option upon startup.
-
- *viminfo-write*
- When Vim exits and 'viminfo' is non-empty, the info is stored in the viminfo
-***************
-*** 1372,1377 ****
---- 1371,1378 ----
- that start with any string given with the "r" flag in 'viminfo'. This can be
- used to avoid saving marks for files on removable media (for MS-DOS you would
- use "ra:,rb:", for Amiga "rdf0:,rdf1:,rdf2:").
-+ The |v:oldfiles| variable is filled with the file names that the viminfo file
-+ has marks for.
-
- *viminfo-file-marks*
- Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The
-***************
-*** 1463,1470 ****
- *:rv* *:rviminfo* *E195*
- :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above).
- If [!] is given, then any information that is
-! already set (registers, marks, etc.) will be
-! overwritten. {not in Vi}
-
- *:wv* *:wviminfo* *E137* *E138* *E574*
- :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
---- 1464,1471 ----
- *:rv* *:rviminfo* *E195*
- :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above).
- If [!] is given, then any information that is
-! already set (registers, marks, |v:oldfiles|, etc.)
-! will be overwritten {not in Vi}
-
- *:wv* *:wviminfo* *E137* *E138* *E574*
- :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
-***************
-*** 1479,1482 ****
---- 1480,1499 ----
- the .viminfo file.
- {not in Vi}
-
-+ *:ol* *:oldfiles*
-+ :ol[dfiles] List the files that have marks stored in the viminfo
-+ file. This list is read on startup and only changes
-+ afterwards with ":rviminfo!". Also see |v:oldfiles|.
-+ The number can be used with |c_#<|.
-+ {not in Vi, only when compiled with the +eval feature}
-+
-+ :bro[wse] ol[dfiles][!]
-+ List file names as with |:oldfiles|, and then prompt
-+ for a number. When the number is valid that file from
-+ the list is edited.
-+ If you get the |press-enter| prompt you can press "q"
-+ and still get the prompt to enter a file number.
-+ Use ! to abondon a modified buffer. |abandon|
-+ {not when compiled with tiny or small features}
-+
- vim:tw=78:ts=8:ft=help:norl:
-*** ../vim-7.2.030/runtime/doc/usr_21.txt Sat Aug 9 19:36:53 2008
---- runtime/doc/usr_21.txt Sun Nov 9 12:14:10 2008
-***************
-*** 1,4 ****
-! *usr_21.txt* For Vim version 7.2. Last change: 2007 May 01
-
- VIM USER MANUAL - by Bram Moolenaar
-
---- 1,4 ----
-! *usr_21.txt* For Vim version 7.2. Last change: 2008 Nov 09
-
- VIM USER MANUAL - by Bram Moolenaar
-
-***************
-*** 153,159 ****
- to be lost. Each item can be remembered only once.
-
-
-! GETTING BACK TO WHERE YOU WERE
-
- You are halfway editing a file and it's time to leave for holidays. You exit
- Vim and go enjoy yourselves, forgetting all about your work. After a couple
---- 153,159 ----
- to be lost. Each item can be remembered only once.
-
-
-! GETTING BACK TO WHERE YOU STOPPED VIM
-
- You are halfway editing a file and it's time to leave for holidays. You exit
- Vim and go enjoy yourselves, forgetting all about your work. After a couple
-***************
-*** 168,173 ****
---- 168,215 ----
- The |:marks| command is useful to find out where '0 to '9 will take you.
-
-
-+ GETTING BACK TO SOME FILE
-+
-+ If you want to go back to a file that you edited recently, but not when
-+ exiting Vim, there is a slightly more complicated way. You can see a list of
-+ files by typing the command: >
-+
-+ :oldfiles
-+ < 1: ~/.viminfo ~
-+ 2: ~/text/resume.txt ~
-+ 3: /tmp/draft ~
-+
-+ Now you would like to edit the second file, which is in the list preceded by
-+ "2:". You type: >
-+
-+ :e #<2
-+
-+ Instead of ":e" you can use any command that has a file name argument, the
-+ "#<2" item works in the same place as "%" (current file name) and "#"
-+ (alternate file name). So you can also split the window to edit the third
-+ file: >
-+
-+ :split #<3
-+
-+ That #<123 thing is a bit complicated when you just want to edit a file.
-+ Fortunately there is a simpler way: >
-+
-+ :browse oldfiles
-+ < 1: ~/.viminfo ~
-+ 2: ~/text/resume.txt ~
-+ 3: /tmp/draft ~
-+ -- More --
-+
-+ You get the same list of files as with |:oldfiles|. If you want to edit
-+ "resume.txt" first press "q" to stop the listing. You will get a prompt:
-+
-+ Type number and <Enter> (empty cancels): ~
-+
-+ Type "2" and press <Enter> to edit the second file.
-+
-+ More info at |:oldfiles|, |v:oldfiles| and |c_#<|.
-+
-+
- MOVE INFO FROM ONE VIM TO ANOTHER
-
- You can use the ":wviminfo" and ":rviminfo" commands to save and restore the
-*** ../vim-7.2.030/src/eval.c Thu Nov 6 11:04:50 2008
---- src/eval.c Sun Nov 9 11:59:39 2008
-***************
-*** 348,353 ****
---- 348,354 ----
- {VV_NAME("mouse_col", VAR_NUMBER), 0},
- {VV_NAME("operator", VAR_STRING), VV_RO},
- {VV_NAME("searchforward", VAR_NUMBER), 0},
-+ {VV_NAME("oldfiles", VAR_LIST), 0},
- };
-
- /* shorthand */
-***************
-*** 355,360 ****
---- 356,362 ----
- #define vv_nr vv_di.di_tv.vval.v_number
- #define vv_float vv_di.di_tv.vval.v_float
- #define vv_str vv_di.di_tv.vval.v_string
-+ #define vv_list vv_di.di_tv.vval.v_list
- #define vv_tv vv_di.di_tv
-
- /*
-***************
-*** 426,432 ****
- static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
- static void list_append __ARGS((list_T *l, listitem_T *item));
- static int list_append_tv __ARGS((list_T *l, typval_T *tv));
-- static int list_append_string __ARGS((list_T *l, char_u *str, int len));
- static int list_append_number __ARGS((list_T *l, varnumber_T n));
- static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
- static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef));
---- 428,433 ----
-***************
-*** 845,852 ****
- p = &vimvars[i];
- if (p->vv_di.di_tv.v_type == VAR_STRING)
- {
-! vim_free(p->vv_di.di_tv.vval.v_string);
-! p->vv_di.di_tv.vval.v_string = NULL;
- }
- }
- hash_clear(&vimvarht);
---- 846,858 ----
- p = &vimvars[i];
- if (p->vv_di.di_tv.v_type == VAR_STRING)
- {
-! vim_free(p->vv_string);
-! p->vv_string = NULL;
-! }
-! else if (p->vv_di.di_tv.v_type == VAR_LIST)
-! {
-! list_unref(p->vv_list);
-! p->vv_list = NULL;
- }
- }
- hash_clear(&vimvarht);
-***************
-*** 6057,6062 ****
---- 6063,6087 ----
- }
-
- /*
-+ * Get list item "l[idx - 1]" as a string. Returns NULL for failure.
-+ */
-+ char_u *
-+ list_find_str(l, idx)
-+ list_T *l;
-+ long idx;
-+ {
-+ listitem_T *li;
-+
-+ li = list_find(l, idx - 1);
-+ if (li == NULL)
-+ {
-+ EMSGN(_(e_listidx), idx);
-+ return NULL;
-+ }
-+ return get_tv_string(&li->li_tv);
-+ }
-+
-+ /*
- * Locate "item" list "l" and return its index.
- * Returns -1 when "item" is not in the list.
- */
-***************
-*** 6147,6153 ****
- * When "len" >= 0 use "str[len]".
- * Returns FAIL when out of memory.
- */
-! static int
- list_append_string(l, str, len)
- list_T *l;
- char_u *str;
---- 6172,6178 ----
- * When "len" >= 0 use "str[len]".
- * Returns FAIL when out of memory.
- */
-! int
- list_append_string(l, str, len)
- list_T *l;
- char_u *str;
-***************
-*** 6507,6512 ****
---- 6532,6540 ----
- set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID);
- }
-
-+ /* v: vars */
-+ set_ref_in_ht(&vimvarht, copyID);
-+
- /*
- * 2. Go through the list of dicts and free items without the copyID.
- */
-***************
-*** 6597,6603 ****
- {
- case VAR_DICT:
- dd = tv->vval.v_dict;
-! if (dd->dv_copyID != copyID)
- {
- /* Didn't see this dict yet. */
- dd->dv_copyID = copyID;
---- 6625,6631 ----
- {
- case VAR_DICT:
- dd = tv->vval.v_dict;
-! if (dd != NULL && dd->dv_copyID != copyID)
- {
- /* Didn't see this dict yet. */
- dd->dv_copyID = copyID;
-***************
-*** 6607,6613 ****
-
- case VAR_LIST:
- ll = tv->vval.v_list;
-! if (ll->lv_copyID != copyID)
- {
- /* Didn't see this list yet. */
- ll->lv_copyID = copyID;
---- 6635,6641 ----
-
- case VAR_LIST:
- ll = tv->vval.v_list;
-! if (ll != NULL && ll->lv_copyID != copyID)
- {
- /* Didn't see this list yet. */
- ll->lv_copyID = copyID;
-***************
-*** 18106,18111 ****
---- 18134,18150 ----
- }
-
- /*
-+ * Get List v: variable value. Caller must take care of reference count when
-+ * needed.
-+ */
-+ list_T *
-+ get_vim_var_list(idx)
-+ int idx;
-+ {
-+ return vimvars[idx].vv_list;
-+ }
-+
-+ /*
- * Set v:count, v:count1 and v:prevcount.
- */
- void
-***************
-*** 18141,18146 ****
---- 18180,18199 ----
- }
-
- /*
-+ * Set List v: variable to "val".
-+ */
-+ void
-+ set_vim_var_list(idx, val)
-+ int idx;
-+ list_T *val;
-+ {
-+ list_unref(vimvars[idx].vv_list);
-+ vimvars[idx].vv_list = val;
-+ if (val != NULL)
-+ ++val->lv_refcount;
-+ }
-+
-+ /*
- * Set v:register if needed.
- */
- void
-***************
-*** 21900,21905 ****
---- 21953,22014 ----
- }
- }
-
-+ /*
-+ * List v:oldfiles in a nice way.
-+ */
-+ /*ARGSUSED*/
-+ void
-+ ex_oldfiles(eap)
-+ exarg_T *eap;
-+ {
-+ list_T *l = vimvars[VV_OLDFILES].vv_list;
-+ listitem_T *li;
-+ int nr = 0;
-+
-+ if (l == NULL)
-+ msg((char_u *)_("No old files"));
-+ else
-+ {
-+ msg_start();
-+ msg_scroll = TRUE;
-+ for (li = l->lv_first; li != NULL && !got_int; li = li->li_next)
-+ {
-+ msg_outnum((long)++nr);
-+ MSG_PUTS(": ");
-+ msg_outtrans(get_tv_string(&li->li_tv));
-+ msg_putchar('\n');
-+ out_flush(); /* output one line at a time */
-+ ui_breakcheck();
-+ }
-+ /* Assume "got_int" was set to truncate the listing. */
-+ got_int = FALSE;
-+
-+ #ifdef FEAT_BROWSE_CMD
-+ if (cmdmod.browse)
-+ {
-+ quit_more = FALSE;
-+ nr = prompt_for_number(FALSE);
-+ msg_starthere();
-+ if (nr > 0)
-+ {
-+ char_u *p = list_find_str(get_vim_var_list(VV_OLDFILES),
-+ (long)nr);
-+
-+ if (p != NULL)
-+ {
-+ p = expand_env_save(p);
-+ eap->arg = p;
-+ eap->cmdidx = CMD_edit;
-+ cmdmod.browse = FALSE;
-+ do_exedit(eap, NULL);
-+ vim_free(p);
-+ }
-+ }
-+ }
-+ #endif
-+ }
-+ }
-+
- #endif /* FEAT_EVAL */
-
-
-*** ../vim-7.2.030/src/ex_cmds.c Sun Sep 14 21:40:26 2008
---- src/ex_cmds.c Sun Sep 14 13:45:03 2008
-***************
-*** 24,30 ****
- static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out));
- #ifdef FEAT_VIMINFO
- static char_u *viminfo_filename __ARGS((char_u *));
-! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int want_info, int want_marks, int force_read));
- static int viminfo_encoding __ARGS((vir_T *virp));
- static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
- #endif
---- 24,30 ----
- static void do_filter __ARGS((linenr_T line1, linenr_T line2, exarg_T *eap, char_u *cmd, int do_in, int do_out));
- #ifdef FEAT_VIMINFO
- static char_u *viminfo_filename __ARGS((char_u *));
-! static void do_viminfo __ARGS((FILE *fp_in, FILE *fp_out, int flags));
- static int viminfo_encoding __ARGS((vir_T *virp));
- static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
- #endif
-***************
-*** 1676,1689 ****
-
- /*
- * read_viminfo() -- Read the viminfo file. Registers etc. which are already
-! * set are not over-written unless force is TRUE. -- webb
- */
- int
-! read_viminfo(file, want_info, want_marks, forceit)
-! char_u *file;
-! int want_info;
-! int want_marks;
-! int forceit;
- {
- FILE *fp;
- char_u *fname;
---- 1676,1687 ----
-
- /*
- * read_viminfo() -- Read the viminfo file. Registers etc. which are already
-! * set are not over-written unless "flags" includes VIF_FORCEIT. -- webb
- */
- int
-! read_viminfo(file, flags)
-! char_u *file; /* file name or NULL to use default name */
-! int flags; /* VIF_WANT_INFO et al. */
- {
- FILE *fp;
- char_u *fname;
-***************
-*** 1691,1697 ****
- if (no_viminfo())
- return FAIL;
-
-! fname = viminfo_filename(file); /* may set to default if NULL */
- if (fname == NULL)
- return FAIL;
- fp = mch_fopen((char *)fname, READBIN);
---- 1689,1695 ----
- if (no_viminfo())
- return FAIL;
-
-! fname = viminfo_filename(file); /* get file name in allocated buffer */
- if (fname == NULL)
- return FAIL;
- fp = mch_fopen((char *)fname, READBIN);
-***************
-*** 1701,1708 ****
- verbose_enter();
- smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
- fname,
-! want_info ? _(" info") : "",
-! want_marks ? _(" marks") : "",
- fp == NULL ? _(" FAILED") : "");
- verbose_leave();
- }
---- 1699,1707 ----
- verbose_enter();
- smsg((char_u *)_("Reading viminfo file \"%s\"%s%s%s"),
- fname,
-! (flags & VIF_WANT_INFO) ? _(" info") : "",
-! (flags & VIF_WANT_MARKS) ? _(" marks") : "",
-! (flags & VIF_GET_OLDFILES) ? _(" oldfiles") : "",
- fp == NULL ? _(" FAILED") : "");
- verbose_leave();
- }
-***************
-*** 1712,1721 ****
- return FAIL;
-
- viminfo_errcnt = 0;
-! do_viminfo(fp, NULL, want_info, want_marks, forceit);
-
- fclose(fp);
--
- return OK;
- }
-
---- 1711,1719 ----
- return FAIL;
-
- viminfo_errcnt = 0;
-! do_viminfo(fp, NULL, flags);
-
- fclose(fp);
- return OK;
- }
-
-***************
-*** 1968,1974 ****
- }
-
- viminfo_errcnt = 0;
-! do_viminfo(fp_in, fp_out, !forceit, !forceit, FALSE);
-
- fclose(fp_out); /* errors are ignored !? */
- if (fp_in != NULL)
---- 1966,1972 ----
- }
-
- viminfo_errcnt = 0;
-! do_viminfo(fp_in, fp_out, forceit ? 0 : (VIF_WANT_INFO | VIF_WANT_MARKS));
-
- fclose(fp_out); /* errors are ignored !? */
- if (fp_in != NULL)
-***************
-*** 2041,2052 ****
- * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo().
- */
- static void
-! do_viminfo(fp_in, fp_out, want_info, want_marks, force_read)
- FILE *fp_in;
- FILE *fp_out;
-! int want_info;
-! int want_marks;
-! int force_read;
- {
- int count = 0;
- int eof = FALSE;
---- 2039,2048 ----
- * do_viminfo() -- Should only be called from read_viminfo() & write_viminfo().
- */
- static void
-! do_viminfo(fp_in, fp_out, flags)
- FILE *fp_in;
- FILE *fp_out;
-! int flags;
- {
- int count = 0;
- int eof = FALSE;
-***************
-*** 2061,2068 ****
-
- if (fp_in != NULL)
- {
-! if (want_info)
-! eof = read_viminfo_up_to_marks(&vir, force_read, fp_out != NULL);
- else
- /* Skip info, find start of marks */
- while (!(eof = viminfo_readline(&vir))
---- 2057,2065 ----
-
- if (fp_in != NULL)
- {
-! if (flags & VIF_WANT_INFO)
-! eof = read_viminfo_up_to_marks(&vir,
-! flags & VIF_FORCEIT, fp_out != NULL);
- else
- /* Skip info, find start of marks */
- while (!(eof = viminfo_readline(&vir))
-***************
-*** 2092,2099 ****
- write_viminfo_bufferlist(fp_out);
- count = write_viminfo_marks(fp_out);
- }
-! if (fp_in != NULL && want_marks)
-! copy_viminfo_marks(&vir, fp_out, count, eof);
-
- vim_free(vir.vir_line);
- #ifdef FEAT_MBYTE
---- 2089,2097 ----
- write_viminfo_bufferlist(fp_out);
- count = write_viminfo_marks(fp_out);
- }
-! if (fp_in != NULL
-! && (flags & (VIF_WANT_MARKS | VIF_GET_OLDFILES | VIF_FORCEIT)))
-! copy_viminfo_marks(&vir, fp_out, count, eof, flags);
-
- vim_free(vir.vir_line);
- #ifdef FEAT_MBYTE
-*** ../vim-7.2.030/src/ex_cmds.h Thu Nov 6 20:47:00 2008
---- src/ex_cmds.h Thu Sep 18 22:18:14 2008
-***************
-*** 653,658 ****
---- 653,660 ----
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_open, "open", ex_open,
- RANGE|EXTRA),
-+ EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
-+ BANG|TRLBAR|SBOXOK|CMDWIN),
- EX(CMD_omap, "omap", ex_map,
- EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
- EX(CMD_omapclear, "omapclear", ex_mapclear,
-*** ../vim-7.2.030/src/ex_docmd.c Thu Nov 6 17:16:06 2008
---- src/ex_docmd.c Mon Nov 3 21:21:17 2008
-***************
-*** 364,369 ****
---- 364,370 ----
- # define ex_function ex_ni
- # define ex_delfunction ex_ni
- # define ex_return ex_ni
-+ # define ex_oldfiles ex_ni
- #endif
- static char_u *arg_all __ARGS((void));
- #ifdef FEAT_SESSION
-***************
-*** 1770,1776 ****
- }
- if (checkforcmd(&ea.cmd, "browse", 3))
- {
-! #ifdef FEAT_BROWSE
- cmdmod.browse = TRUE;
- #endif
- continue;
---- 1771,1777 ----
- }
- if (checkforcmd(&ea.cmd, "browse", 3))
- {
-! #ifdef FEAT_BROWSE_CMD
- cmdmod.browse = TRUE;
- #endif
- continue;
-***************
-*** 9508,9531 ****
- break;
- }
- s = src + 1;
- i = (int)getdigits(&s);
- *usedlen = (int)(s - src); /* length of what we expand */
-
-! buf = buflist_findnr(i);
-! if (buf == NULL)
- {
-! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
- return NULL;
- }
-! if (lnump != NULL)
-! *lnump = ECMD_LAST;
-! if (buf->b_fname == NULL)
- {
-! result = (char_u *)"";
-! valid = 0; /* Must have ":p:h" to be valid */
- }
-- else
-- result = buf->b_fname;
- break;
-
- #ifdef FEAT_SEARCHPATH
---- 9509,9558 ----
- break;
- }
- s = src + 1;
-+ if (*s == '<') /* "#<99" uses v:oldfiles */
-+ ++s;
- i = (int)getdigits(&s);
- *usedlen = (int)(s - src); /* length of what we expand */
-
-! if (src[1] == '<')
- {
-! if (*usedlen < 2)
-! {
-! /* Should we give an error message for #<text? */
-! *usedlen = 1;
-! return NULL;
-! }
-! #ifdef FEAT_EVAL
-! result = list_find_str(get_vim_var_list(VV_OLDFILES),
-! (long)i);
-! if (result == NULL)
-! {
-! *errormsg = (char_u *)"";
-! return NULL;
-! }
-! #else
-! *errormsg = (char_u *)_("E809: #< is not available without the +eval feature");
- return NULL;
-+ #endif
- }
-! else
- {
-! buf = buflist_findnr(i);
-! if (buf == NULL)
-! {
-! *errormsg = (char_u *)_("E194: No alternate file name to substitute for '#'");
-! return NULL;
-! }
-! if (lnump != NULL)
-! *lnump = ECMD_LAST;
-! if (buf->b_fname == NULL)
-! {
-! result = (char_u *)"";
-! valid = 0; /* Must have ":p:h" to be valid */
-! }
-! else
-! result = buf->b_fname;
- }
- break;
-
- #ifdef FEAT_SEARCHPATH
-***************
-*** 10700,10706 ****
- p_viminfo = (char_u *)"'100";
- if (eap->cmdidx == CMD_rviminfo)
- {
-! if (read_viminfo(eap->arg, TRUE, TRUE, eap->forceit) == FAIL)
- EMSG(_("E195: Cannot open viminfo file for reading"));
- }
- else
---- 10727,10734 ----
- p_viminfo = (char_u *)"'100";
- if (eap->cmdidx == CMD_rviminfo)
- {
-! if (read_viminfo(eap->arg, VIF_WANT_INFO | VIF_WANT_MARKS
-! | (eap->forceit ? VIF_FORCEIT : 0)) == FAIL)
- EMSG(_("E195: Cannot open viminfo file for reading"));
- }
- else
-*** ../vim-7.2.030/src/feature.h Wed Aug 6 18:45:07 2008
---- src/feature.h Fri Sep 19 19:14:22 2008
-***************
-*** 767,775 ****
-
- /*
- * +browse ":browse" command.
- */
-! #if defined(FEAT_NORMAL) && (defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_ATHENA) || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC))
-! # define FEAT_BROWSE
- #endif
-
- /*
---- 767,779 ----
-
- /*
- * +browse ":browse" command.
-+ * or just the ":browse" command modifier
- */
-! #if defined(FEAT_NORMAL)
-! # define FEAT_BROWSE_CMD
-! # 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)
-! # define FEAT_BROWSE
-! # endif
- #endif
-
- /*
-*** ../vim-7.2.030/src/fileio.c Thu Sep 18 21:29:07 2008
---- src/fileio.c Mon Nov 3 21:21:47 2008
-***************
-*** 2711,2717 ****
- {
- if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
- && curbuf->b_ffname != NULL)
-! read_viminfo(NULL, FALSE, TRUE, FALSE);
-
- /* Always set b_marks_read; needed when 'viminfo' is changed to include
- * the ' parameter after opening a buffer. */
---- 2711,2717 ----
- {
- if (!curbuf->b_marks_read && get_viminfo_parameter('\'') > 0
- && curbuf->b_ffname != NULL)
-! read_viminfo(NULL, VIF_WANT_MARKS);
-
- /* Always set b_marks_read; needed when 'viminfo' is changed to include
- * the ' parameter after opening a buffer. */
-***************
-*** 9108,9114 ****
- set_context_in_autocmd(xp, arg, doautocmd)
- expand_T *xp;
- char_u *arg;
-! int doautocmd; /* TRUE for :doautocmd, FALSE for :autocmd */
- {
- char_u *p;
- int group;
---- 9109,9115 ----
- set_context_in_autocmd(xp, arg, doautocmd)
- expand_T *xp;
- char_u *arg;
-! int doautocmd; /* TRUE for :doauto*, FALSE for :autocmd */
- {
- char_u *p;
- int group;
-*** ../vim-7.2.030/src/main.c Thu Sep 18 20:55:19 2008
---- src/main.c Sun Sep 14 13:26:10 2008
-***************
-*** 645,655 ****
-
- #ifdef FEAT_VIMINFO
- /*
-! * Read in registers, history etc, but not marks, from the viminfo file
- */
- if (*p_viminfo != NUL)
- {
-! read_viminfo(NULL, TRUE, FALSE, FALSE);
- TIME_MSG("reading viminfo");
- }
- #endif
---- 645,656 ----
-
- #ifdef FEAT_VIMINFO
- /*
-! * Read in registers, history etc, but not marks, from the viminfo file.
-! * This is where v:oldfiles gets filled.
- */
- if (*p_viminfo != NUL)
- {
-! read_viminfo(NULL, VIF_WANT_INFO | VIF_GET_OLDFILES);
- TIME_MSG("reading viminfo");
- }
- #endif
-*** ../vim-7.2.030/src/mark.c Sat Aug 9 19:37:29 2008
---- src/mark.c Sun Sep 14 13:46:19 2008
-***************
-*** 1627,1641 ****
-
- /*
- * Handle marks in the viminfo file:
-! * fp_out == NULL read marks for current buffer only
-! * fp_out != NULL copy marks for buffers not in buffer list
- */
- void
-! copy_viminfo_marks(virp, fp_out, count, eof)
- vir_T *virp;
- FILE *fp_out;
- int count;
- int eof;
- {
- char_u *line = virp->vir_line;
- buf_T *buf;
---- 1627,1643 ----
-
- /*
- * Handle marks in the viminfo file:
-! * fp_out != NULL: copy marks for buffers not in buffer list
-! * fp_out == NULL && (flags & VIF_WANT_MARKS): read marks for curbuf only
-! * fp_out == NULL && (flags & VIF_GET_OLDFILES | VIF_FORCEIT): fill v:oldfiles
- */
- void
-! copy_viminfo_marks(virp, fp_out, count, eof, flags)
- vir_T *virp;
- FILE *fp_out;
- int count;
- int eof;
-+ int flags;
- {
- char_u *line = virp->vir_line;
- buf_T *buf;
-***************
-*** 1647,1656 ****
---- 1649,1671 ----
- char_u *p;
- char_u *name_buf;
- pos_T pos;
-+ #ifdef FEAT_EVAL
-+ list_T *list = NULL;
-+ #endif
-
- if ((name_buf = alloc(LSIZE)) == NULL)
- return;
- *name_buf = NUL;
-+
-+ #ifdef FEAT_EVAL
-+ if (fp_out == NULL && (flags & (VIF_GET_OLDFILES | VIF_FORCEIT)))
-+ {
-+ list = list_alloc();
-+ if (list != NULL)
-+ set_vim_var_list(VV_OLDFILES, list);
-+ }
-+ #endif
-+
- num_marked_files = get_viminfo_parameter('\'');
- while (!eof && (count < num_marked_files || fp_out == NULL))
- {
-***************
-*** 1681,1686 ****
---- 1696,1706 ----
- p++;
- *p = NUL;
-
-+ #ifdef FEAT_EVAL
-+ if (list != NULL)
-+ list_append_string(list, str, -1);
-+ #endif
-+
- /*
- * If fp_out == NULL, load marks for current buffer.
- * If fp_out != NULL, copy marks for buffers not in buflist.
-***************
-*** 1688,1694 ****
- load_marks = copy_marks_out = FALSE;
- if (fp_out == NULL)
- {
-! if (curbuf->b_ffname != NULL)
- {
- if (*name_buf == NUL) /* only need to do this once */
- home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE);
---- 1708,1714 ----
- load_marks = copy_marks_out = FALSE;
- if (fp_out == NULL)
- {
-! if ((flags & VIF_WANT_MARKS) && curbuf->b_ffname != NULL)
- {
- if (*name_buf == NUL) /* only need to do this once */
- home_replace(NULL, curbuf->b_ffname, name_buf, LSIZE, TRUE);
-*** ../vim-7.2.030/src/misc1.c Wed Jun 25 00:24:52 2008
---- src/misc1.c Sun Nov 9 11:47:00 2008
-***************
-*** 3245,3253 ****
-
- /* When using ":silent" assume that <CR> was entered. */
- if (mouse_used != NULL)
-! MSG_PUTS(_("Type number or click with mouse (<Enter> cancels): "));
- else
-! MSG_PUTS(_("Choice number (<Enter> cancels): "));
-
- /* Set the state such that text can be selected/copied/pasted and we still
- * get mouse events. */
---- 3245,3253 ----
-
- /* When using ":silent" assume that <CR> was entered. */
- if (mouse_used != NULL)
-! MSG_PUTS(_("Type number and <Enter> or click with mouse (empty cancels): "));
- else
-! MSG_PUTS(_("Type number and <Enter> (empty cancels): "));
-
- /* Set the state such that text can be selected/copied/pasted and we still
- * get mouse events. */
-*** ../vim-7.2.030/src/proto/eval.pro Sun Jan 6 20:06:30 2008
---- src/proto/eval.pro Sun Nov 9 12:05:56 2008
-***************
-*** 17,23 ****
- int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
- char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
- int skip_expr __ARGS((char_u **pp));
-! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int dolist));
- char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
- int eval_to_number __ARGS((char_u *expr));
- list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
---- 17,23 ----
- int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
- char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
- int skip_expr __ARGS((char_u **pp));
-! char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd, int convert));
- char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd, int use_sandbox));
- int eval_to_number __ARGS((char_u *expr));
- list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
-***************
-*** 46,52 ****
---- 46,54 ----
- void list_unref __ARGS((list_T *l));
- void list_free __ARGS((list_T *l, int recurse));
- dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
-+ char_u *list_find_str __ARGS((list_T *l, long idx));
- int list_append_dict __ARGS((list_T *list, dict_T *dict));
-+ int list_append_string __ARGS((list_T *l, char_u *str, int len));
- int garbage_collect __ARGS((void));
- dict_T *dict_alloc __ARGS((void));
- int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
-***************
-*** 58,65 ****
---- 60,69 ----
- void set_vim_var_nr __ARGS((int idx, long val));
- long get_vim_var_nr __ARGS((int idx));
- char_u *get_vim_var_str __ARGS((int idx));
-+ list_T *get_vim_var_list __ARGS((int idx));
- void set_vcount __ARGS((long count, long count1));
- void set_vim_var_string __ARGS((int idx, char_u *val, int len));
-+ void set_vim_var_list __ARGS((int idx, list_T *val));
- void set_reg_var __ARGS((int c));
- char_u *v_exception __ARGS((char_u *oldval));
- char_u *v_throwpoint __ARGS((char_u *oldval));
-***************
-*** 94,99 ****
---- 98,104 ----
- void write_viminfo_varlist __ARGS((FILE *fp));
- int store_session_globals __ARGS((FILE *fd));
- void last_set_msg __ARGS((scid_T scriptID));
-+ void ex_oldfiles __ARGS((exarg_T *eap));
- int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
- char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
- /* vim: set ft=c : */
-*** ../vim-7.2.030/src/proto/ex_cmds.pro Sat May 5 20:13:58 2007
---- src/proto/ex_cmds.pro Sat Sep 13 17:27:21 2008
-***************
-*** 11,17 ****
- char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
- void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
- int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
-! int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
- void write_viminfo __ARGS((char_u *file, int forceit));
- int viminfo_readline __ARGS((vir_T *virp));
- char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
---- 11,17 ----
- char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
- void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
- int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
-! int read_viminfo __ARGS((char_u *file, int flags));
- void write_viminfo __ARGS((char_u *file, int forceit));
- int viminfo_readline __ARGS((vir_T *virp));
- char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
-*** ../vim-7.2.030/src/proto/mark.pro Sat May 5 19:29:37 2007
---- src/proto/mark.pro Sat Sep 13 18:06:20 2008
-***************
-*** 26,30 ****
- void write_viminfo_filemarks __ARGS((FILE *fp));
- int removable __ARGS((char_u *name));
- int write_viminfo_marks __ARGS((FILE *fp_out));
-! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof));
- /* vim: set ft=c : */
---- 26,30 ----
- void write_viminfo_filemarks __ARGS((FILE *fp));
- int removable __ARGS((char_u *name));
- int write_viminfo_marks __ARGS((FILE *fp_out));
-! void copy_viminfo_marks __ARGS((vir_T *virp, FILE *fp_out, int count, int eof, int flags));
- /* vim: set ft=c : */
-*** ../vim-7.2.030/src/option.c Thu Oct 2 22:48:01 2008
---- src/option.c Fri Sep 26 22:20:20 2008
-***************
-*** 2593,2605 ****
- #ifdef FEAT_VIMINFO
- (char_u *)&p_viminfo, PV_NONE,
- #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-! {(char_u *)"", (char_u *)"'20,<50,s10,h,rA:,rB:"}
- #else
- # ifdef AMIGA
- {(char_u *)"",
-! (char_u *)"'20,<50,s10,h,rdf0:,rdf1:,rdf2:"}
- # else
-! {(char_u *)"", (char_u *)"'20,<50,s10,h"}
- # endif
- #endif
- #else
---- 2593,2605 ----
- #ifdef FEAT_VIMINFO
- (char_u *)&p_viminfo, PV_NONE,
- #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-! {(char_u *)"", (char_u *)"'100,<50,s10,h,rA:,rB:"}
- #else
- # ifdef AMIGA
- {(char_u *)"",
-! (char_u *)"'100,<50,s10,h,rdf0:,rdf1:,rdf2:"}
- # else
-! {(char_u *)"", (char_u *)"'100,<50,s10,h"}
- # endif
- #endif
- #else
-*** ../vim-7.2.030/src/structs.h Thu Jul 31 22:04:27 2008
---- src/structs.h Fri Sep 19 19:15:18 2008
-***************
-*** 459,465 ****
- typedef struct
- {
- int hide; /* TRUE when ":hide" was used */
-! # ifdef FEAT_BROWSE
- int browse; /* TRUE to invoke file dialog */
- # endif
- # ifdef FEAT_WINDOWS
---- 459,465 ----
- typedef struct
- {
- int hide; /* TRUE when ":hide" was used */
-! # ifdef FEAT_BROWSE_CMD
- int browse; /* TRUE to invoke file dialog */
- # endif
- # ifdef FEAT_WINDOWS
-*** ../vim-7.2.030/src/vim.h Sat Aug 9 19:37:40 2008
---- src/vim.h Sat Sep 13 17:41:24 2008
-***************
-*** 1728,1734 ****
- #define VV_MOUSE_COL 51
- #define VV_OP 52
- #define VV_SEARCHFORWARD 53
-! #define VV_LEN 54 /* number of v: vars */
-
- #ifdef FEAT_CLIPBOARD
-
---- 1728,1735 ----
- #define VV_MOUSE_COL 51
- #define VV_OP 52
- #define VV_SEARCHFORWARD 53
-! #define VV_OLDFILES 54
-! #define VV_LEN 55 /* number of v: vars */
-
- #ifdef FEAT_CLIPBOARD
-
-***************
-*** 2054,2057 ****
---- 2055,2064 ----
- #define DOSO_VIMRC 1 /* loading vimrc file */
- #define DOSO_GVIMRC 2 /* loading gvimrc file */
-
-+ /* flags for read_viminfo() and children */
-+ #define VIF_WANT_INFO 1 /* load non-mark info */
-+ #define VIF_WANT_MARKS 2 /* load file marks */
-+ #define VIF_FORCEIT 4 /* overwrite info already read */
-+ #define VIF_GET_OLDFILES 8 /* load v:oldfiles */
-+
- #endif /* VIM__H */
-*** ../vim-7.2.030/src/version.c Thu Nov 6 20:47:00 2008
---- src/version.c Sun Nov 9 13:39:19 2008
-***************
-*** 678,679 ****
---- 678,681 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 31,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-217. Your sex life has drastically improved...so what if it's only cyber-sex!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///