Changeset 6688079 in tol


Ignore:
Timestamp:
Mar 14, 2016, 12:49:45 PM (11 years ago)
Author:
Jorge Pérez <josp.jorge@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
c6181a1
Parents:
6755180
Message:

fixes #1920, se corrige tambien en tolcon, tolbase, tolsh

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@7244 be4846ae-f051-483a-831f-b64e7d08527f

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • tol/init.cpp

    r6755180 r6688079  
    2222#if defined(_MSC_VER)
    2323#include <win_tolinc.h>
     24#endif
     25
     26#if HAVE_UNISTD_H
     27#include <unistd.h>
    2428#endif
    2529
    … …  
    15451549    free(mode);
    15461550  }
    1547   InitGrammars(calledProgram);
     1551
     1552  const char * ptr = calledProgram;
     1553  char realPath[1024];
     1554
     1555#ifdef HAVE_UNISTD_H
     1556  ssize_t r = readlink( ptr, realPath, 1024 );
     1557  if ( r > 0 )
     1558    {
     1559    realPath[r] = '\0';
     1560    ptr = realPath;
     1561    }
     1562#endif
     1563
     1564  printf( "Inicializando con %s\n", ptr );
     1565
     1566  InitGrammars( ptr );
    15481567}
    15491568
    … …  
    15771596  bool loadInitProject = true;
    15781597  bool loadDefaultPackages = true;
     1598
     1599  const char * argv0 = argv[0];
     1600  char realPath[1024];
     1601 
     1602#ifdef HAVE_UNISTD_H
     1603  ssize_t r = readlink( argv0, realPath, 1024 );
     1604  if ( r > 0 )
     1605    {
     1606    realPath[r] = '\0';
     1607    argv0 = realPath;
     1608    }
     1609#endif
     1610
    15791611  if(!helpMode) {
    15801612    BInt i = 1;
    … …  
    16001632        else if  (com == 'c')
    16011633        {
    1602           InitGrammars(argv[0]);
     1634          InitGrammars( argv0 );
    16031635          if(initTOL) { LoadInitLibrary(loadInitProject,loadDefaultPackages); }
    16041636          Trace(I2("\nCompiling command line argument -c :\n",
    … …  
    16301662      else
    16311663      {
    1632         InitGrammars(argv[0]);
     1664        InitGrammars( argv0 );
    16331665        if(initTOL) { LoadInitLibrary(loadInitProject,loadDefaultPackages); }
    16341666        if(arg.HasName()) {
    … …  
    17331765  if(dialogMode)
    17341766  {
    1735     InitGrammars(argv[0]);
     1767    InitGrammars( argv0 );
    17361768    // unused
    17371769    /*aliveObjects_1 =*/ AliveObjects();
  • tolbase/generic/tolbase.c

    r6755180 r6688079  
    178178    //Tcl_PkgRequire( interp, "TolbaseApp", TOLBASE_VERSION, 1);
    179179#else
    180     const char* exeName = Tcl_GetNameOfExecutable();
    181     Tcl_VarEval( interp, "file join",
    182                  " [ file dir ", Tcl_GetNameOfExecutable(),
    183                  " ] tolbase.tcl", NULL );
     180    const char* argv0 = Tcl_GetNameOfExecutable();
     181    Tcl_VarEval( interp, "file join ",
     182                 "[ file dir [expr {[file type {", argv0, "}] eq {link} ? [file readlink {", argv0, "}] : {", argv0 ,"}} ] ] tolbase.tcl", NULL );
    184183    Tcl_Obj *objPath = Tcl_GetObjResult( interp );
    185184    Tcl_SetStartupScript( Tcl_GetObjResult( interp ), NULL );
  • toltcl/generic/tolsh.c

    r6755180 r6688079  
    6060#if defined(WIN32)
    6161  SetupDllSearchPath( argv0 );
     62  Tcl_VarEval( interp, "lappend", " auto_path", " [file join",
     63               " [file dir [file dir {", argv0,
     64               "} ] ] lib ]", NULL );
     65#else
     66  Tcl_VarEval( interp, "lappend", " auto_path", " [file join",
     67               " [file dir [file dir [expr {[file type {", argv0, "}] eq {link} ? [file readlink {", argv0, "}] : {", argv0 ,"}} ] ] ] lib ]", NULL );
    6268#endif   
    63   Tcl_VarEval( interp, "lappend", " auto_path", " [file join",
    64                " [file dir [file dir ", argv0,
    65                " ] ] lib ]", NULL );
    6669  if ( !Tcl_PkgRequire( interp, "TolshApp", TOLTCL_VERSION, 1) )
    6770    {
  • toltcl/generic/toltcl.c

    r6755180 r6688079  
    217217  int lang;
    218218  char* vmode;
     219  const char *argv0 = Tcl_GetNameOfExecutable();
     220
    219221  if (objc > 3) {
    220222    Tcl_AppendResult(interp, "wrong # args: should be \"",
    … …  
    246248     */
    247249   
     250    Tcl_VarEval(
    248251    InitTolKernel(Tcl_GetNameOfExecutable(), lang, vmode&&vmode[0]?vmode:NULL);
    249252   
Note: See TracChangeset for help on using the changeset viewer.