Hex Artifact Content

Artifact d3bbfc684916ce6944e6c4292879bd5d2d38a5c3:


0000: 2f 2a 20 57 72 69 74 74 65 6e 20 62 79 20 4d 61  /* Written by Ma
0010: 74 74 20 4e 65 77 6d 61 6e 20 61 6e 64 20 4a 65  tt Newman and Je
0020: 61 6e 2d 43 6c 61 75 64 65 20 57 69 70 70 6c 65  an-Claude Wipple
0030: 72 2c 20 61 73 20 70 61 72 74 20 6f 66 20 54 63  r, as part of Tc
0040: 6c 6b 69 74 2e 0a 20 2a 20 4d 61 72 63 68 20 32  lkit.. * March 2
0050: 30 30 33 20 2d 20 70 6c 61 63 65 64 20 69 6e 20  003 - placed in 
0060: 74 68 65 20 70 75 62 6c 69 63 20 64 6f 6d 61 69  the public domai
0070: 6e 20 62 79 20 74 68 65 20 61 75 74 68 6f 72 73  n by the authors
0080: 2e 0a 20 2a 0a 20 2a 20 45 78 70 6f 73 65 20 54  .. *. * Expose T
0090: 63 6c 53 65 74 4c 69 62 72 61 72 79 50 61 74 68  clSetLibraryPath
00a0: 20 74 6f 20 73 63 72 69 70 74 73 20 28 69 6e 20   to scripts (in 
00b0: 38 2e 34 20 6f 6e 6c 79 2c 20 38 2e 35 20 68 61  8.4 only, 8.5 ha
00c0: 73 20 22 65 6e 63 6f 64 69 6e 67 20 64 69 72 73  s "encoding dirs
00d0: 22 29 2e 0a 20 2a 2f 0a 0a 23 69 66 20 31 30 20  ").. */..#if 10 
00e0: 2a 20 54 43 4c 5f 4d 41 4a 4f 52 5f 56 45 52 53  * TCL_MAJOR_VERS
00f0: 49 4f 4e 20 2b 20 54 43 4c 5f 4d 49 4e 4f 52 5f  ION + TCL_MINOR_
0100: 56 45 52 53 49 4f 4e 20 3c 20 38 35 0a 0a 23 69  VERSION < 85..#i
0110: 6e 63 6c 75 64 65 20 3c 74 63 6c 2e 68 3e 0a 23  nclude <tcl.h>.#
0120: 69 6e 63 6c 75 64 65 20 3c 74 63 6c 49 6e 74 2e  include <tclInt.
0130: 68 3e 20 2f 2a 20 54 63 6c 47 65 74 4c 69 62 72  h> /* TclGetLibr
0140: 61 72 79 50 61 74 68 20 2a 2f 0a 0a 76 6f 69 64  aryPath */..void
0150: 20 53 65 74 45 78 65 63 4e 61 6d 65 28 54 63 6c   SetExecName(Tcl
0160: 5f 49 6e 74 65 72 70 20 2a 29 3b 0a 0a 2f 2a 20  _Interp *);../* 
0170: 53 75 70 70 6f 72 74 20 66 6f 72 20 65 6e 63 6f  Support for enco
0180: 64 69 6e 67 73 2c 20 66 72 6f 6d 20 56 69 6e 63  dings, from Vinc
0190: 65 20 44 61 72 6c 65 79 20 3c 76 69 6e 63 65 2e  e Darley <vince.
01a0: 64 61 72 6c 65 79 40 65 75 72 6f 62 69 6f 73 2e  darley@eurobios.
01b0: 63 6f 6d 3e 20 2a 2f 0a 73 74 61 74 69 63 20 69  com> */.static i
01c0: 6e 74 0a 4c 69 62 72 61 72 79 50 61 74 68 4f 62  nt.LibraryPathOb
01d0: 6a 43 6d 64 28 64 75 6d 6d 79 2c 20 69 6e 74 65  jCmd(dummy, inte
01e0: 72 70 2c 20 6f 62 6a 63 2c 20 6f 62 6a 76 29 0a  rp, objc, objv).
01f0: 20 20 20 20 20 43 6c 69 65 6e 74 44 61 74 61 20       ClientData 
0200: 64 75 6d 6d 79 3b 0a 20 20 20 20 20 54 63 6c 5f  dummy;.     Tcl_
0210: 49 6e 74 65 72 70 20 2a 69 6e 74 65 72 70 3b 0a  Interp *interp;.
0220: 20 20 20 20 20 69 6e 74 20 6f 62 6a 63 3b 0a 20       int objc;. 
0230: 20 20 20 20 54 63 6c 5f 4f 62 6a 20 2a 43 4f 4e      Tcl_Obj *CON
0240: 53 54 20 6f 62 6a 76 5b 5d 3b 0a 7b 0a 20 20 20  ST objv[];.{.   
0250: 20 20 69 66 20 28 6f 62 6a 63 20 3d 3d 20 31 29    if (objc == 1)
0260: 20 7b 0a 09 54 63 6c 5f 53 65 74 4f 62 6a 52 65   {..Tcl_SetObjRe
0270: 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 54 63 6c  sult(interp, Tcl
0280: 47 65 74 4c 69 62 72 61 72 79 50 61 74 68 28 29  GetLibraryPath()
0290: 29 3b 0a 20 20 20 20 20 7d 20 65 6c 73 65 20 7b  );.     } else {
02a0: 0a 09 54 63 6c 5f 4f 62 6a 20 2a 70 61 74 68 3d  ..Tcl_Obj *path=
02b0: 54 63 6c 5f 44 75 70 6c 69 63 61 74 65 4f 62 6a  Tcl_DuplicateObj
02c0: 28 6f 62 6a 76 5b 31 5d 29 3b 0a 09 54 63 6c 53  (objv[1]);..TclS
02d0: 65 74 4c 69 62 72 61 72 79 50 61 74 68 28 54 63  etLibraryPath(Tc
02e0: 6c 5f 4e 65 77 4c 69 73 74 4f 62 6a 28 31 2c 26  l_NewListObj(1,&
02f0: 70 61 74 68 29 29 3b 0a 09 54 63 6c 70 53 65 74  path));..TclpSet
0300: 49 6e 69 74 69 61 6c 45 6e 63 6f 64 69 6e 67 73  InitialEncodings
0310: 28 29 3b 0a 20 20 20 20 20 7d 0a 20 20 20 20 20  ();.     }.     
0320: 72 65 74 75 72 6e 20 54 43 4c 5f 4f 4b 3b 0a 7d  return TCL_OK;.}
0330: 0a 0a 2f 2a 0a 20 2a 20 50 75 62 6c 69 63 20 45  ../*. * Public E
0340: 6e 74 72 79 70 6f 69 6e 74 0a 20 2a 2f 0a 0a 44  ntrypoint. */..D
0350: 4c 4c 45 58 50 4f 52 54 20 69 6e 74 20 50 77 62  LLEXPORT int Pwb
0360: 5f 49 6e 69 74 28 54 63 6c 5f 49 6e 74 65 72 70  _Init(Tcl_Interp
0370: 20 2a 69 6e 74 65 72 70 29 0a 7b 0a 20 20 20 20   *interp).{.    
0380: 54 63 6c 5f 43 72 65 61 74 65 4f 62 6a 43 6f 6d  Tcl_CreateObjCom
0390: 6d 61 6e 64 28 69 6e 74 65 72 70 2c 20 22 6c 69  mand(interp, "li
03a0: 62 72 61 72 79 70 61 74 68 22 2c 20 4c 69 62 72  brarypath", Libr
03b0: 61 72 79 50 61 74 68 4f 62 6a 43 6d 64 2c 20 30  aryPathObjCmd, 0
03c0: 2c 20 30 29 3b 0a 20 20 20 20 72 65 74 75 72 6e  , 0);.    return
03d0: 20 54 63 6c 5f 50 6b 67 50 72 6f 76 69 64 65 28   Tcl_PkgProvide(
03e0: 20 69 6e 74 65 72 70 2c 20 22 70 77 62 22 2c 20   interp, "pwb", 
03f0: 22 31 2e 31 22 29 3b 0a 7d 0a 0a 23 65 6e 64 69  "1.1");.}..#endi
0400: 66 0a                                            f.