Mercurial > vim
comparison src/if_perl.xs @ 9353:32e1dfae5664 v7.4.1958
commit https://github.com/vim/vim/commit/eeb50ab5228c5c09743a9c2b907c3634c0146e84
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jun 26 17:19:46 2016 +0200
patch 7.4.1958
Problem: Perl interface preprocessor statements not nicely indented.
Solution: Improve the indenting. (Ken Takata)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 26 Jun 2016 17:30:07 +0200 |
parents | 82cb3ed4781b |
children | fd9727ae3c49 |
comparison
equal
deleted
inserted
replaced
9352:06e4f8536f81 | 9353:32e1dfae5664 |
---|---|
80 * include if_perl.pro and perlsfio.pro when IN_PERL_FILE is defined, because | 80 * include if_perl.pro and perlsfio.pro when IN_PERL_FILE is defined, because |
81 * we need the CV typedef. proto.h can't be moved to after including | 81 * we need the CV typedef. proto.h can't be moved to after including |
82 * if_perl.h, because we get all sorts of name clashes then. | 82 * if_perl.h, because we get all sorts of name clashes then. |
83 */ | 83 */ |
84 #ifndef PROTO | 84 #ifndef PROTO |
85 #ifndef __MINGW32__ | 85 # ifndef __MINGW32__ |
86 # include "proto/if_perl.pro" | 86 # include "proto/if_perl.pro" |
87 # include "proto/if_perlsfio.pro" | 87 # include "proto/if_perlsfio.pro" |
88 #endif | 88 # endif |
89 #endif | 89 #endif |
90 | 90 |
91 /* Perl compatibility stuff. This should ensure compatibility with older | 91 /* Perl compatibility stuff. This should ensure compatibility with older |
92 * versions of Perl. | 92 * versions of Perl. |
93 */ | 93 */ |
94 | 94 |
95 #ifndef PERL_VERSION | 95 #ifndef PERL_VERSION |
96 # include <patchlevel.h> | 96 # include <patchlevel.h> |
97 # define PERL_REVISION 5 | 97 # define PERL_REVISION 5 |
98 # define PERL_VERSION PATCHLEVEL | 98 # define PERL_VERSION PATCHLEVEL |
99 # define PERL_SUBVERSION SUBVERSION | 99 # define PERL_SUBVERSION SUBVERSION |
100 #endif | 100 #endif |
101 | 101 |
102 /* | 102 /* |
103 * Quoting Jan Dubois of Active State: | 103 * Quoting Jan Dubois of Active State: |
104 * ActivePerl build 822 still identifies itself as 5.8.8 but already | 104 * ActivePerl build 822 still identifies itself as 5.8.8 but already |
125 (PERL_VERSION == 10) && (PERL_SUBVERSION >= 1)) | 125 (PERL_VERSION == 10) && (PERL_SUBVERSION >= 1)) |
126 # define PERL5101_OR_LATER | 126 # define PERL5101_OR_LATER |
127 #endif | 127 #endif |
128 | 128 |
129 #ifndef pTHX | 129 #ifndef pTHX |
130 # define pTHX void | 130 # define pTHX void |
131 # define pTHX_ | 131 # define pTHX_ |
132 #endif | 132 #endif |
133 | 133 |
134 #ifndef EXTERN_C | 134 #ifndef EXTERN_C |
135 # define EXTERN_C | 135 # define EXTERN_C |
136 #endif | 136 #endif |
145 /* | 145 /* |
146 * For dynamic linked perl. | 146 * For dynamic linked perl. |
147 */ | 147 */ |
148 #if defined(DYNAMIC_PERL) || defined(PROTO) | 148 #if defined(DYNAMIC_PERL) || defined(PROTO) |
149 | 149 |
150 #ifndef DYNAMIC_PERL /* just generating prototypes */ | 150 # ifndef DYNAMIC_PERL /* just generating prototypes */ |
151 #ifdef WIN3264 | 151 # ifdef WIN3264 |
152 typedef int HANDLE; | 152 typedef int HANDLE; |
153 #endif | 153 # endif |
154 typedef int XSINIT_t; | 154 typedef int XSINIT_t; |
155 typedef int XSUBADDR_t; | 155 typedef int XSUBADDR_t; |
156 #endif | 156 # endif |
157 #ifndef USE_ITHREADS | 157 # ifndef USE_ITHREADS |
158 typedef int perl_key; | 158 typedef int perl_key; |
159 #endif | 159 # endif |
160 | 160 |
161 #ifndef WIN3264 | 161 # ifndef WIN3264 |
162 #include <dlfcn.h> | 162 # include <dlfcn.h> |
163 #define HANDLE void* | 163 # define HANDLE void* |
164 #define PERL_PROC void* | 164 # define PERL_PROC void* |
165 #define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL) | 165 # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL) |
166 #define symbol_from_dll dlsym | 166 # define symbol_from_dll dlsym |
167 #define close_dll dlclose | 167 # define close_dll dlclose |
168 #else | 168 # else |
169 #define PERL_PROC FARPROC | 169 # define PERL_PROC FARPROC |
170 #define load_dll vimLoadLib | 170 # define load_dll vimLoadLib |
171 #define symbol_from_dll GetProcAddress | 171 # define symbol_from_dll GetProcAddress |
172 #define close_dll FreeLibrary | 172 # define close_dll FreeLibrary |
173 #endif | 173 # endif |
174 /* | 174 /* |
175 * Wrapper defines | 175 * Wrapper defines |
176 */ | 176 */ |
177 # define perl_alloc dll_perl_alloc | 177 # define perl_alloc dll_perl_alloc |
178 # define perl_construct dll_perl_construct | 178 # define perl_construct dll_perl_construct |
231 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 231 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
232 # define Perl_sv_catpvn_flags dll_Perl_sv_catpvn_flags | 232 # define Perl_sv_catpvn_flags dll_Perl_sv_catpvn_flags |
233 # else | 233 # else |
234 # define Perl_sv_catpvn dll_Perl_sv_catpvn | 234 # define Perl_sv_catpvn dll_Perl_sv_catpvn |
235 # endif | 235 # endif |
236 #ifdef PERL589_OR_LATER | 236 # ifdef PERL589_OR_LATER |
237 # define Perl_sv_2iv_flags dll_Perl_sv_2iv_flags | 237 # define Perl_sv_2iv_flags dll_Perl_sv_2iv_flags |
238 # define Perl_newXS_flags dll_Perl_newXS_flags | 238 # define Perl_newXS_flags dll_Perl_newXS_flags |
239 #endif | 239 # endif |
240 # define Perl_sv_free dll_Perl_sv_free | 240 # define Perl_sv_free dll_Perl_sv_free |
241 # if (PERL_REVISION == 5) && (PERL_VERSION >= 10) | 241 # if (PERL_REVISION == 5) && (PERL_VERSION >= 10) |
242 # define Perl_sv_free2 dll_Perl_sv_free2 | 242 # define Perl_sv_free2 dll_Perl_sv_free2 |
243 # endif | 243 # endif |
244 # define Perl_sv_isa dll_Perl_sv_isa | 244 # define Perl_sv_isa dll_Perl_sv_isa |
320 static void (*perl_free)(PerlInterpreter*); | 320 static void (*perl_free)(PerlInterpreter*); |
321 static int (*perl_run)(PerlInterpreter*); | 321 static int (*perl_run)(PerlInterpreter*); |
322 static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**); | 322 static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**); |
323 static void* (*Perl_get_context)(void); | 323 static void* (*Perl_get_context)(void); |
324 static void (*Perl_croak)(pTHX_ const char*, ...) __attribute__noreturn__; | 324 static void (*Perl_croak)(pTHX_ const char*, ...) __attribute__noreturn__; |
325 #ifdef PERL5101_OR_LATER | 325 # ifdef PERL5101_OR_LATER |
326 /* Perl-5.18 has a different Perl_croak_xs_usage signature. */ | 326 /* Perl-5.18 has a different Perl_croak_xs_usage signature. */ |
327 # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) | 327 # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) |
328 static void (*Perl_croak_xs_usage)(const CV *const, const char *const params) | 328 static void (*Perl_croak_xs_usage)(const CV *const, const char *const params) |
329 __attribute__noreturn__; | 329 __attribute__noreturn__; |
330 # else | 330 # else |
331 static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params) | 331 static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params) |
332 __attribute__noreturn__; | 332 __attribute__noreturn__; |
333 # endif | 333 # endif |
334 #endif | 334 # endif |
335 static void (*Perl_croak_nocontext)(const char*, ...) __attribute__noreturn__; | 335 static void (*Perl_croak_nocontext)(const char*, ...) __attribute__noreturn__; |
336 static I32 (*Perl_dowantarray)(pTHX); | 336 static I32 (*Perl_dowantarray)(pTHX); |
337 static void (*Perl_free_tmps)(pTHX); | 337 static void (*Perl_free_tmps)(pTHX); |
338 static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32); | 338 static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32); |
339 #if (PERL_REVISION == 5) && (PERL_VERSION >= 22) | 339 # if (PERL_REVISION == 5) && (PERL_VERSION >= 22) |
340 static I32* (*Perl_markstack_grow)(pTHX); | 340 static I32* (*Perl_markstack_grow)(pTHX); |
341 #else | 341 # else |
342 static void (*Perl_markstack_grow)(pTHX); | 342 static void (*Perl_markstack_grow)(pTHX); |
343 #endif | 343 # endif |
344 static MAGIC* (*Perl_mg_find)(pTHX_ SV*, int); | 344 static MAGIC* (*Perl_mg_find)(pTHX_ SV*, int); |
345 static CV* (*Perl_newXS)(pTHX_ char*, XSUBADDR_t, char*); | 345 static CV* (*Perl_newXS)(pTHX_ char*, XSUBADDR_t, char*); |
346 static SV* (*Perl_newSV)(pTHX_ STRLEN); | 346 static SV* (*Perl_newSV)(pTHX_ STRLEN); |
347 static SV* (*Perl_newSViv)(pTHX_ IV); | 347 static SV* (*Perl_newSViv)(pTHX_ IV); |
348 static SV* (*Perl_newSVpv)(pTHX_ const char*, STRLEN); | 348 static SV* (*Perl_newSVpv)(pTHX_ const char*, STRLEN); |
353 static SV* (*Perl_eval_pv)(pTHX_ const char*, I32); | 353 static SV* (*Perl_eval_pv)(pTHX_ const char*, I32); |
354 static SV* (*Perl_call_method)(pTHX_ const char*, I32); | 354 static SV* (*Perl_call_method)(pTHX_ const char*, I32); |
355 static void (*Perl_pop_scope)(pTHX); | 355 static void (*Perl_pop_scope)(pTHX); |
356 static void (*Perl_push_scope)(pTHX); | 356 static void (*Perl_push_scope)(pTHX); |
357 static void (*Perl_save_int)(pTHX_ int*); | 357 static void (*Perl_save_int)(pTHX_ int*); |
358 #if (PERL_REVISION == 5) && (PERL_VERSION >= 20) | 358 # if (PERL_REVISION == 5) && (PERL_VERSION >= 20) |
359 static void (*Perl_save_strlen)(pTHX_ STRLEN* ptr); | 359 static void (*Perl_save_strlen)(pTHX_ STRLEN* ptr); |
360 #endif | 360 # endif |
361 static SV** (*Perl_stack_grow)(pTHX_ SV**, SV**p, int); | 361 static SV** (*Perl_stack_grow)(pTHX_ SV**, SV**p, int); |
362 static SV** (*Perl_set_context)(void*); | 362 static SV** (*Perl_set_context)(void*); |
363 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) | 363 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) |
364 static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32); | 364 static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32); |
365 # if (PERL_REVISION == 5) && (PERL_VERSION < 22) | 365 # if (PERL_REVISION == 5) && (PERL_VERSION < 22) |
366 static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len); | 366 static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len); |
367 # endif | 367 # endif |
368 #else | 368 # else |
369 static bool (*Perl_sv_2bool)(pTHX_ SV*); | 369 static bool (*Perl_sv_2bool)(pTHX_ SV*); |
370 #endif | 370 # endif |
371 static IV (*Perl_sv_2iv)(pTHX_ SV*); | 371 static IV (*Perl_sv_2iv)(pTHX_ SV*); |
372 static SV* (*Perl_sv_2mortal)(pTHX_ SV*); | 372 static SV* (*Perl_sv_2mortal)(pTHX_ SV*); |
373 #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 373 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
374 static char* (*Perl_sv_2pv_flags)(pTHX_ SV*, STRLEN*, I32); | 374 static char* (*Perl_sv_2pv_flags)(pTHX_ SV*, STRLEN*, I32); |
375 static char* (*Perl_sv_2pv_nolen)(pTHX_ SV*); | 375 static char* (*Perl_sv_2pv_nolen)(pTHX_ SV*); |
376 #else | 376 # else |
377 static char* (*Perl_sv_2pv)(pTHX_ SV*, STRLEN*); | 377 static char* (*Perl_sv_2pv)(pTHX_ SV*, STRLEN*); |
378 #endif | 378 # endif |
379 static SV* (*Perl_sv_bless)(pTHX_ SV*, HV*); | 379 static SV* (*Perl_sv_bless)(pTHX_ SV*, HV*); |
380 #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 380 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
381 static void (*Perl_sv_catpvn_flags)(pTHX_ SV* , const char*, STRLEN, I32); | 381 static void (*Perl_sv_catpvn_flags)(pTHX_ SV* , const char*, STRLEN, I32); |
382 #else | 382 # else |
383 static void (*Perl_sv_catpvn)(pTHX_ SV*, const char*, STRLEN); | 383 static void (*Perl_sv_catpvn)(pTHX_ SV*, const char*, STRLEN); |
384 #endif | 384 # endif |
385 #ifdef PERL589_OR_LATER | 385 # ifdef PERL589_OR_LATER |
386 static IV (*Perl_sv_2iv_flags)(pTHX_ SV* sv, I32 flags); | 386 static IV (*Perl_sv_2iv_flags)(pTHX_ SV* sv, I32 flags); |
387 static CV * (*Perl_newXS_flags)(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags); | 387 static CV * (*Perl_newXS_flags)(pTHX_ const char *name, XSUBADDR_t subaddr, const char *const filename, const char *const proto, U32 flags); |
388 #endif | 388 # endif |
389 static void (*Perl_sv_free)(pTHX_ SV*); | 389 static void (*Perl_sv_free)(pTHX_ SV*); |
390 static int (*Perl_sv_isa)(pTHX_ SV*, const char*); | 390 static int (*Perl_sv_isa)(pTHX_ SV*, const char*); |
391 static void (*Perl_sv_magic)(pTHX_ SV*, SV*, int, const char*, I32); | 391 static void (*Perl_sv_magic)(pTHX_ SV*, SV*, int, const char*, I32); |
392 static void (*Perl_sv_setiv)(pTHX_ SV*, IV); | 392 static void (*Perl_sv_setiv)(pTHX_ SV*, IV); |
393 static void (*Perl_sv_setpv)(pTHX_ SV*, const char*); | 393 static void (*Perl_sv_setpv)(pTHX_ SV*, const char*); |
394 static void (*Perl_sv_setpvn)(pTHX_ SV*, const char*, STRLEN); | 394 static void (*Perl_sv_setpvn)(pTHX_ SV*, const char*, STRLEN); |
395 #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 395 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
396 static void (*Perl_sv_setsv_flags)(pTHX_ SV*, SV*, I32); | 396 static void (*Perl_sv_setsv_flags)(pTHX_ SV*, SV*, I32); |
397 #else | 397 # else |
398 static void (*Perl_sv_setsv)(pTHX_ SV*, SV*); | 398 static void (*Perl_sv_setsv)(pTHX_ SV*, SV*); |
399 #endif | 399 # endif |
400 static bool (*Perl_sv_upgrade)(pTHX_ SV*, U32); | 400 static bool (*Perl_sv_upgrade)(pTHX_ SV*, U32); |
401 #if (PERL_REVISION == 5) && (PERL_VERSION < 10) | 401 # if (PERL_REVISION == 5) && (PERL_VERSION < 10) |
402 static SV*** (*Perl_Tstack_sp_ptr)(register PerlInterpreter*); | 402 static SV*** (*Perl_Tstack_sp_ptr)(register PerlInterpreter*); |
403 static OP** (*Perl_Top_ptr)(register PerlInterpreter*); | 403 static OP** (*Perl_Top_ptr)(register PerlInterpreter*); |
404 static SV*** (*Perl_Tstack_base_ptr)(register PerlInterpreter*); | 404 static SV*** (*Perl_Tstack_base_ptr)(register PerlInterpreter*); |
405 static SV*** (*Perl_Tstack_max_ptr)(register PerlInterpreter*); | 405 static SV*** (*Perl_Tstack_max_ptr)(register PerlInterpreter*); |
406 static I32* (*Perl_Ttmps_ix_ptr)(register PerlInterpreter*); | 406 static I32* (*Perl_Ttmps_ix_ptr)(register PerlInterpreter*); |
408 static I32** (*Perl_Tmarkstack_ptr_ptr)(register PerlInterpreter*); | 408 static I32** (*Perl_Tmarkstack_ptr_ptr)(register PerlInterpreter*); |
409 static I32** (*Perl_Tmarkstack_max_ptr)(register PerlInterpreter*); | 409 static I32** (*Perl_Tmarkstack_max_ptr)(register PerlInterpreter*); |
410 static SV** (*Perl_TSv_ptr)(register PerlInterpreter*); | 410 static SV** (*Perl_TSv_ptr)(register PerlInterpreter*); |
411 static XPV** (*Perl_TXpv_ptr)(register PerlInterpreter*); | 411 static XPV** (*Perl_TXpv_ptr)(register PerlInterpreter*); |
412 static STRLEN* (*Perl_Tna_ptr)(register PerlInterpreter*); | 412 static STRLEN* (*Perl_Tna_ptr)(register PerlInterpreter*); |
413 #else | 413 # else |
414 /* Perl-5.18 has a different Perl_sv_free2 signature. */ | 414 /* Perl-5.18 has a different Perl_sv_free2 signature. */ |
415 # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) | 415 # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) |
416 static void (*Perl_sv_free2)(pTHX_ SV*, const U32); | 416 static void (*Perl_sv_free2)(pTHX_ SV*, const U32); |
417 # else | 417 # else |
418 static void (*Perl_sv_free2)(pTHX_ SV*); | 418 static void (*Perl_sv_free2)(pTHX_ SV*); |
419 # endif | 419 # endif |
420 static void (*Perl_sys_init)(int* argc, char*** argv); | 420 static void (*Perl_sys_init)(int* argc, char*** argv); |
421 static void (*Perl_sys_term)(void); | 421 static void (*Perl_sys_term)(void); |
422 static void (*Perl_call_list)(pTHX_ I32, AV*); | 422 static void (*Perl_call_list)(pTHX_ I32, AV*); |
423 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) | 423 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) |
424 # else | 424 # else |
425 static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); | 425 static SV** (*Perl_ISv_ptr)(register PerlInterpreter*); |
426 static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); | 426 static SV*** (*Perl_Istack_max_ptr)(register PerlInterpreter*); |
427 static SV*** (*Perl_Istack_base_ptr)(register PerlInterpreter*); | 427 static SV*** (*Perl_Istack_base_ptr)(register PerlInterpreter*); |
428 static XPV** (*Perl_IXpv_ptr)(register PerlInterpreter*); | 428 static XPV** (*Perl_IXpv_ptr)(register PerlInterpreter*); |
429 static I32* (*Perl_Itmps_ix_ptr)(register PerlInterpreter*); | 429 static I32* (*Perl_Itmps_ix_ptr)(register PerlInterpreter*); |
433 static I32** (*Perl_Imarkstack_max_ptr)(register PerlInterpreter*); | 433 static I32** (*Perl_Imarkstack_max_ptr)(register PerlInterpreter*); |
434 static SV*** (*Perl_Istack_sp_ptr)(register PerlInterpreter*); | 434 static SV*** (*Perl_Istack_sp_ptr)(register PerlInterpreter*); |
435 static OP** (*Perl_Iop_ptr)(register PerlInterpreter*); | 435 static OP** (*Perl_Iop_ptr)(register PerlInterpreter*); |
436 static I32* (*Perl_Iscopestack_ix_ptr)(register PerlInterpreter*); | 436 static I32* (*Perl_Iscopestack_ix_ptr)(register PerlInterpreter*); |
437 static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*); | 437 static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*); |
438 # endif | 438 # endif |
439 #endif | 439 # endif |
440 #if (PERL_REVISION == 5) && (PERL_VERSION >= 22) | 440 # if (PERL_REVISION == 5) && (PERL_VERSION >= 22) |
441 static I32 (*Perl_xs_handshake)(const U32, void *, const char *, ...); | 441 static I32 (*Perl_xs_handshake)(const U32, void *, const char *, ...); |
442 static void (*Perl_xs_boot_epilog)(pTHX_ const U32); | 442 static void (*Perl_xs_boot_epilog)(pTHX_ const U32); |
443 #endif | 443 # endif |
444 | 444 |
445 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) | 445 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) |
446 # ifdef USE_ITHREADS | 446 # ifdef USE_ITHREADS |
447 static perl_key* dll_PL_thr_key; | 447 static perl_key* dll_PL_thr_key; |
448 # endif | 448 # endif |
449 #else | 449 # else |
450 static GV** (*Perl_Idefgv_ptr)(register PerlInterpreter*); | 450 static GV** (*Perl_Idefgv_ptr)(register PerlInterpreter*); |
451 static GV** (*Perl_Ierrgv_ptr)(register PerlInterpreter*); | 451 static GV** (*Perl_Ierrgv_ptr)(register PerlInterpreter*); |
452 static SV* (*Perl_Isv_yes_ptr)(register PerlInterpreter*); | 452 static SV* (*Perl_Isv_yes_ptr)(register PerlInterpreter*); |
453 static perl_key* (*Perl_Gthr_key_ptr)_((pTHX)); | 453 static perl_key* (*Perl_Gthr_key_ptr)_((pTHX)); |
454 #endif | 454 # endif |
455 static void (*boot_DynaLoader)_((pTHX_ CV*)); | 455 static void (*boot_DynaLoader)_((pTHX_ CV*)); |
456 static HE * (*Perl_hv_iternext_flags)(pTHX_ HV *, I32); | 456 static HE * (*Perl_hv_iternext_flags)(pTHX_ HV *, I32); |
457 static I32 (*Perl_hv_iterinit)(pTHX_ HV *); | 457 static I32 (*Perl_hv_iterinit)(pTHX_ HV *); |
458 static char * (*Perl_hv_iterkey)(pTHX_ HE *, I32 *); | 458 static char * (*Perl_hv_iterkey)(pTHX_ HE *, I32 *); |
459 static SV * (*Perl_hv_iterval)(pTHX_ HV *, HE *); | 459 static SV * (*Perl_hv_iterval)(pTHX_ HV *, HE *); |
460 static SV** (*Perl_av_fetch)(pTHX_ AV *, SSize_t, I32); | 460 static SV** (*Perl_av_fetch)(pTHX_ AV *, SSize_t, I32); |
461 static SSize_t (*Perl_av_len)(pTHX_ AV *); | 461 static SSize_t (*Perl_av_len)(pTHX_ AV *); |
462 static NV (*Perl_sv_2nv_flags)(pTHX_ SV *const, const I32); | 462 static NV (*Perl_sv_2nv_flags)(pTHX_ SV *const, const I32); |
463 #if defined(PERLIO_LAYERS) && !defined(USE_SFIO) | 463 # if defined(PERLIO_LAYERS) && !defined(USE_SFIO) |
464 static IV (*PerlIOBase_pushed)(pTHX_ PerlIO *, const char *, SV *, PerlIO_funcs *); | 464 static IV (*PerlIOBase_pushed)(pTHX_ PerlIO *, const char *, SV *, PerlIO_funcs *); |
465 static void (*PerlIO_define_layer)(pTHX_ PerlIO_funcs *); | 465 static void (*PerlIO_define_layer)(pTHX_ PerlIO_funcs *); |
466 #endif | 466 # endif |
467 #if (PERL_REVISION == 5) && (PERL_VERSION >= 24) | 467 # if (PERL_REVISION == 5) && (PERL_VERSION >= 24) |
468 static void (*Perl_savetmps)(pTHX); | 468 static void (*Perl_savetmps)(pTHX); |
469 #endif | 469 # endif |
470 | 470 |
471 /* | 471 /* |
472 * Table of name to function pointer of perl. | 472 * Table of name to function pointer of perl. |
473 */ | 473 */ |
474 static struct { | 474 static struct { |
481 {"perl_free", (PERL_PROC*)&perl_free}, | 481 {"perl_free", (PERL_PROC*)&perl_free}, |
482 {"perl_run", (PERL_PROC*)&perl_run}, | 482 {"perl_run", (PERL_PROC*)&perl_run}, |
483 {"perl_parse", (PERL_PROC*)&perl_parse}, | 483 {"perl_parse", (PERL_PROC*)&perl_parse}, |
484 {"Perl_get_context", (PERL_PROC*)&Perl_get_context}, | 484 {"Perl_get_context", (PERL_PROC*)&Perl_get_context}, |
485 {"Perl_croak", (PERL_PROC*)&Perl_croak}, | 485 {"Perl_croak", (PERL_PROC*)&Perl_croak}, |
486 #ifdef PERL5101_OR_LATER | 486 # ifdef PERL5101_OR_LATER |
487 {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage}, | 487 {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage}, |
488 #endif | 488 # endif |
489 #ifdef PERL_IMPLICIT_CONTEXT | 489 # ifdef PERL_IMPLICIT_CONTEXT |
490 {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext}, | 490 {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext}, |
491 #endif | 491 # endif |
492 {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray}, | 492 {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray}, |
493 {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps}, | 493 {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps}, |
494 {"Perl_gv_stashpv", (PERL_PROC*)&Perl_gv_stashpv}, | 494 {"Perl_gv_stashpv", (PERL_PROC*)&Perl_gv_stashpv}, |
495 {"Perl_markstack_grow", (PERL_PROC*)&Perl_markstack_grow}, | 495 {"Perl_markstack_grow", (PERL_PROC*)&Perl_markstack_grow}, |
496 {"Perl_mg_find", (PERL_PROC*)&Perl_mg_find}, | 496 {"Perl_mg_find", (PERL_PROC*)&Perl_mg_find}, |
505 {"Perl_eval_pv", (PERL_PROC*)&Perl_eval_pv}, | 505 {"Perl_eval_pv", (PERL_PROC*)&Perl_eval_pv}, |
506 {"Perl_call_method", (PERL_PROC*)&Perl_call_method}, | 506 {"Perl_call_method", (PERL_PROC*)&Perl_call_method}, |
507 {"Perl_pop_scope", (PERL_PROC*)&Perl_pop_scope}, | 507 {"Perl_pop_scope", (PERL_PROC*)&Perl_pop_scope}, |
508 {"Perl_push_scope", (PERL_PROC*)&Perl_push_scope}, | 508 {"Perl_push_scope", (PERL_PROC*)&Perl_push_scope}, |
509 {"Perl_save_int", (PERL_PROC*)&Perl_save_int}, | 509 {"Perl_save_int", (PERL_PROC*)&Perl_save_int}, |
510 #if (PERL_REVISION == 5) && (PERL_VERSION >= 20) | 510 # if (PERL_REVISION == 5) && (PERL_VERSION >= 20) |
511 {"Perl_save_strlen", (PERL_PROC*)&Perl_save_strlen}, | 511 {"Perl_save_strlen", (PERL_PROC*)&Perl_save_strlen}, |
512 #endif | 512 # endif |
513 {"Perl_stack_grow", (PERL_PROC*)&Perl_stack_grow}, | 513 {"Perl_stack_grow", (PERL_PROC*)&Perl_stack_grow}, |
514 {"Perl_set_context", (PERL_PROC*)&Perl_set_context}, | 514 {"Perl_set_context", (PERL_PROC*)&Perl_set_context}, |
515 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) | 515 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) |
516 {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags}, | 516 {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags}, |
517 # if (PERL_REVISION == 5) && (PERL_VERSION < 22) | 517 # if (PERL_REVISION == 5) && (PERL_VERSION < 22) |
518 {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck}, | 518 {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck}, |
519 # endif | 519 # endif |
520 #else | 520 # else |
521 {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool}, | 521 {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool}, |
522 #endif | 522 # endif |
523 {"Perl_sv_2iv", (PERL_PROC*)&Perl_sv_2iv}, | 523 {"Perl_sv_2iv", (PERL_PROC*)&Perl_sv_2iv}, |
524 {"Perl_sv_2mortal", (PERL_PROC*)&Perl_sv_2mortal}, | 524 {"Perl_sv_2mortal", (PERL_PROC*)&Perl_sv_2mortal}, |
525 #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 525 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
526 {"Perl_sv_2pv_flags", (PERL_PROC*)&Perl_sv_2pv_flags}, | 526 {"Perl_sv_2pv_flags", (PERL_PROC*)&Perl_sv_2pv_flags}, |
527 {"Perl_sv_2pv_nolen", (PERL_PROC*)&Perl_sv_2pv_nolen}, | 527 {"Perl_sv_2pv_nolen", (PERL_PROC*)&Perl_sv_2pv_nolen}, |
528 #else | 528 # else |
529 {"Perl_sv_2pv", (PERL_PROC*)&Perl_sv_2pv}, | 529 {"Perl_sv_2pv", (PERL_PROC*)&Perl_sv_2pv}, |
530 #endif | 530 # endif |
531 #ifdef PERL589_OR_LATER | 531 # ifdef PERL589_OR_LATER |
532 {"Perl_sv_2iv_flags", (PERL_PROC*)&Perl_sv_2iv_flags}, | 532 {"Perl_sv_2iv_flags", (PERL_PROC*)&Perl_sv_2iv_flags}, |
533 {"Perl_newXS_flags", (PERL_PROC*)&Perl_newXS_flags}, | 533 {"Perl_newXS_flags", (PERL_PROC*)&Perl_newXS_flags}, |
534 #endif | 534 # endif |
535 {"Perl_sv_bless", (PERL_PROC*)&Perl_sv_bless}, | 535 {"Perl_sv_bless", (PERL_PROC*)&Perl_sv_bless}, |
536 #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 536 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
537 {"Perl_sv_catpvn_flags", (PERL_PROC*)&Perl_sv_catpvn_flags}, | 537 {"Perl_sv_catpvn_flags", (PERL_PROC*)&Perl_sv_catpvn_flags}, |
538 #else | 538 # else |
539 {"Perl_sv_catpvn", (PERL_PROC*)&Perl_sv_catpvn}, | 539 {"Perl_sv_catpvn", (PERL_PROC*)&Perl_sv_catpvn}, |
540 #endif | 540 # endif |
541 {"Perl_sv_free", (PERL_PROC*)&Perl_sv_free}, | 541 {"Perl_sv_free", (PERL_PROC*)&Perl_sv_free}, |
542 {"Perl_sv_isa", (PERL_PROC*)&Perl_sv_isa}, | 542 {"Perl_sv_isa", (PERL_PROC*)&Perl_sv_isa}, |
543 {"Perl_sv_magic", (PERL_PROC*)&Perl_sv_magic}, | 543 {"Perl_sv_magic", (PERL_PROC*)&Perl_sv_magic}, |
544 {"Perl_sv_setiv", (PERL_PROC*)&Perl_sv_setiv}, | 544 {"Perl_sv_setiv", (PERL_PROC*)&Perl_sv_setiv}, |
545 {"Perl_sv_setpv", (PERL_PROC*)&Perl_sv_setpv}, | 545 {"Perl_sv_setpv", (PERL_PROC*)&Perl_sv_setpv}, |
546 {"Perl_sv_setpvn", (PERL_PROC*)&Perl_sv_setpvn}, | 546 {"Perl_sv_setpvn", (PERL_PROC*)&Perl_sv_setpvn}, |
547 #if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 547 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
548 {"Perl_sv_setsv_flags", (PERL_PROC*)&Perl_sv_setsv_flags}, | 548 {"Perl_sv_setsv_flags", (PERL_PROC*)&Perl_sv_setsv_flags}, |
549 #else | 549 # else |
550 {"Perl_sv_setsv", (PERL_PROC*)&Perl_sv_setsv}, | 550 {"Perl_sv_setsv", (PERL_PROC*)&Perl_sv_setsv}, |
551 #endif | 551 # endif |
552 {"Perl_sv_upgrade", (PERL_PROC*)&Perl_sv_upgrade}, | 552 {"Perl_sv_upgrade", (PERL_PROC*)&Perl_sv_upgrade}, |
553 #if (PERL_REVISION == 5) && (PERL_VERSION < 10) | 553 # if (PERL_REVISION == 5) && (PERL_VERSION < 10) |
554 {"Perl_Tstack_sp_ptr", (PERL_PROC*)&Perl_Tstack_sp_ptr}, | 554 {"Perl_Tstack_sp_ptr", (PERL_PROC*)&Perl_Tstack_sp_ptr}, |
555 {"Perl_Top_ptr", (PERL_PROC*)&Perl_Top_ptr}, | 555 {"Perl_Top_ptr", (PERL_PROC*)&Perl_Top_ptr}, |
556 {"Perl_Tstack_base_ptr", (PERL_PROC*)&Perl_Tstack_base_ptr}, | 556 {"Perl_Tstack_base_ptr", (PERL_PROC*)&Perl_Tstack_base_ptr}, |
557 {"Perl_Tstack_max_ptr", (PERL_PROC*)&Perl_Tstack_max_ptr}, | 557 {"Perl_Tstack_max_ptr", (PERL_PROC*)&Perl_Tstack_max_ptr}, |
558 {"Perl_Ttmps_ix_ptr", (PERL_PROC*)&Perl_Ttmps_ix_ptr}, | 558 {"Perl_Ttmps_ix_ptr", (PERL_PROC*)&Perl_Ttmps_ix_ptr}, |
560 {"Perl_Tmarkstack_ptr_ptr", (PERL_PROC*)&Perl_Tmarkstack_ptr_ptr}, | 560 {"Perl_Tmarkstack_ptr_ptr", (PERL_PROC*)&Perl_Tmarkstack_ptr_ptr}, |
561 {"Perl_Tmarkstack_max_ptr", (PERL_PROC*)&Perl_Tmarkstack_max_ptr}, | 561 {"Perl_Tmarkstack_max_ptr", (PERL_PROC*)&Perl_Tmarkstack_max_ptr}, |
562 {"Perl_TSv_ptr", (PERL_PROC*)&Perl_TSv_ptr}, | 562 {"Perl_TSv_ptr", (PERL_PROC*)&Perl_TSv_ptr}, |
563 {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr}, | 563 {"Perl_TXpv_ptr", (PERL_PROC*)&Perl_TXpv_ptr}, |
564 {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, | 564 {"Perl_Tna_ptr", (PERL_PROC*)&Perl_Tna_ptr}, |
565 #else | 565 # else |
566 {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, | 566 {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2}, |
567 {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init}, | 567 {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init}, |
568 {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, | 568 {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term}, |
569 {"Perl_call_list", (PERL_PROC*)&Perl_call_list}, | 569 {"Perl_call_list", (PERL_PROC*)&Perl_call_list}, |
570 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) | 570 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) |
571 # else | 571 # else |
572 {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, | 572 {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr}, |
573 {"Perl_Istack_max_ptr", (PERL_PROC*)&Perl_Istack_max_ptr}, | 573 {"Perl_Istack_max_ptr", (PERL_PROC*)&Perl_Istack_max_ptr}, |
574 {"Perl_Istack_base_ptr", (PERL_PROC*)&Perl_Istack_base_ptr}, | 574 {"Perl_Istack_base_ptr", (PERL_PROC*)&Perl_Istack_base_ptr}, |
575 {"Perl_IXpv_ptr", (PERL_PROC*)&Perl_IXpv_ptr}, | 575 {"Perl_IXpv_ptr", (PERL_PROC*)&Perl_IXpv_ptr}, |
576 {"Perl_Itmps_ix_ptr", (PERL_PROC*)&Perl_Itmps_ix_ptr}, | 576 {"Perl_Itmps_ix_ptr", (PERL_PROC*)&Perl_Itmps_ix_ptr}, |
580 {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr}, | 580 {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr}, |
581 {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, | 581 {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr}, |
582 {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr}, | 582 {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr}, |
583 {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr}, | 583 {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr}, |
584 {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr}, | 584 {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr}, |
585 # endif | 585 # endif |
586 #endif | 586 # endif |
587 #if (PERL_REVISION == 5) && (PERL_VERSION >= 22) | 587 # if (PERL_REVISION == 5) && (PERL_VERSION >= 22) |
588 {"Perl_xs_handshake", (PERL_PROC*)&Perl_xs_handshake}, | 588 {"Perl_xs_handshake", (PERL_PROC*)&Perl_xs_handshake}, |
589 {"Perl_xs_boot_epilog", (PERL_PROC*)&Perl_xs_boot_epilog}, | 589 {"Perl_xs_boot_epilog", (PERL_PROC*)&Perl_xs_boot_epilog}, |
590 #endif | 590 # endif |
591 #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) | 591 # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) |
592 # ifdef USE_ITHREADS | 592 # ifdef USE_ITHREADS |
593 {"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key}, | 593 {"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key}, |
594 # endif | 594 # endif |
595 #else | 595 # else |
596 {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr}, | 596 {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr}, |
597 {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr}, | 597 {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr}, |
598 {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr}, | 598 {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr}, |
599 {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr}, | 599 {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr}, |
600 #endif | 600 # endif |
601 {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader}, | 601 {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader}, |
602 {"Perl_hv_iternext_flags", (PERL_PROC*)&Perl_hv_iternext_flags}, | 602 {"Perl_hv_iternext_flags", (PERL_PROC*)&Perl_hv_iternext_flags}, |
603 {"Perl_hv_iterinit", (PERL_PROC*)&Perl_hv_iterinit}, | 603 {"Perl_hv_iterinit", (PERL_PROC*)&Perl_hv_iterinit}, |
604 {"Perl_hv_iterkey", (PERL_PROC*)&Perl_hv_iterkey}, | 604 {"Perl_hv_iterkey", (PERL_PROC*)&Perl_hv_iterkey}, |
605 {"Perl_hv_iterval", (PERL_PROC*)&Perl_hv_iterval}, | 605 {"Perl_hv_iterval", (PERL_PROC*)&Perl_hv_iterval}, |
606 {"Perl_av_fetch", (PERL_PROC*)&Perl_av_fetch}, | 606 {"Perl_av_fetch", (PERL_PROC*)&Perl_av_fetch}, |
607 {"Perl_av_len", (PERL_PROC*)&Perl_av_len}, | 607 {"Perl_av_len", (PERL_PROC*)&Perl_av_len}, |
608 {"Perl_sv_2nv_flags", (PERL_PROC*)&Perl_sv_2nv_flags}, | 608 {"Perl_sv_2nv_flags", (PERL_PROC*)&Perl_sv_2nv_flags}, |
609 #if defined(PERLIO_LAYERS) && !defined(USE_SFIO) | 609 # if defined(PERLIO_LAYERS) && !defined(USE_SFIO) |
610 {"PerlIOBase_pushed", (PERL_PROC*)&PerlIOBase_pushed}, | 610 {"PerlIOBase_pushed", (PERL_PROC*)&PerlIOBase_pushed}, |
611 {"PerlIO_define_layer", (PERL_PROC*)&PerlIO_define_layer}, | 611 {"PerlIO_define_layer", (PERL_PROC*)&PerlIO_define_layer}, |
612 #endif | 612 # endif |
613 #if (PERL_REVISION == 5) && (PERL_VERSION >= 24) | 613 # if (PERL_REVISION == 5) && (PERL_VERSION >= 24) |
614 {"Perl_savetmps", (PERL_PROC*)&Perl_savetmps}, | 614 {"Perl_savetmps", (PERL_PROC*)&Perl_savetmps}, |
615 #endif | 615 # endif |
616 {"", NULL}, | 616 {"", NULL}, |
617 }; | 617 }; |
618 | 618 |
619 /* Work around for perl-5.18. | 619 /* Work around for perl-5.18. |
620 * For now, only the definitions of S_SvREFCNT_dec are needed in | 620 * For now, only the definitions of S_SvREFCNT_dec are needed in |
621 * "perl\lib\CORE\inline.h". */ | 621 * "perl\lib\CORE\inline.h". */ |
622 #if (PERL_REVISION == 5) && (PERL_VERSION >= 18) | 622 # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) |
623 static void | 623 static void |
624 S_SvREFCNT_dec(pTHX_ SV *sv) | 624 S_SvREFCNT_dec(pTHX_ SV *sv) |
625 { | 625 { |
626 if (LIKELY(sv != NULL)) { | 626 if (LIKELY(sv != NULL)) { |
627 U32 rc = SvREFCNT(sv); | 627 U32 rc = SvREFCNT(sv); |
629 SvREFCNT(sv) = rc - 1; | 629 SvREFCNT(sv) = rc - 1; |
630 else | 630 else |
631 Perl_sv_free2(aTHX_ sv, rc); | 631 Perl_sv_free2(aTHX_ sv, rc); |
632 } | 632 } |
633 } | 633 } |
634 #endif | 634 # endif |
635 | 635 |
636 /* | 636 /* |
637 * Make all runtime-links of perl. | 637 * Make all runtime-links of perl. |
638 * | 638 * |
639 * 1. Get module handle using dlopen() or vimLoadLib(). | 639 * 1. Get module handle using dlopen() or vimLoadLib(). |
844 #ifndef PROTO | 844 #ifndef PROTO |
845 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) | 845 # if (PERL_REVISION == 5) && (PERL_VERSION >= 8) |
846 I32 cur_val(pTHX_ IV iv, SV *sv); | 846 I32 cur_val(pTHX_ IV iv, SV *sv); |
847 # else | 847 # else |
848 I32 cur_val(IV iv, SV *sv); | 848 I32 cur_val(IV iv, SV *sv); |
849 #endif | 849 # endif |
850 | 850 |
851 /* | 851 /* |
852 * Handler for the magic variables $main::curwin and $main::curbuf. | 852 * Handler for the magic variables $main::curwin and $main::curbuf. |
853 * The handler is put into the magic vtbl for these variables. | 853 * The handler is put into the magic vtbl for these variables. |
854 * (This is effectively a C-level equivalent of a tied variable). | 854 * (This is effectively a C-level equivalent of a tied variable). |