Mercurial > vim
changeset 1167:cd26a75826d3
updated for version 7.1a
author | vimboss |
---|---|
date | Sun, 06 May 2007 14:25:46 +0000 |
parents | 6eb9fc75ab0b |
children | e9ba3cf909d2 |
files | runtime/doc/quickfix.txt src/memline.c src/proto/misc2.pro |
diffstat | 3 files changed, 132 insertions(+), 115 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.0. Last change: 2006 Jul 18 +*quickfix.txt* For Vim version 7.1a. Last change: 2007 Apr 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -432,10 +432,10 @@ 4. Using :make *:make_makeprg* errorfile (for Unix it is also echoed on the screen). 5. The errorfile is read using 'errorformat'. - 6. If [!] is not given the first error is jumped to. - 7. The errorfile is deleted. - 8. If vim was built with |+autocmd|, all relevant + 6. If vim was built with |+autocmd|, all relevant |QuickFixCmdPost| autocommands are executed. + 7. If [!] is not given the first error is jumped to. + 8. The errorfile is deleted. 9. You can now move through the errors with commands like |:cnext| and |:cprevious|, see above. This command does not accept a comment, any " @@ -1234,15 +1234,32 @@ additionally to the default. > Jikes(TM) produces a single-line error message when invoked with the option "+E", and can be matched with the following: > - :set efm=%f:%l:%v:%*\\d:%*\\d:%*\\s%m + :setl efm=%f:%l:%v:%*\\d:%*\\d:%*\\s%m < *errorformat-javac* This 'errorformat' has been reported to work well for javac, which outputs a line with "^" to indicate the column of the error: > - :set efm=%A%f:%l:\ %m,%-Z%p^,%-C%.%# + :setl efm=%A%f:%l:\ %m,%-Z%p^,%-C%.%# or: > - :set efm=%A%f:%l:\ %m,%+Z%p^,%+C%.%#,%-G%.%# + :setl efm=%A%f:%l:\ %m,%+Z%p^,%+C%.%#,%-G%.%# < +Here is an alternative from Michael F. Lamb for Unix that filters the errors +first: > + :setl errorformat=%Z%f:%l:\ %m,%A%p^,%-G%*[^sl]%.%# + :setl makeprg=javac\ %\ 2>&1\ \\\|\ vim-javac-filter + +You need to put the following in "vim-javac-filter" somewhere in your path +(e.g., in ~/bin) and make it executable: > + #!/bin/sed -f + /\^$/s/\t/\ /g;/:[0-9]\+:/{h;d};/^[ \t]*\^/G; + +In English, that sed script: +- Changes single tabs to single spaces and +- Moves the line with the filename, line number, error message to just after + the pointer line. That way, the unused error text between doesn't break + vim's notion of a "multi-line message" and also doesn't force us to include + it as a "continuation of a multi-line message." + *errorformat-ant* For ant (http://jakarta.apache.org/) the above errorformat has to be modified to honour the leading [javac] in front of each javac output line: >
--- a/src/memline.c +++ b/src/memline.c @@ -2570,7 +2570,7 @@ ml_append_int(buf, lnum, line, len, newf if (lineadd) { --(buf->b_ml.ml_stack_top); - /* fix line count for rest of blocks in the stack */ + /* fix line count for rest of blocks in the stack */ ml_lineadd(buf, lineadd); /* fix stack itself */ buf->b_ml.ml_stack[buf->b_ml.ml_stack_top].ip_high += @@ -2873,12 +2873,12 @@ ml_delete_int(buf, lnum, message) mf_put(mfp, hp, TRUE, FALSE); buf->b_ml.ml_stack_top = stack_idx; /* truncate stack */ - /* fix line count for rest of blocks in the stack */ - if (buf->b_ml.ml_locked_lineadd) + /* fix line count for rest of blocks in the stack */ + if (buf->b_ml.ml_locked_lineadd != 0) { ml_lineadd(buf, buf->b_ml.ml_locked_lineadd); buf->b_ml.ml_stack[buf->b_ml.ml_stack_top].ip_high += - buf->b_ml.ml_locked_lineadd; + buf->b_ml.ml_locked_lineadd; } ++(buf->b_ml.ml_stack_top); @@ -3208,7 +3208,7 @@ ml_new_ptr(mfp) * The stack is updated to lead to the locked block. The ip_high field in * the stack is updated to reflect the last line in the block AFTER the * insert or delete, also if the pointer block has not been updated yet. But - * if if ml_locked != NULL ml_locked_lineadd must be added to ip_high. + * if ml_locked != NULL ml_locked_lineadd must be added to ip_high. * * return: NULL for failure, pointer to block header otherwise */ @@ -3265,11 +3265,11 @@ ml_find_line(buf, lnum, action) buf->b_ml.ml_flags & ML_LOCKED_POS); buf->b_ml.ml_locked = NULL; - /* - * if lines have been added or deleted in the locked block, need to - * update the line count in pointer blocks - */ - if (buf->b_ml.ml_locked_lineadd) + /* + * If lines have been added or deleted in the locked block, need to + * update the line count in pointer blocks. + */ + if (buf->b_ml.ml_locked_lineadd != 0) ml_lineadd(buf, buf->b_ml.ml_locked_lineadd); }
--- a/src/proto/misc2.pro +++ b/src/proto/misc2.pro @@ -1,100 +1,100 @@ /* misc2.c */ -extern int virtual_active __ARGS((void)); -extern int getviscol __ARGS((void)); -extern int getviscol2 __ARGS((colnr_T col, colnr_T coladd)); -extern int coladvance_force __ARGS((colnr_T wcol)); -extern int coladvance __ARGS((colnr_T wcol)); -extern int getvpos __ARGS((pos_T *pos, colnr_T wcol)); -extern int inc_cursor __ARGS((void)); -extern int inc __ARGS((pos_T *lp)); -extern int incl __ARGS((pos_T *lp)); -extern int dec_cursor __ARGS((void)); -extern int dec __ARGS((pos_T *lp)); -extern int decl __ARGS((pos_T *lp)); -extern void check_cursor_lnum __ARGS((void)); -extern void check_cursor_col __ARGS((void)); -extern void check_cursor __ARGS((void)); -extern void adjust_cursor_col __ARGS((void)); -extern int leftcol_changed __ARGS((void)); -extern void vim_mem_profile_dump __ARGS((void)); -extern char_u *alloc __ARGS((unsigned size)); -extern char_u *alloc_clear __ARGS((unsigned size)); -extern char_u *alloc_check __ARGS((unsigned size)); -extern char_u *lalloc_clear __ARGS((long_u size, int message)); -extern char_u *lalloc __ARGS((long_u size, int message)); -extern void *mem_realloc __ARGS((void *ptr, size_t size)); -extern void do_outofmem_msg __ARGS((long_u size)); -extern void free_all_mem __ARGS((void)); -extern char_u *vim_strsave __ARGS((char_u *string)); -extern char_u *vim_strnsave __ARGS((char_u *string, int len)); -extern char_u *vim_strsave_escaped __ARGS((char_u *string, char_u *esc_chars)); -extern char_u *vim_strsave_escaped_ext __ARGS((char_u *string, char_u *esc_chars, int cc, int bsl)); -extern char_u *vim_strsave_shellescape __ARGS((char_u *string)); -extern char_u *vim_strsave_up __ARGS((char_u *string)); -extern char_u *vim_strnsave_up __ARGS((char_u *string, int len)); -extern void vim_strup __ARGS((char_u *p)); -extern char_u *strup_save __ARGS((char_u *orig)); -extern void copy_spaces __ARGS((char_u *ptr, size_t count)); -extern void copy_chars __ARGS((char_u *ptr, size_t count, int c)); -extern void del_trailing_spaces __ARGS((char_u *ptr)); -extern void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len)); -extern int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars)); -extern void vim_free __ARGS((void *x)); -extern int vim_stricmp __ARGS((char *s1, char *s2)); -extern int vim_strnicmp __ARGS((char *s1, char *s2, size_t len)); -extern char_u *vim_strchr __ARGS((char_u *string, int c)); -extern char_u *vim_strbyte __ARGS((char_u *string, int c)); -extern char_u *vim_strrchr __ARGS((char_u *string, int c)); -extern int vim_isspace __ARGS((int x)); -extern void ga_clear __ARGS((garray_T *gap)); -extern void ga_clear_strings __ARGS((garray_T *gap)); -extern void ga_init __ARGS((garray_T *gap)); -extern void ga_init2 __ARGS((garray_T *gap, int itemsize, int growsize)); -extern int ga_grow __ARGS((garray_T *gap, int n)); -extern void ga_concat __ARGS((garray_T *gap, char_u *s)); -extern void ga_append __ARGS((garray_T *gap, int c)); -extern int name_to_mod_mask __ARGS((int c)); -extern int simplify_key __ARGS((int key, int *modifiers)); -extern int handle_x_keys __ARGS((int key)); -extern char_u *get_special_key_name __ARGS((int c, int modifiers)); -extern int trans_special __ARGS((char_u **srcp, char_u *dst, int keycode)); -extern int find_special_key __ARGS((char_u **srcp, int *modp, int keycode)); -extern int extract_modifiers __ARGS((int key, int *modp)); -extern int find_special_key_in_table __ARGS((int c)); -extern int get_special_key_code __ARGS((char_u *name)); -extern char_u *get_key_name __ARGS((int i)); -extern int get_mouse_button __ARGS((int code, int *is_click, int *is_drag)); -extern int get_pseudo_mouse_code __ARGS((int button, int is_click, int is_drag)); -extern int get_fileformat __ARGS((buf_T *buf)); -extern int get_fileformat_force __ARGS((buf_T *buf, exarg_T *eap)); -extern void set_fileformat __ARGS((int t, int opt_flags)); -extern int default_fileformat __ARGS((void)); -extern int call_shell __ARGS((char_u *cmd, int opt)); -extern int get_real_state __ARGS((void)); -extern int after_pathsep __ARGS((char_u *b, char_u *p)); -extern int same_directory __ARGS((char_u *f1, char_u *f2)); -extern int vim_chdirfile __ARGS((char_u *fname)); -extern int illegal_slash __ARGS((char *name)); -extern char_u *parse_shape_opt __ARGS((int what)); -extern int get_shape_idx __ARGS((int mouse)); -extern void update_mouseshape __ARGS((int shape_idx)); -extern int decrypt_byte __ARGS((void)); -extern int update_keys __ARGS((int c)); -extern void crypt_init_keys __ARGS((char_u *passwd)); -extern char_u *get_crypt_key __ARGS((int store, int twice)); -extern void *vim_findfile_init __ARGS((char_u *path, char_u *filename, char_u *stopdirs, int level, int free_visited, int need_dir, void *search_ctx, int tagfile, char_u *rel_fname)); -extern char_u *vim_findfile_stopdir __ARGS((char_u *buf)); -extern void vim_findfile_cleanup __ARGS((void *ctx)); -extern char_u *vim_findfile __ARGS((void *search_ctx)); -extern void vim_findfile_free_visited __ARGS((void *search_ctx)); -extern char_u *find_file_in_path __ARGS((char_u *ptr, int len, int options, int first, char_u *rel_fname)); -extern char_u *find_directory_in_path __ARGS((char_u *ptr, int len, int options, char_u *rel_fname)); -extern char_u *find_file_in_path_option __ARGS((char_u *ptr, int len, int options, int first, char_u *path_option, int need_dir, char_u *rel_fname, char_u *suffixes)); -extern int vim_chdir __ARGS((char_u *new_dir)); -extern int get_user_name __ARGS((char_u *buf, int len)); -extern void sort_strings __ARGS((char_u **files, int count)); -extern int pathcmp __ARGS((const char *p, const char *q, int maxlen)); -extern int filewritable __ARGS((char_u *fname)); -extern int emsg3 __ARGS((char_u *s, char_u *a1, char_u *a2)); -extern int emsgn __ARGS((char_u *s, long n)); +int virtual_active __ARGS((void)); +int getviscol __ARGS((void)); +int getviscol2 __ARGS((colnr_T col, colnr_T coladd)); +int coladvance_force __ARGS((colnr_T wcol)); +int coladvance __ARGS((colnr_T wcol)); +int getvpos __ARGS((pos_T *pos, colnr_T wcol)); +int inc_cursor __ARGS((void)); +int inc __ARGS((pos_T *lp)); +int incl __ARGS((pos_T *lp)); +int dec_cursor __ARGS((void)); +int dec __ARGS((pos_T *lp)); +int decl __ARGS((pos_T *lp)); +void check_cursor_lnum __ARGS((void)); +void check_cursor_col __ARGS((void)); +void check_cursor __ARGS((void)); +void adjust_cursor_col __ARGS((void)); +int leftcol_changed __ARGS((void)); +void vim_mem_profile_dump __ARGS((void)); +char_u *alloc __ARGS((unsigned size)); +char_u *alloc_clear __ARGS((unsigned size)); +char_u *alloc_check __ARGS((unsigned size)); +char_u *lalloc_clear __ARGS((long_u size, int message)); +char_u *lalloc __ARGS((long_u size, int message)); +void *mem_realloc __ARGS((void *ptr, size_t size)); +void do_outofmem_msg __ARGS((long_u size)); +void free_all_mem __ARGS((void)); +char_u *vim_strsave __ARGS((char_u *string)); +char_u *vim_strnsave __ARGS((char_u *string, int len)); +char_u *vim_strsave_escaped __ARGS((char_u *string, char_u *esc_chars)); +char_u *vim_strsave_escaped_ext __ARGS((char_u *string, char_u *esc_chars, int cc, int bsl)); +char_u *vim_strsave_shellescape __ARGS((char_u *string)); +char_u *vim_strsave_up __ARGS((char_u *string)); +char_u *vim_strnsave_up __ARGS((char_u *string, int len)); +void vim_strup __ARGS((char_u *p)); +char_u *strup_save __ARGS((char_u *orig)); +void copy_spaces __ARGS((char_u *ptr, size_t count)); +void copy_chars __ARGS((char_u *ptr, size_t count, int c)); +void del_trailing_spaces __ARGS((char_u *ptr)); +void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len)); +int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars)); +void vim_free __ARGS((void *x)); +int vim_stricmp __ARGS((char *s1, char *s2)); +int vim_strnicmp __ARGS((char *s1, char *s2, size_t len)); +char_u *vim_strchr __ARGS((char_u *string, int c)); +char_u *vim_strbyte __ARGS((char_u *string, int c)); +char_u *vim_strrchr __ARGS((char_u *string, int c)); +int vim_isspace __ARGS((int x)); +void ga_clear __ARGS((garray_T *gap)); +void ga_clear_strings __ARGS((garray_T *gap)); +void ga_init __ARGS((garray_T *gap)); +void ga_init2 __ARGS((garray_T *gap, int itemsize, int growsize)); +int ga_grow __ARGS((garray_T *gap, int n)); +void ga_concat __ARGS((garray_T *gap, char_u *s)); +void ga_append __ARGS((garray_T *gap, int c)); +int name_to_mod_mask __ARGS((int c)); +int simplify_key __ARGS((int key, int *modifiers)); +int handle_x_keys __ARGS((int key)); +char_u *get_special_key_name __ARGS((int c, int modifiers)); +int trans_special __ARGS((char_u **srcp, char_u *dst, int keycode)); +int find_special_key __ARGS((char_u **srcp, int *modp, int keycode)); +int extract_modifiers __ARGS((int key, int *modp)); +int find_special_key_in_table __ARGS((int c)); +int get_special_key_code __ARGS((char_u *name)); +char_u *get_key_name __ARGS((int i)); +int get_mouse_button __ARGS((int code, int *is_click, int *is_drag)); +int get_pseudo_mouse_code __ARGS((int button, int is_click, int is_drag)); +int get_fileformat __ARGS((buf_T *buf)); +int get_fileformat_force __ARGS((buf_T *buf, exarg_T *eap)); +void set_fileformat __ARGS((int t, int opt_flags)); +int default_fileformat __ARGS((void)); +int call_shell __ARGS((char_u *cmd, int opt)); +int get_real_state __ARGS((void)); +int after_pathsep __ARGS((char_u *b, char_u *p)); +int same_directory __ARGS((char_u *f1, char_u *f2)); +int vim_chdirfile __ARGS((char_u *fname)); +int illegal_slash __ARGS((char *name)); +char_u *parse_shape_opt __ARGS((int what)); +int get_shape_idx __ARGS((int mouse)); +void update_mouseshape __ARGS((int shape_idx)); +int decrypt_byte __ARGS((void)); +int update_keys __ARGS((int c)); +void crypt_init_keys __ARGS((char_u *passwd)); +char_u *get_crypt_key __ARGS((int store, int twice)); +void *vim_findfile_init __ARGS((char_u *path, char_u *filename, char_u *stopdirs, int level, int free_visited, int need_dir, void *search_ctx, int tagfile, char_u *rel_fname)); +char_u *vim_findfile_stopdir __ARGS((char_u *buf)); +void vim_findfile_cleanup __ARGS((void *ctx)); +char_u *vim_findfile __ARGS((void *search_ctx)); +void vim_findfile_free_visited __ARGS((void *search_ctx)); +char_u *find_file_in_path __ARGS((char_u *ptr, int len, int options, int first, char_u *rel_fname)); +char_u *find_directory_in_path __ARGS((char_u *ptr, int len, int options, char_u *rel_fname)); +char_u *find_file_in_path_option __ARGS((char_u *ptr, int len, int options, int first, char_u *path_option, int need_dir, char_u *rel_fname, char_u *suffixes)); +int vim_chdir __ARGS((char_u *new_dir)); +int get_user_name __ARGS((char_u *buf, int len)); +void sort_strings __ARGS((char_u **files, int count)); +int pathcmp __ARGS((const char *p, const char *q, int maxlen)); +int filewritable __ARGS((char_u *fname)); +int emsg3 __ARGS((char_u *s, char_u *a1, char_u *a2)); +int emsgn __ARGS((char_u *s, long n)); /* vim: set ft=c : */