RE: [ROOT] "Save the selected Canvas/Pad as" --> changes default directory

From: Ed Oltman (eoltman@imago.com)
Date: Thu May 08 2003 - 15:52:30 MEST


Valeri,
 I tried canvas "Save As" with root v3.05/4 win32 binaries from cern.
I get the same problem, even when I "Save As"'ed to another folder
on the same drive.  Again, the problem does NOT occur with qt version 
from bnl.  HEre's my output:

c:\analysis01>root
 the current keyboard layout is 437
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   3.05/04     21 April 2003   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

Compiled for win32.

CINT/ROOT C/C++ Interpreter version 5.15.83, Apr 6 2003
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] TF1 *f = new TF1("f","sin(x)/x",0.,10.)
root [1] gSystem->pwd()
(const char* 0xb84f34)"c:\\analysis01"
root [2] .!cd
c:\analysis01
root [3] f->Draw()
<TCanvas::MakeDefCanvas>: created default TCanvas with name c1
root [4] C++ Macro file: C:\test\test.cpp has been generated

root [4] gSystem->pwd()
(const char* 0xb84f34)"c:\\analysis01"
root [5] .!cd
C:\test                          <----- !!!
root [6]

> -----Original Message-----
> From: Faine, Valeri [mailto:fine@bnl.gov]
> Sent: Wednesday, May 07, 2003 8:17 PM
> To: 'Ed Oltman'; 'Roottalk@Pcroot. Cern. Ch'
> Subject: RE: [ROOT] "Save the selected Canvas/Pad as" --> changes
> default directory
> 
> 
> Hello Ed,
> 
> > 
> > Valarie,
> >   Yes, I am sure I'm using the win32 flavour - binaries from cern -
> 3.05/3
> 
>    I can not image how WIN32 can do that.
> 
> >   I did donwload the qt version from bnl and was unable to reproduce
> the
> > goofy
> > behavior.  Is it Qt? or is it 3.05/4 vs. 3.05/3?
> 
> The "SaveAs" should not change the current directory.
> Can you say what the type of your "X:" drive is? 
> Can you reproduce things using the same drive ("c:\")?
> 
> Can you make sure you did not mix the DLLs from the different ROO
> versions?
> 
> 
>    Thank you
>                     Valeri
> 
> > 
> > 
> > 
> > ++++++++++++++++++++3.05/3 from cern: +++++++++++++++++++++++++
> > 
> > c:\root>root
> > the current keyboard layout is 437
> >   *******************************************
> >   *                                         *
> >   *        W E L C O M E  to  R O O T       *
> >   *                                         *
> >   *   Version   3.05/03     11 March 2003   *
> >   *                                         *
> >   *  You are welcome to visit our Web site  *
> >   *          http://root.cern.ch            *
> >   *                                         *
> >   *******************************************
> > 
> > Compiled for win32.
> > 
> > CINT/ROOT C/C++ Interpreter version 5.15.78, Mar 3 2003
> > Type ? for help. Commands must be C++ statements.
> > Enclose multiple statements between { }.
> > root [0] TF1 *f = new TF1("f","sin(x)/x",0.,10.)
> > root [1] f->Draw()
> > <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> > root [2] gSystem->pwd()
> > (const char* 0xb6a9f4)"C:\\root"
> > root [3] .!cd
> > C:\root
> > root [4] C++ Macro file: X:\test.C has been generated
> > gSystem->pwd()
> > (const char* 0xb6a9f4)"C:\\root"
> > root [5] .!cd
> > X:\				<<---- What the...?
> > 
> > 
> > ++++++++++++++++++++3.05/4 from bnl:  +++++++++++++++++++++++++
> > 
> > C:\root>root
> >   *******************************************
> >   *                                         *
> >   *        W E L C O M E  to  R O O T       *
> >   *                                         *
> >   *   Version   3.05/04     29 April 2003   *
> >   *                                         *
> >   *  You are welcome to visit our Web site  *
> >   *          http://root.cern.ch            *
> >   *                                         *
> >   *******************************************
> > 
> > Compiled for win32.
> > 
> > CINT/ROOT C/C++ Interpreter version 5.15.83, Apr 6 2003
> > Type ? for help. Commands must be C++ statements.
> > Enclose multiple statements between { }.
> > 
> > Welcome to the ROOT tutorials
> > 
> > 
> > Type ".x demos.C" to get a toolbar from which to execute the demos
> > 
> > Type ".x demoshelp.C" to see the help window
> > 
> > 
> > 
> > Type ".x xform.CC" to see the combined Qt/Root demo
> > 
> > 
> > 
> > Type ".x RootShower.CC" to see the RootShower complex exmaplen
> > root [0] TF1 *f = new TF1("f","sin(x)/x",0.,10.)
> > root [1] f->Draw()
> > <TCanvas::MakeDefCanvas>: created default TCanvas with name c1
> > root [2] gSystem->pwd()
> > (const char* 0xb85eec)"C:\\root"
> > root [3] .!cd
> > C:\root
> > root [4] Save 0:<.C> file as "X:/test.C" . C++ macro (*.cpp,*.cxx,*.C)
> > C++ Macro file: X:/test.C has been generated
> > 
> > root [4] gSystem->pwd()
> > (const char* 0xb85eec)"C:\\root"
> > root [5] .!cd
> > C:\root
> > 
> > > -----Original Message-----
> > > From: Faine, Valeri [mailto:fine@bnl.gov]
> > > Sent: Wednesday, May 07, 2003 5:10 PM
> > > To: 'Ed Oltman'; 'Roottalk@Pcroot. Cern. Ch'
> > > Subject: RE: [ROOT] "Save the selected Canvas/Pad as" --> changes
> > > default directory
> > >
> > >
> > > Hello Ed,
> > >   I can not reproduce your problem.
> > >   On other hand I pretty sure "Save As" doesn't change
> > >   the working directory.
> > >   Are you sure you are working with "win32" flavor?
> > >   Can you reproduce your problem with version http://root.bnl.gov
> ?-)
> > >
> > >                Valeri
> > >
> > >
> > > > -----Original Message-----
> > > > From: Ed Oltman [mailto:eoltman@imago.com]
> > > > Sent: Wednesday, May 07, 2003 4:26 PM
> > > > To: Faine, Valeri; 'Roottalk@Pcroot. Cern. Ch'
> > > > Subject: RE: [ROOT] "Save the selected Canvas/Pad as" --> changes
> > > default
> > > > directory
> > > >
> > > > Valeri,
> > > >
> > > >  Oops! my apologies!  I did use gSystem->pwd() and it displayed
> the
> > > > original
> > > > directory prior to the canvas's "save as".  I should get into the
> > > habit of
> > > > cut/paste.  Here's my interaction:
> > > >
> > > >
> > > > root [1] gSystem->pwd()
> > > > (const char* 0xb6a784)"c:\\analysis01"
> > > > root [2] .!cd
> > > > c:\analysis01
> > > > [ At this point I "Save As" the canvas to x:\test.c]
> > > > root [3] C++ Macro file: X:\test.C has been generated
> > > >
> > > > root [3] gSystem->pwd()
> > > > (const char* 0xb6a784)"c:\\analysis01"
> > > > root [4] .!cd
> > > > X:\
> > > >
> > > >
> > > > This does not make sense!
> > > >
> > > > Ed
> > > >
> > > > > -----Original Message-----
> > > > > From: Faine, Valeri [mailto:fine@bnl.gov]
> > > > > Sent: Wednesday, May 07, 2003 3:16 PM
> > > > > To: 'Ed Oltman'; 'Roottalk@Pcroot. Cern. Ch'
> > > > > Subject: RE: [ROOT] "Save the selected Canvas/Pad as" -->
> changes
> > > > > default directory
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > >
> > > > > > Hello,
> > > > > >
> > > > > >  I am using win32 root v3.05/3 on win2k.  When I save a canvas
> > > using
> > > > > that
> > > > > > window's "File->Save As" menu item, the root's (file system)
> > > directory
> > > > > > changes:
> > > > > >
> > > > > >  .!cd displays the directory that the canvas was saved in
> > > > > >
> > > > > > however,
> > > > > >
> > > > > >  gSystem->cd() displays the original directory prior to the
> > > Canvas's
> > > > > "Save
> > > > > > As"
> > > > > >
> > > > > > I suspect this is not the intended behavior (e.g. "Save As"
> > > changes
> > > > > the
> > > > > > default directory), but if it is, should'nt gSystem->cd()
> reflect
> > > this
> > > > > > change?
> > > > > >
> > > > >
> > > > >   Hello Ed,
> > > > >
> > > > > To get the current working directory one should use the methods
> > > > >
> > > > >                TSystem::pwd();
> > > > >
> > > > > What about cd()  I found no method TSystem::cd() at all.
> > > > >
> > > > > There is TSystem::cd(const char *path).
> > > > > What you suggest means the method should return its own input
> > > parameter.
> > > > > That is not very useful.  The method cd returns the replaced
> > > directory,
> > > > > i.e. one we have changed with the "path".
> > > > >
> > > > >    Valeri
> > > > >
> > > > >
> > > > >   Home
> > > > >   It seems to me this is the "Correct" behavior of cd method:
> > > > >
> > > > >    Bool_t cd(const char *path) { return ChangeDirectory(path); }
> > > > >
> > > > >   Because TWinNTSystem::ChangeDirectoiry() return the previous
> > > directory
> > > > >   There is no means to return the inout parameters.
> > > > >
> > > > > Rhe proper method to get the current working directory is
> > > > > TSystem::HomeDirectory()
> > > > > > Thanks,
> > > > > >  Ed Oltman
> > > > > >
> > > > >
> > > > >
> > > > >
> > >
> > >
> > >
> 
> 
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET