diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2011-04-25 13:37:00 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 22:45:18 +0200 |
commit | 75a4a592e5ccda30715f93563d741b83e0dcf39e (patch) | |
tree | 502f745607e77a2c4386ad38d818ddcafe81489c /source/ap/vim/patches/7.2.031 | |
parent | b76270bf9e6dd375e495fec92140a79a79415d27 (diff) | |
download | current-75a4a592e5ccda30715f93563d741b83e0dcf39e.tar.gz |
Slackware 13.37slackware-13.37
Mon Apr 25 13:37:00 UTC 2011
Slackware 13.37 x86_64 stable is released!
Thanks to everyone who pitched in on this release: the Slackware team,
the folks producing upstream code, and linuxquestions.org for providing
a great forum for collaboration and testing.
The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a
dual-sided
32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware
project by picking up a copy from store.slackware.com. We're taking
pre-orders now, and offer a discount if you sign up for a subscription.
As always, thanks to the Slackware community for testing, suggestions,
and feedback. :-)
Have fun!
Diffstat (limited to 'source/ap/vim/patches/7.2.031')
-rw-r--r-- | source/ap/vim/patches/7.2.031 | 1281 |
1 files changed, 0 insertions, 1281 deletions
diff --git a/source/ap/vim/patches/7.2.031 b/source/ap/vim/patches/7.2.031 deleted file mode 100644 index 4b2bca70..00000000 --- a/source/ap/vim/patches/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 /// |