Instead of #include-ing the C file, compile it normally.
h5 = utf8.h warnings.h
h = $(h1) $(h2) $(h3) $(h4) $(h5)
-c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
+c1 = av.c scope.c op.c doop.c doio.c dquote.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c
c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c
-obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT)
+obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dquote$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT)
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) perl$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
dl) ;;
doio) ;;
doop) ;;
+ dquote) ;;
dump) ;;
globals) ;;
gv) ;;
doio.c I/O operations
doop.c Support code for various operations
dosish.h Some defines for MS/DOSish machines
+dquote.c Functions for double quotish contexts
dquote_inline.h Inline functions for double quotish contexts
-dquote_static.c Static functions for double quotish contexts
dump.c Debugging output
ebcdic_tables.h Generated tables included in utfebcdic.h
embed.fnc Database used by embed.pl
c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
-c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c
+c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c dquote.c
c5 = $(mallocsrc)
c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c opmini.c perlmini.c
obj0mini = perlmini$(OBJ_EXT) opmini$(OBJ_EXT) miniperlmain$(OBJ_EXT)
obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT) keywords$(OBJ_EXT)
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
-obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT)
+obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT) dquote$(OBJ_EXT)
minindt_obj = $(obj0mini) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
mini_obj = $(minindt_obj) $(MINIDTRACE_O)
all: microperl
-O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udump$(_O) \
+O = uav$(_O) udeb$(_O) udoio$(_O) udoop$(_O) udquote$(_O) udump$(_O) \
uglobals$(_O) ugv$(_O) uhv$(_O) umro$(_O)\
umg$(_O) uperlmain$(_O) uop$(_O) ureentr$(_O) \
upad$(_O) uperl$(_O) uperlio$(_O) uperly$(_O) upp$(_O) \
udoop$(_O): $(HE) doop.c
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) doop.c
+udquote$(_O): $(HE) dquote.c regcomp.h regnodes.h
+ $(CC) $(CCFLAGS) -o $@ $(CFLAGS) dquote.c
+
udump$(_O): $(HE) dump.c regcomp.h regnodes.h
$(CC) $(CCFLAGS) -o $@ $(CFLAGS) dump.c
..\deb.c \
..\doio.c \
..\doop.c \
+ ..\dquote.c \
..\dump.c \
..\globals.c \
..\gv.c \
-/* dquote_static.c
+/* dquote.c
*
- * This file contains static functions that are related to
- * parsing double-quotish expressions, but are used in more than
- * one file.
+ * This file contains functions that are related to
+ * parsing double-quotish expressions.
*
- * It is currently #included by regcomp.c and toke.c.
*/
-#define PERL_IN_DQUOTE_STATIC_C
-#include "embed.h"
+#include "EXTERN.h"
+#define PERL_IN_DQUOTE_C
+#include "perl.h"
/* XXX Add documentation after final interface and behavior is decided */
/* May want to show context for error, so would pass S_grok_bslash_c(pTHX_ const char* current, const char* start, const bool output_warning)
U8 source = *current;
*/
-STATIC char
-S_grok_bslash_c(pTHX_ const char source, const bool output_warning)
+char
+Perl_grok_bslash_c(pTHX_ const char source, const bool output_warning)
{
U8 result;
return result;
}
-STATIC bool
-S_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
+bool
+Perl_grok_bslash_o(pTHX_ char **s, UV *uv, const char** error_msg,
const bool output_warning, const bool strict,
const bool silence_non_portable,
const bool UTF)
return TRUE;
}
-STATIC char*
-S_form_short_octal_warning(pTHX_
+char*
+Perl_form_short_octal_warning(pTHX_
const char * const s, /* Points to first non-octal */
const STRLEN len /* Length of octals string, so
(s-len) points to first
ApdR |I32 |looks_like_number|NN SV *const sv
Apd |UV |grok_bin |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EMsR |char |grok_bslash_c |const char source|const bool output_warning
-EMsR |bool |grok_bslash_o |NN char** s|NN UV* uv \
+EMiR |bool |grok_bslash_x |NN char** s|NN UV* uv \
|NN const char** error_msg \
|const bool output_warning \
|const bool strict \
|const bool silence_non_portable \
|const bool utf8
-EMiR |bool |grok_bslash_x |NN char** s|NN UV* uv \
+#endif
+EMpRX |char |grok_bslash_c |const char source|const bool output_warning
+EMpRX |bool |grok_bslash_o |NN char** s|NN UV* uv \
|NN const char** error_msg \
|const bool output_warning \
|const bool strict \
|const bool silence_non_portable \
|const bool utf8
-EMsPR |char*|form_short_octal_warning|NN const char * const s \
+EMpPRX |char*|form_short_octal_warning|NN const char * const s \
|const STRLEN len
-#endif
Apd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
Apd |int |grok_infnan |NN const char** sp|NN const char *send
Apd |int |grok_number |NN const char *pv|STRLEN len|NULLOK UV *valuep
#define av_reify(a) Perl_av_reify(aTHX_ a)
#define current_re_engine() Perl_current_re_engine(aTHX)
#define cv_ckproto_len_flags(a,b,c,d,e) Perl_cv_ckproto_len_flags(aTHX_ a,b,c,d,e)
+#define form_short_octal_warning(a,b) Perl_form_short_octal_warning(aTHX_ a,b)
#define grok_atoUV Perl_grok_atoUV
+#define grok_bslash_c(a,b) Perl_grok_bslash_c(aTHX_ a,b)
+#define grok_bslash_o(a,b,c,d,e,f,g) Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
#define mg_find_mglob(a) Perl_mg_find_mglob(aTHX_ a)
#define multideref_stringify(a,b) Perl_multideref_stringify(aTHX_ a,b)
#define op_clear(a) Perl_op_clear(aTHX_ a)
#define _core_swash_init(a,b,c,d,e,f,g) Perl__core_swash_init(aTHX_ a,b,c,d,e,f,g)
# endif
# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#define form_short_octal_warning(a,b) S_form_short_octal_warning(aTHX_ a,b)
-#define grok_bslash_c(a,b) S_grok_bslash_c(aTHX_ a,b)
-#define grok_bslash_o(a,b,c,d,e,f,g) S_grok_bslash_o(aTHX_ a,b,c,d,e,f,g)
#define grok_bslash_x(a,b,c,d,e,f,g) S_grok_bslash_x(aTHX_ a,b,c,d,e,f,g)
#define regcurly S_regcurly
# endif
sub postamble {
my $regcomp_c = upupfile('regcomp.c');
my $regexec_c = upupfile('regexec.c');
- my $dquote_static_c = upupfile('dquote_static.c');
+ my $dquote_c = upupfile('dquote.c');
my $invlist_inline_h = upupfile('invlist_inline.h');
<<EOF;
- \$(RM_F) re_comp.c
\$(CP) $regcomp_c re_comp.c
-re_comp\$(OBJ_EXT) : re_comp.c dquote_static.c invlist_inline_h
+re_comp\$(OBJ_EXT) : re_comp.c dquote.c invlist_inline_h
re_exec.c : $regexec_c
- \$(RM_F) re_exec.c
re_exec\$(OBJ_EXT) : re_exec.c invlist_inline_h
-dquote_static.c : $dquote_static_c
- - \$(RM_F) dquote_static.c
- \$(CP) $dquote_static_c dquote_static.c
+dquote.c : $dquote_c
+ - \$(RM_F) dquote.c
+ \$(CP) $dquote_c dquote.c
invlist_inline_h : $inline_invlist_c
- \$(RM_F) invlist_inline_h
ext_c = ${ext_xs:%.xs=%.c}
ext_obj = ${ext_xs:%.xs=%.$O}
-obj = av.$O deb.$O doio.$O doop.$O dump.$O globals.$O gv.$O hv.$O locale.$O malloc.$O mathoms.$O mg.$O numeric.$O op.$O pad.$O perlapi.$O perlio.$O perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pack.$O pp_sort.$O pp_sys.$O reentr.$O regcomp.$O regexec.$O run.$O scope.$O sv.$O taint.$O toke.$O universal.$O utf8.$O util.$O
+obj = av.$O deb.$O doio.$O doop.$O dquote.$O dump.$O globals.$O gv.$O hv.$O locale.$O malloc.$O mathoms.$O mg.$O numeric.$O op.$O pad.$O perlapi.$O perlio.$O perly.$O pp.$O pp_ctl.$O pp_hot.$O pp_pack.$O pp_sort.$O pp_sys.$O reentr.$O regcomp.$O regexec.$O run.$O scope.$O sv.$O taint.$O toke.$O universal.$O utf8.$O util.$O
OBJS = perl.$O plan9.$O $obj
#define PERL_ARGS_ASSERT_FORM \
assert(pat)
+PERL_CALLCONV char* Perl_form_short_octal_warning(pTHX_ const char * const s, const STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__pure__
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING \
+ assert(s)
+
PERL_CALLCONV void Perl_free_tied_hv_pool(pTHX);
PERL_CALLCONV void Perl_free_tmps(pTHX);
PERL_CALLCONV AV* Perl_get_av(pTHX_ const char *name, I32 flags)
#define PERL_ARGS_ASSERT_GROK_BIN \
assert(start); assert(len_p); assert(flags)
+PERL_CALLCONV char Perl_grok_bslash_c(pTHX_ const char source, const bool output_warning)
+ __attribute__warn_unused_result__;
+
+PERL_CALLCONV bool Perl_grok_bslash_o(pTHX_ char** s, UV* uv, const char** error_msg, const bool output_warning, const bool strict, const bool silence_non_portable, const bool utf8)
+ __attribute__warn_unused_result__
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_GROK_BSLASH_O \
+ assert(s); assert(uv); assert(error_msg)
+
PERL_CALLCONV UV Perl_grok_hex(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result)
__attribute__nonnull__(pTHX_1)
__attribute__nonnull__(pTHX_2)
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-STATIC char* S_form_short_octal_warning(pTHX_ const char * const s, const STRLEN len)
- __attribute__warn_unused_result__
- __attribute__pure__
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING \
- assert(s)
-
-STATIC char S_grok_bslash_c(pTHX_ const char source, const bool output_warning)
- __attribute__warn_unused_result__;
-
-STATIC bool S_grok_bslash_o(pTHX_ char** s, UV* uv, const char** error_msg, const bool output_warning, const bool strict, const bool silence_non_portable, const bool utf8)
- __attribute__warn_unused_result__
- __attribute__nonnull__(pTHX_1)
- __attribute__nonnull__(pTHX_2)
- __attribute__nonnull__(pTHX_3);
-#define PERL_ARGS_ASSERT_GROK_BSLASH_O \
- assert(s); assert(uv); assert(error_msg)
-
PERL_STATIC_INLINE bool S_grok_bslash_x(pTHX_ char** s, UV* uv, const char** error_msg, const bool output_warning, const bool strict, const bool silence_non_portable, const bool utf8)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)
# include "regcomp.h"
#endif
-#include "dquote_static.c"
#include "dquote_inline.h"
#include "invlist_inline.h"
#include "unicode_constants.h"
#include "EXTERN.h"
#define PERL_IN_TOKE_C
#include "perl.h"
-#include "dquote_static.c"
#include "dquote_inline.h"
#define new_constant(a,b,c,d,e,f,g) \
#### End of system configuration section. ####
-c0 = $(MALLOC_C) av.c caretx.c deb.c doio.c doop.c dump.c globals.c gv.c hv.c mro_core.c
+c0 = $(MALLOC_C) av.c caretx.c deb.c doio.c doop.c dquote.c dump.c globals.c gv.c hv.c mro_core.c
c1 = mg.c locale.c mathoms.c miniperlmain.c numeric.c op.c pad.c perl.c perlapi.c perlio.c
c2 = perly.c pp.c pp_ctl.c pp_hot.c pp_pack.c pp_sort.c pp_sys.c regcomp.c regexec.c reentr.c
c3 = run.c scope.c sv.c taint.c toke.c universal.c utf8.c util.c vms.c keywords.c
c = $(c0) $(c1) $(c2) $(c3)
obj0 = perl$(O)
-obj1 = $(MALLOC_O) av$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dump$(O) mro_core$(O) globals$(O) gv$(O) hv$(O)
+obj1 = $(MALLOC_O) av$(O) caretx$(O) deb$(O) doio$(O) doop$(O) dquote(O) dump$(O) mro_core$(O) globals$(O) gv$(O) hv$(O)
obj2 = keywords$(O) locale$(O) mathoms$(O) mg$(O) miniperlmain$(O) numeric$(O) op$(O) pad$(O) perlapi$(O) perlio$(O)
obj3 = perly$(O) pp$(O) pp_ctl$(O) pp_hot$(O) reentr$(O) pp_pack$(O) pp_sort$(O) pp_sys$(O) regcomp$(O)
obj4 = regexec$(O) run$(O) scope$(O) sv$(O) taint$(O) toke$(O) universal$(O) utf8$(O) util$(O) vms$(O)
$(CC) $(CORECFLAGS) $(MMS$SOURCE)
doop$(O) : doop.c $(h)
$(CC) $(CORECFLAGS) $(MMS$SOURCE)
+dquote$(O) : dquote.c $(h)
+ $(CC) $(CORECFLAGS) $(MMS$SOURCE)
dump$(O) : dump.c $(h)
$(CC) $(CORECFLAGS) $(MMS$SOURCE)
globals$(O) : globals.c $(generated_headers) $(h)
..\deb.c \
..\doio.c \
..\doop.c \
+ ..\dquote.c \
..\dump.c \
..\globals.c \
..\gv.c \
..\deb.c \
..\doio.c \
..\doop.c \
+ ..\dquote.c \
..\dump.c \
..\globals.c \
..\gv.c \
..\deb.c \
..\doio.c \
..\doop.c \
+ ..\dquote.c \
..\dump.c \
..\globals.c \
..\gv.c \
$(DLLDIR)\deb.obj \
$(DLLDIR)\doio.obj \
$(DLLDIR)\doop.obj \
+$(DLLDIR)\dquote.obj \
$(DLLDIR)\dump.obj \
$(DLLDIR)\globals.obj \
$(DLLDIR)\gv.obj \
..\deb.c \
..\doio.c \
..\doop.c \
+ ..\dquote.c \
..\dump.c \
..\globals.c \
..\gv.c \