Mercurial > vim
comparison src/normal.c @ 344:7033303ea0c0 v7.0089
updated for version 7.0089
author | vimboss |
---|---|
date | Tue, 21 Jun 2005 22:37:39 +0000 |
parents | 03b3684919e3 |
children | d2bc505a6d91 |
comparison
equal
deleted
inserted
replaced
343:607cff4bc0cb | 344:7033303ea0c0 |
---|---|
79 static void nv_clear __ARGS((cmdarg_T *cap)); | 79 static void nv_clear __ARGS((cmdarg_T *cap)); |
80 static void nv_ctrlo __ARGS((cmdarg_T *cap)); | 80 static void nv_ctrlo __ARGS((cmdarg_T *cap)); |
81 static void nv_hat __ARGS((cmdarg_T *cap)); | 81 static void nv_hat __ARGS((cmdarg_T *cap)); |
82 static void nv_Zet __ARGS((cmdarg_T *cap)); | 82 static void nv_Zet __ARGS((cmdarg_T *cap)); |
83 static void nv_ident __ARGS((cmdarg_T *cap)); | 83 static void nv_ident __ARGS((cmdarg_T *cap)); |
84 #ifdef FEAT_VISUAL | |
85 static int get_visual_text __ARGS((cmdarg_T *cap, char_u **pp, int *lenp)); | |
86 #endif | |
87 static void nv_tagpop __ARGS((cmdarg_T *cap)); | 84 static void nv_tagpop __ARGS((cmdarg_T *cap)); |
88 static void nv_scroll __ARGS((cmdarg_T *cap)); | 85 static void nv_scroll __ARGS((cmdarg_T *cap)); |
89 static void nv_right __ARGS((cmdarg_T *cap)); | 86 static void nv_right __ARGS((cmdarg_T *cap)); |
90 static void nv_left __ARGS((cmdarg_T *cap)); | 87 static void nv_left __ARGS((cmdarg_T *cap)); |
91 static void nv_up __ARGS((cmdarg_T *cap)); | 88 static void nv_up __ARGS((cmdarg_T *cap)); |
5165 do_cmdline_cmd(buf); | 5162 do_cmdline_cmd(buf); |
5166 | 5163 |
5167 vim_free(buf); | 5164 vim_free(buf); |
5168 } | 5165 } |
5169 | 5166 |
5170 #ifdef FEAT_VISUAL | 5167 #if defined(FEAT_VISUAL) || defined(PROTO) |
5171 /* | 5168 /* |
5172 * Get visually selected text, within one line only. | 5169 * Get visually selected text, within one line only. |
5173 * Returns FAIL if more than one line selected. | 5170 * Returns FAIL if more than one line selected. |
5174 */ | 5171 */ |
5175 static int | 5172 int |
5176 get_visual_text(cap, pp, lenp) | 5173 get_visual_text(cap, pp, lenp) |
5177 cmdarg_T *cap; | 5174 cmdarg_T *cap; |
5178 char_u **pp; /* return: start of selected text */ | 5175 char_u **pp; /* return: start of selected text */ |
5179 int *lenp; /* return: length of selected text */ | 5176 int *lenp; /* return: length of selected text */ |
5180 { | 5177 { |
5181 if (VIsual_mode != 'V') | 5178 if (VIsual_mode != 'V') |
5182 unadjust_for_sel(); | 5179 unadjust_for_sel(); |
5183 if (VIsual.lnum != curwin->w_cursor.lnum) | 5180 if (VIsual.lnum != curwin->w_cursor.lnum) |
5184 { | 5181 { |
5185 clearopbeep(cap->oap); | 5182 if (cap != NULL) |
5183 clearopbeep(cap->oap); | |
5186 return FAIL; | 5184 return FAIL; |
5187 } | 5185 } |
5188 if (VIsual_mode == 'V') | 5186 if (VIsual_mode == 'V') |
5189 { | 5187 { |
5190 *pp = ml_get_curline(); | 5188 *pp = ml_get_curline(); |
5590 clearopbeep(cap->oap); | 5588 clearopbeep(cap->oap); |
5591 return; | 5589 return; |
5592 } | 5590 } |
5593 #endif | 5591 #endif |
5594 | 5592 |
5595 # ifdef FEAT_VISUAL | 5593 ptr = grab_file_name(cap->count1); |
5596 /* | |
5597 * In Visual mode, use the selected text as a file name. | |
5598 * Don't allow selection across multiple lines. | |
5599 */ | |
5600 if (VIsual_active) | |
5601 { | |
5602 int len; | |
5603 | |
5604 if (get_visual_text(cap, &ptr, &len) == FAIL) | |
5605 return; | |
5606 ptr = find_file_name_in_path(ptr, len, | |
5607 FNAME_MESS|FNAME_EXP|FNAME_REL, cap->count1, curbuf->b_ffname); | |
5608 } | |
5609 else | |
5610 # endif | |
5611 ptr = file_name_at_cursor(FNAME_MESS|FNAME_HYP|FNAME_EXP|FNAME_REL, | |
5612 cap->count1); | |
5613 | 5594 |
5614 if (ptr != NULL) | 5595 if (ptr != NULL) |
5615 { | 5596 { |
5616 /* do autowrite if necessary */ | 5597 /* do autowrite if necessary */ |
5617 if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) | 5598 if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) |