summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2007-05-06 14:25:46 +0000
committerBram Moolenaar <Bram@vim.org>2007-05-06 14:25:46 +0000
commit6b803a739fdf489c9dc2f91ea97a90efe053043a (patch)
tree83492546db16a1a5440d71caedeb029c7ecb8009
parent17e79197d5c2834cbe1c7b33f3770fe30f220ba9 (diff)
downloadvim-6b803a739fdf489c9dc2f91ea97a90efe053043a.zip
updated for version 7.1a
-rw-r--r--runtime/doc/quickfix.txt31
-rw-r--r--src/memline.c20
-rw-r--r--src/proto/misc2.pro196
3 files changed, 132 insertions, 115 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 7759f1895..d0be37e38 100644
--- 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 @@ lists, use ":cnewer 99" first.
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: >
diff --git a/src/memline.c b/src/memline.c
index cd39e0617..5015f4926 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -2570,7 +2570,7 @@ ml_append_int(buf, lnum, line, len, newfile, mark)
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);
}
diff --git a/src/proto/misc2.pro b/src/proto/misc2.pro
index 64637db13..195b895fd 100644
--- 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 : */