Files
modules/xref/modules_def.h.src.html
2006-01-18 05:27:50 +00:00

753 lines
43 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- This HTML file generated by cxref (version 1.6a). -->
<!-- cxref program (c) Andrew M. Bishop 1995,96,97,98,99,2000,01,02,03,04,05. -->
<!--
Cxref: cxref -block-comments -verbatim-comments -xref-all -index-all -html-src -Oxref modules_def.h
CPP : cxref-cpp -lang-c -C -dD -dI
-->
<HTML>
<HEAD>
<TITLE>Source File modules_def.h</TITLE>
<LINK rel="stylesheet" href="cxref.css" type="text/css">
</HEAD>
<BODY>
<pre>
<a name="line1">1 |</a> /*****
<a name="line2">2 |</a> ** ** Module Header ******************************************************* **
<a name="line3">3 |</a> ** **
<a name="line4">4 |</a> ** Modules Revision 3.2 **
<a name="line5">5 |</a> ** Providing a flexible user environment **
<a name="line6">6 |</a> ** **
<a name="line7">7 |</a> ** File: modules_def.h **
<a name="line8">8 |</a> ** First Edition: 1991/10/23 **
<a name="line9">9 |</a> ** **
<a name="line10">10 |</a> ** Authors: John Furlan, jlf@behere.com **
<a name="line11">11 |</a> ** Jens Hamisch, jens@Strawberry.COM **
<a name="line12">12 |</a> ** R.K. Owen, rk@owen.sj.ca.us **
<a name="line13">13 |</a> ** **
<a name="line14">14 |</a> ** Description: **
<a name="line15">15 |</a> ** **
<a name="line16">16 |</a> ** Exports: **
<a name="line17">17 |</a> ** **
<a name="line18">18 |</a> ** Notes: **
<a name="line19">19 |</a> ** **
<a name="line20">20 |</a> ** ************************************************************************ **
<a name="line21">21 |</a> ****/
<a name="line22">22 |</a>
<a name="line23">23 |</a> /** ** Copyright *********************************************************** **
<a name="line24">24 |</a> ** **
<a name="line25">25 |</a> ** Copyright 1991-1994 by John L. Furlan. **
<a name="line26">26 |</a> ** see LICENSE.GPL, which must be provided, for details **
<a name="line27">27 |</a> ** **
<a name="line28">28 |</a> ** ************************************************************************ **/
<a name="line29">29 |</a>
<a name="line30">30 |</a> #ifndef _MODULES_DEF_H
<a name="line31">31 |</a> #define _MODULES_DEF_H
<a name="line32">32 |</a>
<a name="line33">33 |</a> /** ************************************************************************ **/
<a name="line34">34 |</a> /** HEADERS **/
<a name="line35">35 |</a> /** ************************************************************************ **/
<a name="line36">36 |</a>
<a name="line37">37 |</a> #include &lt;stdio.h&gt;
<a name="line38">38 |</a> #include &lt;stdarg.h&gt;
<a name="line39">39 |</a> #include &lt;tcl.h&gt;
<a name="line40">40 |</a> #include "config.h"
<a name="line41">41 |</a>
<a name="line42">42 |</a> #ifndef CONST84
<a name="line43">43 |</a> # define CONST84 /* const */
<a name="line44">44 |</a> #endif
<a name="line45">45 |</a>
<a name="line46">46 |</a> #ifndef HAVE_STDINT_H
<a name="line47">47 |</a> /* assume 32 bit - hope for the best */
<a name="line48">48 |</a> typedef int intptr_h;
<a name="line49">49 |</a> #endif
<a name="line50">50 |</a>
<a name="line51">51 |</a> #ifdef HAVE_STDLIB_H
<a name="line52">52 |</a> # include &lt;stdlib.h&gt;
<a name="line53">53 |</a> #endif
<a name="line54">54 |</a>
<a name="line55">55 |</a> #if STDC_HEADERS || HAVE_STRING_H
<a name="line56">56 |</a> # include &lt;string.h&gt;
<a name="line57">57 |</a> /**
<a name="line58">58 |</a> ** An ANSI string.h and pre-ANSI memory.h might conflict.
<a name="line59">59 |</a> **/
<a name="line60">60 |</a> # if !STDC_HEADERS &amp;&amp; HAVE_MEMORY_H
<a name="line61">61 |</a> # include &lt;memory.h&gt;
<a name="line62">62 |</a> # endif /** not STDC_HEADERS and HAVE_MEMORY_H **/
<a name="line63">63 |</a> #else /** not STDC_HEADERS and not HAVE_STRING_H **/
<a name="line64">64 |</a> # include &lt;strings.h&gt;
<a name="line65">65 |</a> /**
<a name="line66">66 |</a> ** memory.h and strings.h conflict on some systems.
<a name="line67">67 |</a> **/
<a name="line68">68 |</a> #endif /** not STDC_HEADERS and not HAVE_STRING_H **/
<a name="line69">69 |</a>
<a name="line70">70 |</a> #ifdef HAVE_UNISTD_H
<a name="line71">71 |</a> # include &lt;unistd.h&gt;
<a name="line72">72 |</a> # include &lt;sys/types.h&gt;
<a name="line73">73 |</a> #endif
<a name="line74">74 |</a>
<a name="line75">75 |</a> #ifdef HAVE_CTYPE_H
<a name="line76">76 |</a> # include &lt;ctype.h&gt;
<a name="line77">77 |</a> #endif
<a name="line78">78 |</a>
<a name="line79">79 |</a> #ifdef HAVE_SYS_MODE_H
<a name="line80">80 |</a> /* #include &lt;sys/mode.h&gt; */
<a name="line81">81 |</a> #endif
<a name="line82">82 |</a>
<a name="line83">83 |</a> #ifdef HAVE_SYS_STAT_H
<a name="line84">84 |</a> # include &lt;sys/stat.h&gt;
<a name="line85">85 |</a> #endif
<a name="line86">86 |</a>
<a name="line87">87 |</a> #ifdef HAVE_SYS_TERMIOS_H
<a name="line88">88 |</a> # include &lt;sys/termios.h&gt;
<a name="line89">89 |</a> #else
<a name="line90">90 |</a> # ifdef HAVE_TERMIO_H
<a name="line91">91 |</a> # include &lt;termio.h&gt;
<a name="line92">92 |</a> # endif
<a name="line93">93 |</a> #endif
<a name="line94">94 |</a>
<a name="line95">95 |</a> #ifdef HAVE_FCNTL_H
<a name="line96">96 |</a> # include &lt;fcntl.h&gt;
<a name="line97">97 |</a> #endif
<a name="line98">98 |</a>
<a name="line99">99 |</a> #if !defined(TIOCGWINSZ) &amp;&amp; defined(HAVE_SYS_IOCTL_H)
<a name="line100">100 |</a> # include &lt;sys/ioctl.h&gt;
<a name="line101">101 |</a> #endif
<a name="line102">102 |</a>
<a name="line103">103 |</a> #if defined(DIRENT) || defined(_POSIX_VERSION)
<a name="line104">104 |</a> # include &lt;dirent.h&gt;
<a name="line105">105 |</a> # define NLENGTH(dirent) (strlen((dirent)-&gt;d_name))
<a name="line106">106 |</a> #else /** not (DIRENT or _POSIX_VERSION) **/
<a name="line107">107 |</a> # define dirent direct
<a name="line108">108 |</a> # define NLENGTH(dirent) ((dirent)-&gt;d_namlen)
<a name="line109">109 |</a> # ifdef SYSNDIR
<a name="line110">110 |</a> # include &lt;sys/ndir.h&gt;
<a name="line111">111 |</a> # endif /** SYSNDIR **/
<a name="line112">112 |</a> # ifdef SYSDIR
<a name="line113">113 |</a> # include &lt;sys/dir.h&gt;
<a name="line114">114 |</a> # endif /** SYSDIR **/
<a name="line115">115 |</a> # ifdef NDIR
<a name="line116">116 |</a> # include &lt;ndir.h&gt;
<a name="line117">117 |</a> # endif /** NDIR **/
<a name="line118">118 |</a> #endif /** not (DIRENT or _POSIX_VERSION) **/
<a name="line119">119 |</a>
<a name="line120">120 |</a> #ifdef HAVE_ERRNO_H
<a name="line121">121 |</a> # include &lt;errno.h&gt;
<a name="line122">122 |</a> #else
<a name="line123">123 |</a> extern int errno;
<a name="line124">124 |</a> #endif
<a name="line125">125 |</a>
<a name="line126">126 |</a> /** ************************************************************************ **/
<a name="line127">127 |</a> /** LOCAL DATATYPES **/
<a name="line128">128 |</a> /** ************************************************************************ **/
<a name="line129">129 |</a>
<a name="line130">130 |</a> /**
<a name="line131">131 |</a> ** Structure to store information about a file. Includes its name
<a name="line132">132 |</a> ** and the structure to store information from the stat system call.
<a name="line133">133 |</a> **/
<a name="line134">134 |</a>
<a name="line135">135 |</a> typedef struct _file_entry {
<a name="line136">136 |</a> char* fi_prefix;
<a name="line137">137 |</a> char* fi_name;
<a name="line138">138 |</a> struct stat fi_stats;
<a name="line139">139 |</a> int fi_listcount;
<a name="line140">140 |</a> struct _file_entry* fi_subdir;
<a name="line141">141 |</a> } fi_ent;
<a name="line142">142 |</a>
<a name="line143">143 |</a> /**
<a name="line144">144 |</a> ** Error handling
<a name="line145">145 |</a> **/
<a name="line146">146 |</a>
<a name="line147">147 |</a> typedef enum {
<a name="line148">148 |</a> NO_ERR = 0, /** No error **/
<a name="line149">149 |</a> NO_ERR_DEBUG, /** Debugging **/
<a name="line150">150 |</a> NO_ERR_START, /** Start logging **/
<a name="line151">151 |</a> NO_ERR_END, /** End logging **/
<a name="line152">152 |</a> NO_ERR_VERBOSE, /** Verbose messages **/
<a name="line153">153 |</a> ERR_PARAM = 10, /** Parameter error **/
<a name="line154">154 |</a> ERR_USAGE, /** Usage information **/
<a name="line155">155 |</a> ERR_ARGSTOLONG, /** Arguments to long **/
<a name="line156">156 |</a> ERR_OPT_AMBIG = 40, /** Option is ambiguous **/
<a name="line157">157 |</a> ERR_OPT_NOARG, /** Option allows no argument **/
<a name="line158">158 |</a> ERR_OPT_REQARG, /** Option requires an argument **/
<a name="line159">159 |</a> ERR_OPT_UNKNOWN, /** Unrecognized option **/
<a name="line160">160 |</a> ERR_OPT_ILL, /** Illegal option **/
<a name="line161">161 |</a> ERR_OPT_INV, /** Invalid option **/
<a name="line162">162 |</a> ERR_USERLVL, /** Unknown userlevel **/
<a name="line163">163 |</a> ERR_GETOPT, /** getopt() failed **/
<a name="line164">164 |</a> ERR_OPEN = 50, /** Error opening file **/
<a name="line165">165 |</a> ERR_POPEN, /** Error opening pipe **/
<a name="line166">166 |</a> ERR_OPENDIR, /** Error opening directory **/
<a name="line167">167 |</a> ERR_CLOSE, /** Error when closing a file **/
<a name="line168">168 |</a> ERR_PCLOSE, /** Error when closing a pipe **/
<a name="line169">169 |</a> ERR_CLOSEDIR, /** Error when closing a directory **/
<a name="line170">170 |</a> ERR_READ, /** Error when reading from a file **/
<a name="line171">171 |</a> ERR_READDIR, /** Error when reading directory **/
<a name="line172">172 |</a> ERR_WRITE, /** Error when writing to a file **/
<a name="line173">173 |</a> ERR_SEEK, /** Seek error **/
<a name="line174">174 |</a> ERR_FLUSH, /** Flush error **/
<a name="line175">175 |</a> ERR_DUP, /** File duplication error **/
<a name="line176">176 |</a> ERR_DIRNAME, /** Cannot build directory name **/
<a name="line177">177 |</a> ERR_NAMETOLONG, /** Directory name to long **/
<a name="line178">178 |</a> ERR_DIRNOTFOUND, /** Directory not found **/
<a name="line179">179 |</a> ERR_FILEINDIR, /** File not in directory **/
<a name="line180">180 |</a> ERR_NODIR, /** Not a directory **/
<a name="line181">181 |</a> ERR_UNLINK, /** Cannot unlink file **/
<a name="line182">182 |</a> ERR_RENAME, /** Cannot rename file **/
<a name="line183">183 |</a> ERR_ALLOC = 70, /** Out of memory **/
<a name="line184">184 |</a> ERR_SOURCE, /** Error while sourcing ... **/
<a name="line185">185 |</a> ERR_UNAME, /** Uname failed **/
<a name="line186">186 |</a> ERR_GETHOSTNAME, /** gethostname failed **/
<a name="line187">187 |</a> ERR_GETDOMAINNAME, /** getdomainname failed **/
<a name="line188">188 |</a> ERR_STRING, /** string error **/
<a name="line189">189 |</a> ERR_DISPLAY = 90, /** cannot open display **/
<a name="line190">190 |</a> ERR_IN_MODULEFILE = 100, /** modulefile related errors **/
<a name="line191">191 |</a> ERR_PARSE, /** Parse error (modulefile) **/
<a name="line192">192 |</a> ERR_EXEC, /** Execution error (modulefile) **/
<a name="line193">193 |</a> ERR_EXTRACT, /** Cannot extract X11 ressources **/
<a name="line194">194 |</a> ERR_COMMAND, /** Unrecognized command **/
<a name="line195">195 |</a> ERR_LOCATE, /** Module file not found **/
<a name="line196">196 |</a> ERR_MAGIC, /** Bad magic number **/
<a name="line197">197 |</a> ERR_MODULE_PATH, /** Module path not set **/
<a name="line198">198 |</a> ERR_HOME, /** Home not set **/
<a name="line199">199 |</a> ERR_SHELL, /** Unknown shell type **/
<a name="line200">200 |</a> ERR_DERELICT, /** Unknown shell derelict **/
<a name="line201">201 |</a> ERR_CONFLICT = 150, /** Module file conflicts **/
<a name="line202">202 |</a> ERR_PREREQ, /** Module file prerequirements **/
<a name="line203">203 |</a> ERR_NOTLOADED, /** Module file is currently not l. **/
<a name="line204">204 |</a> ERR_DUP_SYMVERS, /** Duplicate symbolic version **/
<a name="line205">205 |</a> ERR_SYMLOOP, /** Loop in symbol version def. **/
<a name="line206">206 |</a> ERR_BADMODNAM, /** Bad modulename in version, alias **/
<a name="line207">207 |</a> ERR_DUP_ALIAS, /** Duplicate alias **/
<a name="line208">208 |</a> ERR_CACHE_INVAL, /** Invalid cache version **/
<a name="line209">209 |</a> ERR_CACHE_LOAD, /** Cannot load cache properly **/
<a name="line210">210 |</a> ERR_BEGINENV, /** No update if no .modulesbeginenv **/
<a name="line211">211 |</a> ERR_BEGINENVX, /** No MODULESBEGINENV env.var. **/
<a name="line212">212 |</a> ERR_INIT_TCL, /** Cannot initialize TCL **/
<a name="line213">213 |</a> ERR_INIT_TCLX, /** Cannot initialize extended TCL **/
<a name="line214">214 |</a> ERR_INIT_ALPATH, /** Cannot set up autoload path **/
<a name="line215">215 |</a> ERR_INIT_STUP, /** No 'module load in the shellstups**/
<a name="line216">216 |</a> ERR_SET_VAR, /** Cannot set TCL variable **/
<a name="line217">217 |</a> ERR_INFO_DESCR, /** Unrecognized module info descr. **/
<a name="line218">218 |</a> ERR_INVWGHT_WARN, /** Invalid error weight **/
<a name="line219">219 |</a> ERR_INVFAC_WARN, /** Invalid error facility **/
<a name="line220">220 |</a> ERR_COLON, /** Colon in tracing pattern **/
<a name="line221">221 |</a> ERR_INTERNAL = 990, /** Error logger internal error **/
<a name="line222">222 |</a> ERR_INTERAL, /** Alias module internal error **/
<a name="line223">223 |</a> ERR_INTERRL, /** Error logger internal error **/
<a name="line224">224 |</a> ERR_INVAL, /** Invalid parameter to the error **/
<a name="line225">225 |</a> ERR_INVWGHT, /** logger **/
<a name="line226">226 |</a> ERR_INVFAC, /** Invalid error facility **/
<a name="line227">227 |</a> ERR_ENVVAR, /** env. variables are inconsistent **/
<a name="line228">228 |</a> } ErrType;
<a name="line229">229 |</a>
<a name="line230">230 |</a> /**
<a name="line231">231 |</a> ** Error return values. Only OK, PROBLEM and ERROR will be returned to the
<a name="line232">232 |</a> ** caller, In case of the remaining, the error handler takes control over the
<a name="line233">233 |</a> ** whole application.
<a name="line234">234 |</a> **/
<a name="line235">235 |</a>
<a name="line236">236 |</a> typedef enum {
<a name="line237">237 |</a> OK = 0, /** Everything's up and running **/
<a name="line238">238 |</a> WARN = 2, /** A warning (mapped to OK by the **/
<a name="line239">239 |</a> /** Errorlogger **/
<a name="line240">240 |</a> PROBLEM = 5, /** Problem ... program might cont. **/
<a name="line241">241 |</a> ERROR = 7, /** Error .. try gracefull aborting **/
<a name="line242">242 |</a> FATAL = 10, /** The following will lead to the **/
<a name="line243">243 |</a> PANIC = 20 /** progrm being aborted by the er- **/
<a name="line244">244 |</a> /** ror logger immediatelly **/
<a name="line245">245 |</a> } ErrCode;
<a name="line246">246 |</a>
<a name="line247">247 |</a> /** ************************************************************************ **/
<a name="line248">248 |</a> /** CONSTANTS **/
<a name="line249">249 |</a> /** ************************************************************************ **/
<a name="line250">250 |</a>
<a name="line251">251 |</a> #define MODULES_MAGIC_COOKIE "#%Module"
<a name="line252">252 |</a> #define MODULES_MAGIC_COOKIE_LENGTH 8
<a name="line253">253 |</a>
<a name="line254">254 |</a> /**
<a name="line255">255 |</a> ** User level
<a name="line256">256 |</a> **/
<a name="line257">257 |</a>
<a name="line258">258 |</a> #define UL_NOVICE 0
<a name="line259">259 |</a> #define UL_ADVANCED 64
<a name="line260">260 |</a> #define UL_EXPERT 128
<a name="line261">261 |</a>
<a name="line262">262 |</a> /**
<a name="line263">263 |</a> ** Debugging
<a name="line264">264 |</a> **/
<a name="line265">265 |</a>
<a name="line266">266 |</a> #define WITHOUT_DEBUGGING !defined( WITH_DEBUG_INFO)
<a name="line267">267 |</a> #define WITH_DEBUGGING defined( WITH_DEBUG_INFO)
<a name="line268">268 |</a> #define WITH_DEBUGGING_MODULECMD (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 0)
<a name="line269">269 |</a> #define WITH_DEBUGGING_MODULECMD_1 (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 1)
<a name="line270">270 |</a> #define WITH_DEBUGGING_INIT (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 10)
<a name="line271">271 |</a> #define WITH_DEBUGGING_CALLBACK (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 20)
<a name="line272">272 |</a> #define WITH_DEBUGGING_CALLBACK_1 (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 21)
<a name="line273">273 |</a> #define WITH_DEBUGGING_LOCATE (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 30)
<a name="line274">274 |</a> #define WITH_DEBUGGING_LOCATE_1 (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 31)
<a name="line275">275 |</a> #define WITH_DEBUGGING_UTIL (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 40)
<a name="line276">276 |</a> #define WITH_DEBUGGING_UTIL_1 (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 41)
<a name="line277">277 |</a> #define WITH_DEBUGGING_UTIL_2 (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 42)
<a name="line278">278 |</a> #define WITH_DEBUGGING_UTIL_3 (WITH_DEBUGGING &amp;&amp; WITH_DEBUG_INFO &gt; 43)
<a name="line279">279 |</a>
<a name="line280">280 |</a> /**
<a name="line281">281 |</a> ** Default error log facilities
<a name="line282">282 |</a> **/
<a name="line283">283 |</a>
<a name="line284">284 |</a> #ifdef WITH_LOG_FACILITY_VERBOSE
<a name="line285">285 |</a> # define DEF_FACILITY_VERBOSE WITH_LOG_FACILITY_VERBOSE
<a name="line286">286 |</a> #else
<a name="line287">287 |</a> # define DEF_FACILITY_VERBOSE _stderr
<a name="line288">288 |</a> #endif
<a name="line289">289 |</a>
<a name="line290">290 |</a> #ifdef WITH_LOG_FACILITY_INFO
<a name="line291">291 |</a> # define DEF_FACILITY_INFO WITH_LOG_FACILITY_INFO
<a name="line292">292 |</a> #else
<a name="line293">293 |</a> # define DEF_FACILITY_INFO _stderr
<a name="line294">294 |</a> #endif
<a name="line295">295 |</a>
<a name="line296">296 |</a> #ifdef WITH_LOG_FACILITY_DEBUG
<a name="line297">297 |</a> # define DEF_FACILITY_DEBUG WITH_LOG_FACILITY_DEBUG
<a name="line298">298 |</a> #else
<a name="line299">299 |</a> # define DEF_FACILITY_DEBUG NULL
<a name="line300">300 |</a> #endif
<a name="line301">301 |</a>
<a name="line302">302 |</a> #ifdef WITH_LOG_FACILITY_TRACE
<a name="line303">303 |</a> # define DEF_FACILITY_TRACE WITH_LOG_FACILITY_TRACE
<a name="line304">304 |</a> #else
<a name="line305">305 |</a> # define DEF_FACILITY_TRACE NULL
<a name="line306">306 |</a> #endif
<a name="line307">307 |</a>
<a name="line308">308 |</a> #ifdef WITH_LOG_FACILITY_WARN
<a name="line309">309 |</a> # define DEF_FACILITY_WARN WITH_LOG_FACILITY_WARN
<a name="line310">310 |</a> #else
<a name="line311">311 |</a> # define DEF_FACILITY_WARN _stderr
<a name="line312">312 |</a> #endif
<a name="line313">313 |</a>
<a name="line314">314 |</a> #ifdef WITH_LOG_FACILITY_PROB
<a name="line315">315 |</a> # define DEF_FACILITY_PROB WITH_LOG_FACILITY_PROB
<a name="line316">316 |</a> #else
<a name="line317">317 |</a> # define DEF_FACILITY_PROB _stderr
<a name="line318">318 |</a> #endif
<a name="line319">319 |</a>
<a name="line320">320 |</a> #ifdef WITH_LOG_FACILITY_ERROR
<a name="line321">321 |</a> # define DEF_FACILITY_ERROR WITH_LOG_FACILITY_ERROR
<a name="line322">322 |</a> #else
<a name="line323">323 |</a> # define DEF_FACILITY_ERROR _stderr
<a name="line324">324 |</a> #endif
<a name="line325">325 |</a>
<a name="line326">326 |</a> #ifdef WITH_LOG_FACILITY_FATAL
<a name="line327">327 |</a> # define DEF_FACILITY_FATAL WITH_LOG_FACILITY_FATAL
<a name="line328">328 |</a> #else
<a name="line329">329 |</a> # define DEF_FACILITY_FATAL _stderr
<a name="line330">330 |</a> #endif
<a name="line331">331 |</a>
<a name="line332">332 |</a> #ifdef WITH_LOG_FACILITY_PANIC
<a name="line333">333 |</a> # define DEF_FACILITY_PANIC WITH_LOG_FACILITY_PANIC
<a name="line334">334 |</a> #else
<a name="line335">335 |</a> # define DEF_FACILITY_PANIC _stderr
<a name="line336">336 |</a> #endif
<a name="line337">337 |</a>
<a name="line338">338 |</a> /**
<a name="line339">339 |</a> ** g_flags values
<a name="line340">340 |</a> **/
<a name="line341">341 |</a>
<a name="line342">342 |</a> #define M_REMOVE 0x0001
<a name="line343">343 |</a> #define M_DISPLAY 0x0002
<a name="line344">344 |</a> #define M_SWSTATE1 0x0004
<a name="line345">345 |</a> #define M_SWSTATE2 0x0008
<a name="line346">346 |</a> #define M_SWSTATE3 0x0010
<a name="line347">347 |</a> #define M_SWITCH ( M_SWSTATE1 | M_SWSTATE2 | M_SWSTATE3)
<a name="line348">348 |</a> #define M_LOAD 0x0020
<a name="line349">349 |</a> #define M_CLEAR 0x0040
<a name="line350">350 |</a> #define M_PREPEND 0x0080
<a name="line351">351 |</a> #define M_HELP 0x0100
<a name="line352">352 |</a> #define M_WHATIS 0x0200
<a name="line353">353 |</a> #define M_NONPERSIST 0x0400
<a name="line354">354 |</a>
<a name="line355">355 |</a> /**
<a name="line356">356 |</a> ** markers for switching
<a name="line357">357 |</a> **/
<a name="line358">358 |</a>
<a name="line359">359 |</a> #define SWMARKER "--VARMARKER--" /** for variables and aliases **/
<a name="line360">360 |</a> #define APP_SW_MARKER "--APPMARKER--" /** for appending paths **/
<a name="line361">361 |</a> #define PRE_SW_MARKER "--PREMARKER--" /** for prepending paths **/
<a name="line362">362 |</a>
<a name="line363">363 |</a> /**
<a name="line364">364 |</a> ** return values
<a name="line365">365 |</a> **/
<a name="line366">366 |</a>
<a name="line367">367 |</a> #define TCL_LEVEL0_RETURN 11
<a name="line368">368 |</a>
<a name="line369">369 |</a> /**
<a name="line370">370 |</a> ** uname defaults when uname can't be found
<a name="line371">371 |</a> **/
<a name="line372">372 |</a>
<a name="line373">373 |</a> #ifndef UNAME_SYSNAME
<a name="line374">374 |</a> # define UNAME_SYSNAME "unknown"
<a name="line375">375 |</a> #endif
<a name="line376">376 |</a>
<a name="line377">377 |</a> #ifndef UNAME_NODENAME
<a name="line378">378 |</a> # define UNAME_NODENAME "unknown"
<a name="line379">379 |</a> #endif
<a name="line380">380 |</a>
<a name="line381">381 |</a> #ifndef UNAME_RELEASE
<a name="line382">382 |</a> # define UNAME_RELEASE "unknown"
<a name="line383">383 |</a> #endif
<a name="line384">384 |</a>
<a name="line385">385 |</a> #ifndef UNAME_VERSION
<a name="line386">386 |</a> # define UNAME_VERSION "unknown"
<a name="line387">387 |</a> #endif
<a name="line388">388 |</a>
<a name="line389">389 |</a> #ifndef UNAME_MACHINE
<a name="line390">390 |</a> # define UNAME_MACHINE "unknown"
<a name="line391">391 |</a> #endif
<a name="line392">392 |</a>
<a name="line393">393 |</a> #ifndef UNAME_DOMAIN
<a name="line394">394 |</a> # define UNAME_DOMAIN "unknown"
<a name="line395">395 |</a> #endif
<a name="line396">396 |</a>
<a name="line397">397 |</a> /**
<a name="line398">398 |</a> ** RC files
<a name="line399">399 |</a> **/
<a name="line400">400 |</a>
<a name="line401">401 |</a> #ifndef RCFILE
<a name="line402">402 |</a> # define RCFILE "rc"
<a name="line403">403 |</a> #endif
<a name="line404">404 |</a>
<a name="line405">405 |</a> #ifndef MODULERCFILE
<a name="line406">406 |</a> # define MODULERCFILE ".modulerc"
<a name="line407">407 |</a> #endif
<a name="line408">408 |</a>
<a name="line409">409 |</a> #ifndef VERSIONFILE
<a name="line410">410 |</a> # define VERSIONFILE ".version"
<a name="line411">411 |</a> #endif
<a name="line412">412 |</a>
<a name="line413">413 |</a> #ifndef APR_CACHE
<a name="line414">414 |</a> # define APR_CACHE "apropos.cache"
<a name="line415">415 |</a> #endif
<a name="line416">416 |</a>
<a name="line417">417 |</a> /**
<a name="line418">418 |</a> ** Buffer sizes
<a name="line419">419 |</a> **/
<a name="line420">420 |</a>
<a name="line421">421 |</a> #define LINELENGTH 8192
<a name="line422">422 |</a> #define MOD_BUFSIZE 1024
<a name="line423">423 |</a>
<a name="line424">424 |</a> /** ************************************************************************ **/
<a name="line425">425 |</a> /** MACROS **/
<a name="line426">426 |</a> /** ************************************************************************ **/
<a name="line427">427 |</a>
<a name="line428">428 |</a> /**
<a name="line429">429 |</a> ** I'm going to remove all of the calls to free( ) since they are not
<a name="line430">430 |</a> ** necessary for Modules. Since the modulecmd program is only run for
<a name="line431">431 |</a> ** a very short time ( usually &lt;1sec) it's faster to not clutter the heap
<a name="line432">432 |</a> ** by freeing up memory.
<a name="line433">433 |</a> **
<a name="line434">434 |</a> ** If you disagree with this decision, or have some problems with this
<a name="line435">435 |</a> ** behavior on your system, configure with --enable-free
<a name="line436">436 |</a> **
<a name="line437">437 |</a> ** Note that all memory deallocations should go through null_free()
<a name="line438">438 |</a> **/
<a name="line439">439 |</a>
<a name="line440">440 |</a> #ifndef USE_FREE
<a name="line441">441 |</a> # define free( x)
<a name="line442">442 |</a> # define FreeList( x, y)
<a name="line443">443 |</a> #endif
<a name="line444">444 |</a>
<a name="line445">445 |</a> /**
<a name="line446">446 |</a> ** Some systems don't define S_ISDIR and S_ISREG
<a name="line447">447 |</a> **/
<a name="line448">448 |</a>
<a name="line449">449 |</a> #ifdef HAVE_SYS_STAT_H
<a name="line450">450 |</a> # ifndef S_ISDIR
<a name="line451">451 |</a> # define S_ISDIR( m) (((m) &amp; S_IFMT) == S_IFDIR)
<a name="line452">452 |</a> # endif
<a name="line453">453 |</a> # ifndef S_ISREG
<a name="line454">454 |</a> # define S_ISREG( m) (((m) &amp; S_IFMT) == S_IFREG)
<a name="line455">455 |</a> # endif
<a name="line456">456 |</a> #endif
<a name="line457">457 |</a>
<a name="line458">458 |</a> /**
<a name="line459">459 |</a> ** Error logger
<a name="line460">460 |</a> **/
<a name="line461">461 |</a>
<a name="line462">462 |</a> #define ErrorLogger Module_Error
<a name="line463">463 |</a> #define LOC module_name, __LINE__
<a name="line464">464 |</a>
<a name="line465">465 |</a> /** ************************************************************************ **/
<a name="line466">466 |</a> /** GLOBAL DATA **/
<a name="line467">467 |</a> /** ************************************************************************ **/
<a name="line468">468 |</a>
<a name="line469">469 |</a> extern char **environ;
<a name="line470">470 |</a>
<a name="line471">471 |</a> extern char *version_string;
<a name="line472">472 |</a> extern char *date_string;
<a name="line473">473 |</a> extern char *g_current_module;
<a name="line474">474 |</a> extern char *g_specified_module;
<a name="line475">475 |</a> extern char *shell_name;
<a name="line476">476 |</a> extern char *shell_derelict;
<a name="line477">477 |</a> extern char *shell_init;
<a name="line478">478 |</a> extern char *shell_cmd_separator;
<a name="line479">479 |</a> extern int g_flags;
<a name="line480">480 |</a> extern int append_flag;
<a name="line481">481 |</a> extern char *line;
<a name="line482">482 |</a> extern char *error_line;
<a name="line483">483 |</a> extern char local_line[];
<a name="line484">484 |</a> extern char _default[];
<a name="line485">485 |</a>
<a name="line486">486 |</a> extern int linenum;
<a name="line487">487 |</a>
<a name="line488">488 |</a> extern char *addRE;
<a name="line489">489 |</a> extern char *rmRE;
<a name="line490">490 |</a> extern char *swRE;
<a name="line491">491 |</a> extern char *dispRE;
<a name="line492">492 |</a> extern char *listRE;
<a name="line493">493 |</a> extern char *availRE;
<a name="line494">494 |</a> extern char *helpRE;
<a name="line495">495 |</a> extern char *initRE;
<a name="line496">496 |</a> extern char *initxRE;
<a name="line497">497 |</a> extern char *useRE;
<a name="line498">498 |</a> extern char *unuseRE;
<a name="line499">499 |</a> extern char *updateRE;
<a name="line500">500 |</a> extern char *purgeRE;
<a name="line501">501 |</a> extern char *clearRE;
<a name="line502">502 |</a> extern char *whatisRE;
<a name="line503">503 |</a> extern char *aproposRE;
<a name="line504">504 |</a> extern char *refreshRE;
<a name="line505">505 |</a>
<a name="line506">506 |</a> extern Tcl_HashTable *setenvHashTable;
<a name="line507">507 |</a> extern Tcl_HashTable *unsetenvHashTable;
<a name="line508">508 |</a> extern Tcl_HashTable *aliasSetHashTable;
<a name="line509">509 |</a> extern Tcl_HashTable *aliasUnsetHashTable;
<a name="line510">510 |</a> extern Tcl_HashTable *markVariableHashTable;
<a name="line511">511 |</a> extern Tcl_HashTable *markAliasHashTable;
<a name="line512">512 |</a>
<a name="line513">513 |</a> extern char _fil_stdin[];
<a name="line514">514 |</a> extern char _fil_stdout[];
<a name="line515">515 |</a> extern char _fil_stderr[];
<a name="line516">516 |</a> extern char _fil_devnull[];
<a name="line517">517 |</a>
<a name="line518">518 |</a> extern int sw_detach;
<a name="line519">519 |</a> extern int sw_force;
<a name="line520">520 |</a> extern int sw_format;
<a name="line521">521 |</a> #define SW_SET 0x01
<a name="line522">522 |</a> #define SW_HUMAN 0x02
<a name="line523">523 |</a> #define SW_PARSE 0x04
<a name="line524">524 |</a> #define SW_TERSE 0x08
<a name="line525">525 |</a> #define SW_LONG 0x10
<a name="line526">526 |</a> #define SW_LIST 0x20
<a name="line527">527 |</a> extern int sw_create;
<a name="line528">528 |</a> extern int sw_verbose;
<a name="line529">529 |</a> extern int sw_userlvl;
<a name="line530">530 |</a> extern int sw_icase;
<a name="line531">531 |</a>
<a name="line532">532 |</a> extern char *instpath;
<a name="line533">533 |</a> extern char *rc_file;
<a name="line534">534 |</a> extern char *modulerc_file;
<a name="line535">535 |</a> extern char *version_file;
<a name="line536">536 |</a>
<a name="line537">537 |</a> extern char long_header[];
<a name="line538">538 |</a>
<a name="line539">539 |</a> /** ************************************************************************ **/
<a name="line540">540 |</a> /** PROTOTYPES **/
<a name="line541">541 |</a> /** ************************************************************************ **/
<a name="line542">542 |</a>
<a name="line543">543 |</a> /** locate_module.c **/
<a name="line544">544 |</a> extern int Locate_ModuleFile( Tcl_Interp*, char*, char*, char*);
<a name="line545">545 |</a> extern char **SortedDirList( Tcl_Interp*, char*, char*, int*);
<a name="line546">546 |</a> extern char **SplitIntoList( Tcl_Interp*, char*, int*);
<a name="line547">547 |</a> extern int SourceVers( Tcl_Interp*, char*, char*);
<a name="line548">548 |</a> extern int SourceRC( Tcl_Interp *interp, char *, char *);
<a name="line549">549 |</a> #ifdef USE_FREE
<a name="line550">550 |</a> extern void FreeList( char**, int);
<a name="line551">551 |</a> #endif
<a name="line552">552 |</a>
<a name="line553">553 |</a> /** main.c **/
<a name="line554">554 |</a> extern void module_usage(FILE *output);
<a name="line555">555 |</a>
<a name="line556">556 |</a> /** ModuleCmd_Avail.c **/
<a name="line557">557 |</a> extern int ModuleCmd_Avail( Tcl_Interp*, int, char*[]);
<a name="line558">558 |</a> extern void print_dirents( char*);
<a name="line559">559 |</a> extern char *strip_top( char*);
<a name="line560">560 |</a> extern void print_aligned_files(Tcl_Interp*,char*,char*,char**,int,int);
<a name="line561">561 |</a> extern int check_dir( char*);
<a name="line562">562 |</a> extern fi_ent *get_dir( char*, char*, int*, int*);
<a name="line563">563 |</a> extern void dirlst_to_list( char**, fi_ent*, int, int*, char*, char*);
<a name="line564">564 |</a> extern void delete_dirlst( fi_ent*, int);
<a name="line565">565 |</a> extern void delete_cache_list( char**, int);
<a name="line566">566 |</a>
<a name="line567">567 |</a> /** ModuleCmd_Clear.c **/
<a name="line568">568 |</a> extern int ModuleCmd_Clear( Tcl_Interp*, int, char*[]);
<a name="line569">569 |</a>
<a name="line570">570 |</a> /** ModuleCmd_Display.c **/
<a name="line571">571 |</a> extern int ModuleCmd_Display( Tcl_Interp*, int, char*[]);
<a name="line572">572 |</a>
<a name="line573">573 |</a> /** ModuleCmd_Help.c **/
<a name="line574">574 |</a> extern int ModuleCmd_Help( Tcl_Interp*, int, char*[]);
<a name="line575">575 |</a>
<a name="line576">576 |</a> /** ModuleCmd_Init.c **/
<a name="line577">577 |</a> extern int ModuleCmd_Init( Tcl_Interp*, int, char*[]);
<a name="line578">578 |</a>
<a name="line579">579 |</a> /** ModuleCmd_List.c **/
<a name="line580">580 |</a> extern int ModuleCmd_List( Tcl_Interp*, int, char*[]);
<a name="line581">581 |</a>
<a name="line582">582 |</a> /** ModuleCmd_Load.c **/
<a name="line583">583 |</a> extern int ModuleCmd_Load( Tcl_Interp*, int, int, char*[]);
<a name="line584">584 |</a>
<a name="line585">585 |</a> /** ModuleCmd_Purge.c **/
<a name="line586">586 |</a> extern int ModuleCmd_Purge( Tcl_Interp*, int, char*[]);
<a name="line587">587 |</a>
<a name="line588">588 |</a> /** ModuleCmd_Switch.c **/
<a name="line589">589 |</a> extern int ModuleCmd_Switch( Tcl_Interp*, int, char*[]);
<a name="line590">590 |</a>
<a name="line591">591 |</a> /** ModuleCmd_Update.c **/
<a name="line592">592 |</a> extern int ModuleCmd_Update( Tcl_Interp*, int, char*[]);
<a name="line593">593 |</a>
<a name="line594">594 |</a> /** ModuleCmd_Whatis.c **/
<a name="line595">595 |</a> extern int ModuleCmd_Whatis( Tcl_Interp*, int, char*[]);
<a name="line596">596 |</a> extern int ModuleCmd_Apropos( Tcl_Interp*, int, char*[]);
<a name="line597">597 |</a>
<a name="line598">598 |</a> /** ModuleCmd_Use.c **/
<a name="line599">599 |</a> extern int ModuleCmd_Use( Tcl_Interp*, int, char*[]);
<a name="line600">600 |</a> extern int ModuleCmd_UnUse( Tcl_Interp*, int, char*[]);
<a name="line601">601 |</a>
<a name="line602">602 |</a> /** cmdAlias.c **/
<a name="line603">603 |</a> extern int cmdSetAlias( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line604">604 |</a>
<a name="line605">605 |</a> /** cmdConflict.c **/
<a name="line606">606 |</a> extern int cmdConflict( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line607">607 |</a> extern int cmdPrereq( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line608">608 |</a>
<a name="line609">609 |</a> /** cmdIsLoaded.c **/
<a name="line610">610 |</a> extern int cmdIsLoaded(ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line611">611 |</a>
<a name="line612">612 |</a> /** cmdVerbose.c **/
<a name="line613">613 |</a> extern int cmdModuleVerbose(ClientData,Tcl_Interp*,int,CONST84 char*[]);
<a name="line614">614 |</a>
<a name="line615">615 |</a> /** cmdWhatis.c **/
<a name="line616">616 |</a> extern char **whatis;
<a name="line617">617 |</a> extern void cmdModuleWhatisInit(void);
<a name="line618">618 |</a> extern void cmdModuleWhatisShut(void);
<a name="line619">619 |</a> extern int cmdModuleWhatis(ClientData,Tcl_Interp*,int,CONST84 char*[]);
<a name="line620">620 |</a>
<a name="line621">621 |</a> /** cmdInfo.c **/
<a name="line622">622 |</a> extern int cmdModuleInfo(ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line623">623 |</a> extern char *module_command;
<a name="line624">624 |</a>
<a name="line625">625 |</a> /** cmdMisc.c **/
<a name="line626">626 |</a> extern int cmdSystem( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line627">627 |</a>
<a name="line628">628 |</a> /** cmdModule.c **/
<a name="line629">629 |</a> extern int cmdModule( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line630">630 |</a> extern int Read_Modulefile( Tcl_Interp*, char*);
<a name="line631">631 |</a> extern int Execute_TclFile( Tcl_Interp*, char*);
<a name="line632">632 |</a> extern int CallModuleProcedure( Tcl_Interp*, Tcl_DString*, char*, char*,
<a name="line633">633 |</a> int);
<a name="line634">634 |</a>
<a name="line635">635 |</a> /** cmdPath.c **/
<a name="line636">636 |</a> extern int cmdSetPath( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line637">637 |</a> extern int cmdRemovePath( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line638">638 |</a> extern char *chk_nullvars( char*);
<a name="line639">639 |</a>
<a name="line640">640 |</a> /** cmdSetenv.c **/
<a name="line641">641 |</a> extern int cmdSetEnv( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line642">642 |</a> extern int moduleSetenv( Tcl_Interp*, char *, char*, int);
<a name="line643">643 |</a> extern int cmdUnsetEnv( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line644">644 |</a> extern int moduleUnsetenv( Tcl_Interp*, char *);
<a name="line645">645 |</a>
<a name="line646">646 |</a> /** cmdUname.c **/
<a name="line647">647 |</a> extern int cmdUname( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line648">648 |</a>
<a name="line649">649 |</a> /** cmdXResource.c **/
<a name="line650">650 |</a> extern int cmdXResource( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line651">651 |</a> extern void xresourceFinish( int);
<a name="line652">652 |</a>
<a name="line653">653 |</a> /** cmdUlvl.c **/
<a name="line654">654 |</a> extern int cmdModuleUser(ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line655">655 |</a> extern int cmdModuleUser_sub( char *user_level);
<a name="line656">656 |</a>
<a name="line657">657 |</a> /** cmdLog.c **/
<a name="line658">658 |</a> extern int cmdModuleLog( ClientData, Tcl_Interp*, int, CONST84 char*[]);
<a name="line659">659 |</a>
<a name="line660">660 |</a> /** cmdTrace.c **/
<a name="line661">661 |</a> extern int cmdModuleTrace(ClientData,Tcl_Interp*, int, CONST84 char*[]);
<a name="line662">662 |</a> extern char *GetTraceSel(Tcl_Interp*, char*);
<a name="line663">663 |</a> extern int CheckTracing(Tcl_Interp*, char*, char*);
<a name="line664">664 |</a> extern int CheckTracingList(Tcl_Interp*, char*, int, char**);
<a name="line665">665 |</a>
<a name="line666">666 |</a> /** cmdVersion.c **/
<a name="line667">667 |</a> extern int cmdModuleVersion(ClientData,Tcl_Interp*,int,CONST84 char*[]);
<a name="line668">668 |</a> extern int cmdModuleAlias(ClientData,Tcl_Interp*, int, CONST84 char*[]);
<a name="line669">669 |</a> extern int AliasLookup( char*, char**, char**);
<a name="line670">670 |</a> extern int VersionLookup( char*, char**, char**);
<a name="line671">671 |</a> extern char *ExpandVersions( char*);
<a name="line672">672 |</a>
<a name="line673">673 |</a> /** init.c **/
<a name="line674">674 |</a> extern int Initialize_Tcl( Tcl_Interp**, int, char*[], char*[]);
<a name="line675">675 |</a> extern int InitializeModuleCommands( Tcl_Interp*);
<a name="line676">676 |</a> extern int Setup_Environment( Tcl_Interp*);
<a name="line677">677 |</a> extern char **SetStartupFiles( char *shell_name);
<a name="line678">678 |</a> extern int TieStdout( void);
<a name="line679">679 |</a> extern int UnTieStdout( int);
<a name="line680">680 |</a>
<a name="line681">681 |</a> /** utility.c **/
<a name="line682">682 |</a> extern char *getLMFILES( Tcl_Interp *interp);
<a name="line683">683 |</a> extern int store_hash_value( Tcl_HashTable*, const char*, const char*);
<a name="line684">684 |</a> extern int clear_hash_value( Tcl_HashTable*, const char*);
<a name="line685">685 |</a> extern int store_old_shell_variable( Tcl_HashTable*, const char*,
<a name="line686">686 |</a> const char*);
<a name="line687">687 |</a> extern int clear_old_shell_variable( Tcl_HashTable*, const char*);
<a name="line688">688 |</a> extern void Delete_Global_Hash_Tables( void);
<a name="line689">689 |</a> extern void Delete_Hash_Tables( Tcl_HashTable**);
<a name="line690">690 |</a> extern Tcl_HashTable** Copy_Hash_Tables( void);
<a name="line691">691 |</a> extern int Unwind_Modulefile_Changes( Tcl_Interp*, Tcl_HashTable**);
<a name="line692">692 |</a> extern int Output_Modulefile_Changes( Tcl_Interp*);
<a name="line693">693 |</a> extern int store_env( void);
<a name="line694">694 |</a> extern int free_stored_env( void);
<a name="line695">695 |</a> extern void set_marked_entry( Tcl_HashTable*, char*, intptr_t);
<a name="line696">696 |</a> extern intptr_t chk_marked_entry( Tcl_HashTable*, char*);
<a name="line697">697 |</a> extern Tcl_HashTable* environ_changes;
<a name="line698">698 |</a> extern Tcl_HashTable* alias_changes;
<a name="line699">699 |</a> extern int IsLoaded( Tcl_Interp*, char*, char**, char*);
<a name="line700">700 |</a> extern int IsLoaded_ExactMatch( Tcl_Interp*, char*, char **, char*);
<a name="line701">701 |</a> extern int Update_LoadedList( Tcl_Interp*, char*, char*);
<a name="line702">702 |</a> extern int check_magic( char*, char*, int);
<a name="line703">703 |</a> extern void chk4spch( char*);
<a name="line704">704 |</a> extern void cleanse_path( const char*, char*, int);
<a name="line705">705 |</a> extern char *xdup(char const *);
<a name="line706">706 |</a> extern char *xgetenv(char const *);
<a name="line707">707 |</a> extern int tmpfile_mod( char**, FILE**);
<a name="line708">708 |</a> extern char *stringer(char *, int, ...);
<a name="line709">709 |</a> extern void null_free(void **);
<a name="line710">710 |</a> extern size_t countTclHash(Tcl_HashTable *);
<a name="line711">711 |</a>
<a name="line712">712 |</a> #ifndef HAVE_STRDUP
<a name="line713">713 |</a> # undef strdup
<a name="line714">714 |</a> extern char *strdup( char*);
<a name="line715">715 |</a> #endif
<a name="line716">716 |</a>
<a name="line717">717 |</a> #ifndef HAVE_STRTOK
<a name="line718">718 |</a> extern char *strtok( char *, const char *);
<a name="line719">719 |</a> #endif
<a name="line720">720 |</a>
<a name="line721">721 |</a> /** error.c **/
<a name="line722">722 |</a> extern char **GetFacilityPtr( char *);
<a name="line723">723 |</a> extern int Module_Error( ErrType, char*, int, ...);
<a name="line724">724 |</a> extern int CheckFacility( char*, int*, int*);
<a name="line725">725 |</a> extern void Module_Tracing( int, int, char**);
<a name="line726">726 |</a> extern void Module_Verbosity( int, char**);
<a name="line727">727 |</a>
<a name="line728">728 |</a> #endif /** _MODULES_DEF_H **/
</pre>
</BODY>
</HTML>