Ignore:
Timestamp:
Apr 5, 2012, 1:43:26 PM (12 years ago)
Author:
rybkin
Message:

See C.L. 483

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMT/HEAD/source/cmt_symbol.cxx

    r607 r608  
    22232223{
    22242224  static const cmt_string path_separator = CmtSystem::path_separator ();
    2225 
    2226   //  cmt_string here = CmtSystem::pwd ();
    2227   cmt_string rvalue = value;
    2228 
    2229   /*
    2230   if (CmtSystem::cd (value))
    2231     {
    2232       rvalue = CmtSystem::pwd ();
    2233     }
    2234   else
    2235   */
    2236   if (!CmtSystem::realpath_ (value, rvalue))
    2237     {
    2238       CmtSystem::compress_path (rvalue);
     2225  static cmt_vmap <cmt_string, cmt_string> realpaths;
     2226
     2227  cmt_string rvalue;
     2228  const cmt_string * prvalue;
     2229
     2230  if (!(prvalue = realpaths.find (value)))
     2231    {
     2232      if (!CmtSystem::realpath_ (value, rvalue))
     2233        {
     2234          rvalue = value;
     2235          CmtSystem::compress_path (rvalue);
     2236        }
     2237      prvalue = &rvalue;
     2238      realpaths.add (value, rvalue);
     2239      //      cerr << "realpaths.add: " << value << " , " << rvalue << endl;
    22392240    }
    22402241
     
    22472248    {
    22482249      const cmt_string& item = items[i];
    2249       cmt_string ritem = item;
    2250       /*
    2251       if (CmtSystem::cd (item))
     2250      cmt_string ritem;
     2251      const cmt_string * pritem;
     2252
     2253      if (!(pritem = realpaths.find (item)))
    22522254        {
    2253           ritem = CmtSystem::pwd ();
     2255          if (!CmtSystem::realpath_ (item, ritem))
     2256            {
     2257              ritem = item;
     2258              CmtSystem::compress_path (ritem);
     2259            }
     2260          pritem = &ritem;
     2261          realpaths.add (item, ritem);
     2262          //  cerr << "realpaths.add: " << item << " , " << ritem << endl;
    22542263        }
    2255       else
    2256       */
    2257       if (!CmtSystem::realpath_ (item, ritem))
    2258         {
    2259           CmtSystem::compress_path (ritem);
    2260         }
    2261 
    2262       if (ritem == rvalue)
     2264      if (*pritem == *prvalue)
    22632265        {
    22642266          found = true;
     
    22672269    }
    22682270
    2269   //  CmtSystem::cd (here);
    22702271  return (found);
    22712272}
Note: See TracChangeset for help on using the changeset viewer.