Mercurial > vim
annotate src/proto/ex_docmd.pro @ 28835:58d2315b096e v8.2.4941
patch 8.2.4941: '[ and '] marks may be wrong after undo
Commit: https://github.com/vim/vim/commit/82444cefa3fef87624a078ea86a72af7ef4ef42e
Author: LemonBoy <thatlemon@gmail.com>
Date: Thu May 12 15:39:31 2022 +0100
patch 8.2.4941: '[ and '] marks may be wrong after undo
Problem: '[ and '] marks may be wrong after undo.
Solution: Adjust the '[ and '] marks if needed. (closes https://github.com/vim/vim/issues/10407, closes https://github.com/vim/vim/issues/1281)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 12 May 2022 16:45:03 +0200 |
parents | dfe18756f2ad |
children | 49d8b54802f3 |
rev | line source |
---|---|
7 | 1 /* ex_docmd.c */ |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
2 void do_exmode(int improved); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
3 int do_cmdline_cmd(char_u *cmd); |
21883
a427f5f26419
patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents:
21459
diff
changeset
|
4 int do_cmdline(char_u *cmdline, char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie, int flags); |
25445
65f04b6effd5
patch 8.2.3259: when 'indentexpr' causes an error did_throw may hang
Bram Moolenaar <Bram@vim.org>
parents:
24719
diff
changeset
|
5 void handle_did_throw(void); |
21883
a427f5f26419
patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents:
21459
diff
changeset
|
6 int getline_equal(char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie, char_u *(*func)(int, void *, int, getline_opt_T)); |
a427f5f26419
patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents:
21459
diff
changeset
|
7 void *getline_cookie(char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie); |
a427f5f26419
patch 8.2.1491: Vim9: crash when compiling heredoc lines start with comment
Bram Moolenaar <Bram@vim.org>
parents:
21459
diff
changeset
|
8 char_u *getline_peek(char_u *(*fgetline)(int, void *, int, getline_opt_T), void *cookie); |
21459
a422bd80b434
patch 8.2.1280: Ex command error cannot contain an argument
Bram Moolenaar <Bram@vim.org>
parents:
21357
diff
changeset
|
9 char *ex_errmsg(char *msg, char_u *arg); |
26370
a3a0885d9dd8
patch 8.2.3716: Vim9: range without a command is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
25575
diff
changeset
|
10 char *ex_range_without_command(exarg_T *eap); |
24719
4ae10e6c3a9c
patch 8.2.2898: QuitPre and ExitPre not triggered when GUI window is closed
Bram Moolenaar <Bram@vim.org>
parents:
24222
diff
changeset
|
11 int checkforcmd(char_u **pp, char *cmd, int len); |
25469
dcd45fe7fe2e
patch 8.2.3271: Vim9: cannot use :command or :au with block in :def function
Bram Moolenaar <Bram@vim.org>
parents:
25445
diff
changeset
|
12 int checkforcmd_noparen(char_u **pp, char *cmd, int len); |
22699
e82579016863
patch 8.2.1898: command modifier parsing always uses global cmdmod
Bram Moolenaar <Bram@vim.org>
parents:
22697
diff
changeset
|
13 int parse_command_modifiers(exarg_T *eap, char **errormsg, cmdmod_T *cmod, int skip_only); |
25575
9f691e8a74e3
patch 8.2.3324: Vim9: Cannot use :silent with :endwhile
Bram Moolenaar <Bram@vim.org>
parents:
25567
diff
changeset
|
14 int has_cmdmod(cmdmod_T *cmod, int ignore_silent); |
9f691e8a74e3
patch 8.2.3324: Vim9: Cannot use :silent with :endwhile
Bram Moolenaar <Bram@vim.org>
parents:
25567
diff
changeset
|
15 int cmdmod_error(int ignore_silent); |
22697
c996700d569f
patch 8.2.1897: command modifiers are saved and set inconsistently
Bram Moolenaar <Bram@vim.org>
parents:
22260
diff
changeset
|
16 void apply_cmdmod(cmdmod_T *cmod); |
22699
e82579016863
patch 8.2.1898: command modifier parsing always uses global cmdmod
Bram Moolenaar <Bram@vim.org>
parents:
22697
diff
changeset
|
17 void undo_cmdmod(cmdmod_T *cmod); |
15470
55ccc2d353bd
patch 8.1.0743: giving error messages is not flexible
Bram Moolenaar <Bram@vim.org>
parents:
14871
diff
changeset
|
18 int parse_cmd_address(exarg_T *eap, char **errormsg, int silent); |
21937
b931df03adcc
patch 8.2.1518: Vim9: cannot assign to local option
Bram Moolenaar <Bram@vim.org>
parents:
21883
diff
changeset
|
19 char_u *skip_option_env_lead(char_u *start); |
24124
f4061617c438
patch 8.2.2603: Vim9: no effect if user command is also a function
Bram Moolenaar <Bram@vim.org>
parents:
23966
diff
changeset
|
20 char_u *find_ex_command(exarg_T *eap, int *full, int (*lookup)(char_u *, size_t, int cmd, cctx_T *), cctx_T *cctx); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
21 int modifier_len(char_u *cmd); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
22 int cmd_exists(char_u *name); |
23966
09bde146adcb
patch 8.2.2525: Vim9: only local variables checked for a name
Bram Moolenaar <Bram@vim.org>
parents:
23648
diff
changeset
|
23 void f_fullcommand(typval_T *argvars, typval_T *rettv); |
17835
fd6c8dc33152
patch 8.1.1914: command line expansion code is spread out
Bram Moolenaar <Bram@vim.org>
parents:
17744
diff
changeset
|
24 cmdidx_T excmd_get_cmdidx(char_u *cmd, int len); |
fd6c8dc33152
patch 8.1.1914: command line expansion code is spread out
Bram Moolenaar <Bram@vim.org>
parents:
17744
diff
changeset
|
25 long excmd_get_argt(cmdidx_T idx); |
26370
a3a0885d9dd8
patch 8.2.3716: Vim9: range without a command is not compiled
Bram Moolenaar <Bram@vim.org>
parents:
25575
diff
changeset
|
26 char_u *skip_range(char_u *cmd_start, int skip_star, int *ctx); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
27 void ex_ni(exarg_T *eap); |
15470
55ccc2d353bd
patch 8.1.0743: giving error messages is not flexible
Bram Moolenaar <Bram@vim.org>
parents:
14871
diff
changeset
|
28 int expand_filename(exarg_T *eap, char_u **cmdlinep, char **errormsgp); |
28179
49631bf057d3
patch 8.2.4615: mapping with escaped bar does not work in :def function
Bram Moolenaar <Bram@vim.org>
parents:
27617
diff
changeset
|
29 void separate_nextcmd(exarg_T *eap, int keep_backslash); |
18402
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
17835
diff
changeset
|
30 char_u *skip_cmd_arg(char_u *p, int rembs); |
13575
4df23d9bad47
patch 8.0.1660: the terminal API "drop" command doesn't support options
Christian Brabandt <cb@256bit.org>
parents:
12521
diff
changeset
|
31 int get_bad_opt(char_u *p, exarg_T *eap); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
32 int ends_excmd(int c); |
20239
2135b4641680
patch 8.2.0675: Vim9: no support for closures
Bram Moolenaar <Bram@vim.org>
parents:
20059
diff
changeset
|
33 int ends_excmd2(char_u *cmd_start, char_u *cmd); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
34 char_u *find_nextcmd(char_u *p); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
35 char_u *check_nextcmd(char_u *p); |
25575
9f691e8a74e3
patch 8.2.3324: Vim9: Cannot use :silent with :endwhile
Bram Moolenaar <Bram@vim.org>
parents:
25567
diff
changeset
|
36 void set_nextcmd(exarg_T *eap, char_u *arg); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
37 char_u *get_command_name(expand_T *xp, int idx); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
38 void not_exiting(void); |
24719
4ae10e6c3a9c
patch 8.2.2898: QuitPre and ExitPre not triggered when GUI window is closed
Bram Moolenaar <Bram@vim.org>
parents:
24222
diff
changeset
|
39 int before_quit_autocmds(win_T *wp, int quit_all, int forceit); |
18402
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
17835
diff
changeset
|
40 void ex_quit(exarg_T *eap); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
41 void tabpage_close(int forceit); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
42 void tabpage_close_other(tabpage_T *tp, int forceit); |
26825
3c1dcb63f579
patch 8.2.3941: SIGTSTP is not handled
Bram Moolenaar <Bram@vim.org>
parents:
26370
diff
changeset
|
43 void ex_stop(exarg_T *eap); |
14428
aab5947be7c5
patch 8.1.0228: dropping files is ignored while Vim is busy
Christian Brabandt <cb@256bit.org>
parents:
13866
diff
changeset
|
44 void handle_drop(int filec, char_u **filev, int split, void (*callback)(void *), void *cookie); |
aab5947be7c5
patch 8.1.0228: dropping files is ignored while Vim is busy
Christian Brabandt <cb@256bit.org>
parents:
13866
diff
changeset
|
45 void handle_any_postponed_drop(void); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
46 void ex_splitview(exarg_T *eap); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
47 void tabpage_new(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
48 void do_exedit(exarg_T *eap, win_T *old_curwin); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
49 void free_cd_dir(void); |
18402
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
17835
diff
changeset
|
50 void post_chdir(cdscope_T scope); |
27617
269f89efb06a
patch 8.2.4335: no autocommand event triggered before changing directory
Bram Moolenaar <Bram@vim.org>
parents:
26825
diff
changeset
|
51 void trigger_DirChangedPre(char_u *acmd_fname, char_u *new_dir); |
18402
527b7084c556
patch 8.1.2195: Vim does not exit when the terminal window is last window
Bram Moolenaar <Bram@vim.org>
parents:
17835
diff
changeset
|
52 int changedir_func(char_u *new_dir, int forceit, cdscope_T scope); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
53 void ex_cd(exarg_T *eap); |
23648
b7d3c79075c5
patch 8.2.2366: when using ":sleep" the cursor is always displayed
Bram Moolenaar <Bram@vim.org>
parents:
23171
diff
changeset
|
54 void do_sleep(long msec, int hide_cursor); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
55 void ex_may_print(exarg_T *eap); |
7864
6b0891de44a9
commit https://github.com/vim/vim/commit/fb1f62691eae7c79a28b3b17a60e72ce198c71a2
Christian Brabandt <cb@256bit.org>
parents:
7840
diff
changeset
|
56 void ex_redraw(exarg_T *eap); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
57 int vim_mkdir_emsg(char_u *name, int prot); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
58 FILE *open_exfile(char_u *fname, int forceit, char *mode); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
59 void update_topline_cursor(void); |
12521
718787498836
patch 8.0.1139: using window toolbar changes state
Christian Brabandt <cb@256bit.org>
parents:
12459
diff
changeset
|
60 int save_current_state(save_state_T *sst); |
718787498836
patch 8.0.1139: using window toolbar changes state
Christian Brabandt <cb@256bit.org>
parents:
12459
diff
changeset
|
61 void restore_current_state(save_state_T *sst); |
7840
28f569c7dab9
commit https://github.com/vim/vim/commit/20fb9f346497daca4d19402fdfa5de7958642477
Christian Brabandt <cb@256bit.org>
parents:
7703
diff
changeset
|
62 void ex_normal(exarg_T *eap); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
63 void exec_normal_cmd(char_u *cmd, int remap, int silent); |
14871
f20df682c8af
patch 8.1.0447: GUI scrollbar test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents:
14760
diff
changeset
|
64 void exec_normal(int was_typed, int use_vpeekc, int may_use_terminal_loop); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
65 int find_cmdline_var(char_u *src, int *usedlen); |
28635
dfe18756f2ad
patch 8.2.4841: empty string considered an error for expand()
Bram Moolenaar <Bram@vim.org>
parents:
28179
diff
changeset
|
66 char_u *eval_vars(char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char **errormsg, int *escaped, int empty_is_error); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
67 char_u *expand_sfile(char_u *arg); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
6424
diff
changeset
|
68 void dialog_msg(char_u *buff, char *format, char_u *fname); |
13792
0e9b2971d7c3
patch 8.0.1768: SET_NO_HLSEARCH() used in a wrong way
Christian Brabandt <cb@256bit.org>
parents:
13575
diff
changeset
|
69 void set_no_hlsearch(int flag); |
14550
60b9b6196644
patch 8.1.0288: quickfix code uses cmdidx too often
Christian Brabandt <cb@256bit.org>
parents:
14538
diff
changeset
|
70 int is_loclist_cmd(int cmdidx); |
12459
937356f8f8d6
patch 8.0.1109: timer causes error on exit from Ex mode
Christian Brabandt <cb@256bit.org>
parents:
11995
diff
changeset
|
71 int get_pressedreturn(void); |
937356f8f8d6
patch 8.0.1109: timer causes error on exit from Ex mode
Christian Brabandt <cb@256bit.org>
parents:
11995
diff
changeset
|
72 void set_pressedreturn(int val); |
7 | 73 /* vim: set ft=c : */ |