X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=recctrl%2Fregxread.c;h=7b7b8bee91ce1e7c599bbd5258da94d446cad26e;hb=5e7516d00451ada59a311fad05e8e3959242cdc7;hp=73744fc44fc1b54485d8bac51235ee3684abd77e;hpb=08dfaf179e9c3bf0ec66a3a34fab11d5cd5d1fa8;p=idzebra-moved-to-github.git diff --git a/recctrl/regxread.c b/recctrl/regxread.c index 73744fc..7b7b8be 100644 --- a/recctrl/regxread.c +++ b/recctrl/regxread.c @@ -3,7 +3,16 @@ * All rights reserved. * * $Log: regxread.c,v $ - * Revision 1.35 2001-03-29 21:31:31 adam + * Revision 1.38 2002-04-04 20:50:37 adam + * Multi register works with record paths and data1 profile path + * + * Revision 1.37 2001/05/29 08:51:59 adam + * More fixes for character encodings. + * + * Revision 1.36 2001/05/22 21:02:26 adam + * Fixes for Tcl UTF8 character handling. + * + * Revision 1.35 2001/03/29 21:31:31 adam * Fixed "record begin" for Tcl filter. * * Revision 1.34 2000/11/29 14:24:01 adam @@ -747,13 +756,13 @@ int readFileSpec (struct lexSpec *spec) if (spec->tcl_interp) { sprintf (fname, "%s.tflt", spec->name); - spec_inf = yaz_path_fopen (data1_get_tabpath(spec->dh), fname, "r"); + spec_inf = data1_path_fopen (spec->dh, fname, "r"); } #endif if (!spec_inf) { sprintf (fname, "%s.flt", spec->name); - spec_inf = yaz_path_fopen (data1_get_tabpath(spec->dh), fname, "r"); + spec_inf = data1_path_fopen (spec->dh, fname, "r"); } if (!spec_inf) { @@ -1401,7 +1410,14 @@ static int cmd_tcl_data (ClientData clientData, Tcl_Interp *interp, while (argi < argc) { +#if TCL_MAJOR_VERSION > 8 || (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION > 0) + Tcl_DString ds; + char *native = Tcl_UtfToExternalDString(0, argv[argi], -1, &ds); + execData (spec, native, strlen(native), textFlag); + Tcl_DStringFree (&ds); +#else execData (spec, argv[argi], strlen(argv[argi]), textFlag); +#endif argi++; } if (element) @@ -2092,7 +2108,9 @@ data1_node *grs_read_tcl (struct grs_read_info *p) if (*curLexSpec) lexSpecDestroy (curLexSpec); *curLexSpec = lexSpecCreate (p->type, p->dh); + Tcl_FindExecutable(""); tcl_interp = (*curLexSpec)->tcl_interp = Tcl_CreateInterp(); + Tcl_Init(tcl_interp); Tcl_CreateCommand (tcl_interp, "begin", cmd_tcl_begin, *curLexSpec, 0); Tcl_CreateCommand (tcl_interp, "end", cmd_tcl_end, *curLexSpec, 0); Tcl_CreateCommand (tcl_interp, "data", cmd_tcl_data, *curLexSpec, 0);