diff --git a/moo/Makefile.in b/moo/Makefile.in index c9581d0..f882b14 100644 --- a/moo/Makefile.in +++ b/moo/Makefile.in @@ -354,6 +354,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -584,7 +585,7 @@ distdir: $(DISTFILES) ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir @@ -610,7 +611,7 @@ dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir @@ -628,7 +629,7 @@ dist dist-all: distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -638,7 +639,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac diff --git a/moo/configure b/moo/configure index 2b57a09..256edbd 100755 --- a/moo/configure +++ b/moo/configure @@ -786,6 +786,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -881,6 +882,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1133,6 +1135,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1270,7 +1281,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1423,6 +1434,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] diff --git a/moo/lib/Makefile.in b/moo/lib/Makefile.in index feb0364..4fd345d 100644 --- a/moo/lib/Makefile.in +++ b/moo/lib/Makefile.in @@ -397,6 +397,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ diff --git a/moo/lib/moo.c b/moo/lib/moo.c index fda753e..772035f 100644 --- a/moo/lib/moo.c +++ b/moo/lib/moo.c @@ -337,6 +337,10 @@ int moo_setoption (moo_t* moo, moo_option_t id, const void* value) moo->option.dfl_procstk_size = *(moo_oow_t*)value; return 0; } + + case MOO_MOD_INCTX: + moo->option.mod_inctx = *(void**)value; + return 0; } einval: @@ -371,6 +375,10 @@ int moo_getoption (moo_t* moo, moo_option_t id, void* value) case MOO_PROCSTK_SIZE: *(moo_oow_t*)value = moo->option.dfl_procstk_size; return 0; + + case MOO_MOD_INCTX: + *(void**)value = moo->option.mod_inctx; + return 0; }; moo_seterrnum (moo, MOO_EINVAL); @@ -535,6 +543,7 @@ moo_mod_data_t* moo_openmod (moo_t* moo, const moo_ooch_t* name, moo_oow_t namel /* found the module in the staic module table */ MOO_MEMSET (&md, 0, MOO_SIZEOF(md)); + md.mod.inctx = moo->option.mod_inctx; moo_copy_oochars ((moo_ooch_t*)md.mod.name, name, namelen); /* Note md.handle is MOO_NULL for a static module */ @@ -579,6 +588,7 @@ moo_mod_data_t* moo_openmod (moo_t* moo, const moo_ooch_t* name, moo_oow_t namel /* attempt to find a dynamic external module */ MOO_MEMSET (&md, 0, MOO_SIZEOF(md)); + md.mod.inctx = moo->option.mod_inctx; moo_copy_oochars ((moo_ooch_t*)md.mod.name, name, namelen); if (moo->vmprim.dl_open && moo->vmprim.dl_getsym && moo->vmprim.dl_close) { diff --git a/moo/lib/moo.h b/moo/lib/moo.h index ef44477..858e487 100644 --- a/moo/lib/moo.h +++ b/moo/lib/moo.h @@ -95,7 +95,8 @@ enum moo_option_t MOO_LOG_MAXCAPA, MOO_SYMTAB_SIZE, /* default system table size */ MOO_SYSDIC_SIZE, /* default system dictionary size */ - MOO_PROCSTK_SIZE /* default process stack size */ + MOO_PROCSTK_SIZE, /* default process stack size */ + MOO_MOD_INCTX }; typedef enum moo_option_t moo_option_t; @@ -1111,8 +1112,9 @@ typedef void (*moo_mod_gc_t) ( struct moo_mod_t { /* input */ - /*const*/ moo_ooch_t name[MOO_MOD_NAME_LEN_MAX + 1]; - /*const*/ int hints; /* bitwised-ORed of moo_mod_hint_t enumerators */ + moo_ooch_t name[MOO_MOD_NAME_LEN_MAX + 1]; + void* inctx; + unsigned int hints; /* bitwised-ORed of moo_mod_hint_t enumerators */ /* user-defined data */ moo_mod_import_t import; @@ -1193,6 +1195,8 @@ struct moo_t moo_oow_t dfl_sysdic_size; moo_oow_t dfl_procstk_size; + void* mod_inctx; + #if defined(MOO_BUILD_DEBUG) /* set automatically when trait is set */ moo_oow_t karatsuba_cutoff; diff --git a/moo/mod/Makefile.in b/moo/mod/Makefile.in index 5f11861..f792e57 100644 --- a/moo/mod/Makefile.in +++ b/moo/mod/Makefile.in @@ -423,6 +423,7 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@