1919 * 1..9 = registers '1' to '9', for deletes
2020 * 10..35 = registers 'a' to 'z' ('A' to 'Z' for appending)
2121 * 36 = delete register '-'
22- * 37 = custom register '&'
22+ * 37 = custom register '&'. Only if FEAT_EVAL is defined
2323 *
2424 * 38 = Selection register '*'. Only if FEAT_CLIPBOARD defined
2525 * 39 = Clipboard register '+'. Only if FEAT_CLIPBOARD and FEAT_X11
@@ -31,8 +31,10 @@ static yankreg_T *y_current; // ptr to current yankreg
3131static int y_append ; // TRUE when appending
3232static yankreg_T * y_previous = NULL ; // ptr to last written yankreg
3333
34+ #ifdef FEAT_EVAL
3435static callback_T rrf_cb ; // 'regreqfunc'
3536static callback_T rsf_cb ; // 'regsetfunc'
37+ #endif
3638
3739static int stuff_yank (int , char_u * );
3840static void put_reedit_in_typebuf (int silent );
@@ -42,8 +44,10 @@ static int yank_copy_line(struct block_def *bd, long y_idx, int exclude_trailing
4244static void copy_yank_reg (yankreg_T * reg );
4345#endif
4446static void dis_msg (char_u * p , int skip_esc );
47+ #ifdef FEAT_EVAL
4548static void call_regreqfunc (void );
4649static void call_regsetfunc (void );
50+ #endif
4751
4852#if defined(FEAT_VIMINFO )
4953 yankreg_T *
@@ -197,7 +201,9 @@ valid_yank_reg(
197201 || regname == '"'
198202 || regname == '-'
199203 || regname == '_'
204+ #ifdef FEAT_EVAL
200205 || regname == '&'
206+ #endif
201207#ifdef FEAT_CLIPBOARD
202208 || regname == '*'
203209 || regname == '+'
@@ -254,8 +260,10 @@ get_yank_register(int regname, int writing)
254260 }
255261 else if (regname == '-' )
256262 i = DELETION_REGISTER ;
263+ #ifdef FEAT_EVAL
257264 else if (regname == '& ')
258265 i = CUSTOM_REGISTER ;
266+ #endif
259267#ifdef FEAT_CLIPBOARD
260268 // When selection is not available, use register 0 instead of '*'
261269 else if (clip_star .available && regname == '* ')
@@ -1447,7 +1455,7 @@ op_yank(oparg_T *oap, int deleting, int mess)
14471455
14481456#ifdef FEAT_EVAL
14491457 // Call custom register set function if is custom register
1450- if (curr == get_y_register ( CUSTOM_REGISTER ) )
1458+ if (curr == & y_regs [ CUSTOM_REGISTER ] )
14511459 call_regsetfunc ();
14521460#endif
14531461
@@ -1578,7 +1586,10 @@ do_put(
15781586 (void )may_get_selection (regname );
15791587#endif
15801588
1581- call_regreqfunc ();
1589+ #ifdef FEAT_EVAL
1590+ if (regname == '&' )
1591+ call_regreqfunc ();
1592+ #endif
15821593
15831594 curbuf -> b_op_start = curwin -> w_cursor ; // default for '[ mark
15841595 curbuf -> b_op_end = curwin -> w_cursor ; // default for '] mark
@@ -2365,8 +2376,10 @@ get_register_name(int num)
23652376 return num + '0' ;
23662377 else if (num == DELETION_REGISTER )
23672378 return '-' ;
2379+ #ifdef FEAT_EVAL
23682380 else if (num == CUSTOM_REGISTER )
23692381 return '&' ;
2382+ #endif
23702383#ifdef FEAT_CLIPBOARD
23712384 else if (num == STAR_REGISTER )
23722385 return '*' ;
@@ -2710,7 +2723,8 @@ get_reg_contents(int regname, int flags)
27102723# endif
27112724
27122725#ifdef FEAT_EVAL
2713- call_regreqfunc ();
2726+ if (regname == '&' )
2727+ call_regreqfunc ();
27142728#endif
27152729
27162730 if (get_spec_reg (regname , & retval , & allocated , FALSE))
@@ -2987,7 +3001,7 @@ call_regreqfunc(void)
29873001 // like a normal one.
29883002 if (rrf_cb .cb_name == NULL )
29893003 return ;
2990-
3004+
29913005 argvars [0 ].v_type = VAR_UNKNOWN ;
29923006
29933007 textlock ++ ;
@@ -3071,7 +3085,7 @@ call_regreqfunc(void)
30713085 && get_yank_type (& reg_type , & yank_type , & block_len ) == FAIL )
30723086 goto free_lstval ;
30733087
3074- y_current = get_y_register ( CUSTOM_REGISTER ) ;
3088+ y_current = & y_regs [ CUSTOM_REGISTER ] ;
30753089 old_y_current = y_current ;
30763090
30773091 free_yank_all ();
@@ -3109,7 +3123,7 @@ call_regsetfunc(void)
31093123{
31103124 typval_T rettv ;
31113125 typval_T argvars [3 ];
3112- yankreg_T * y_ptr = get_y_register ( CUSTOM_REGISTER ) ;
3126+ yankreg_T * y_ptr = & y_regs [ CUSTOM_REGISTER ] ;
31133127 char_u type [2 + NUMBUFLEN ] = {0 };
31143128 list_T * list = NULL ;
31153129
@@ -3354,7 +3368,7 @@ str_to_reg(
33543368# endif
33553369
33563370#ifdef FEAT_EVAL
3357- if (y_ptr == get_y_register ( CUSTOM_REGISTER ) )
3371+ if (y_ptr == & y_regs [ CUSTOM_REGISTER ] )
33583372 call_regsetfunc ();
33593373#endif
33603374}
0 commit comments