Mercurial > hg > octave-nkf
diff liboctave/oct-env.h @ 2926:66ef74ee5d9f
[project @ 1997-05-05 03:20:52 by jwe]
author | jwe |
---|---|
date | Mon, 05 May 1997 03:40:21 +0000 |
parents | |
children | 5eef8a2294bd |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/liboctave/oct-env.h @@ -0,0 +1,135 @@ +/* + +Copyright (C) 1996, 1997 John W. Eaton + +This file is part of Octave. + +Octave is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2, or (at your option) any +later version. + +Octave is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Octave; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#if !defined (octave_env_h) +#define octave_env_h 1 + +#include <string> + +class +octave_env +{ +protected: + + octave_env (void); + +public: + + static string polite_directory_format (const string& name); + + static bool absolute_pathname (const string& s); + + static string base_pathname (const string& s); + + static string make_absolute (const string& s, const string& dot_path); + + static string getcwd (void); + + static string get_home_directory (void); + + static string get_program_name (void); + + static string get_program_invocation_name (void); + + static string get_user_name (void); + + static string get_host_name (void); + + static string getenv (const string& name); + + static void putenv (const string& name, const string& value); + + static bool chdir (const string& newdir); + + static void set_program_name (const string& s); + +private: + + static bool instance_ok (void); + + string do_polite_directory_format (const string& name) const; + + bool do_absolute_pathname (const string& s) const; + + string do_base_pathname (const string& s) const; + + string do_make_absolute (const string& s, const string& dot_path) const; + + string do_getcwd (void); + + string do_get_home_directory (void) const; + + string do_get_user_name (void) const; + + string do_get_host_name (void) const; + + string do_getenv (const string& name) const; + + void do_putenv (const string& name, const string& value) const; + + bool do_chdir (const string& newdir); + + void do_set_program_name (const string& s) const; + + void pathname_backup (string& path, int n) const; + + void error (int) const; + + void error (const string&) const; + + // No copying! + + octave_env (const octave_env&); + + octave_env& operator = (const octave_env&); + + // The real thing. + static octave_env *instance; + + // TRUE means follow symbolic links that point to directories just + // as if they are real directories. + bool follow_symbolic_links; + + // TRUE means that pwd always give verbatim directory, regardless + // of symbolic link following. + bool verbatim_pwd; + + // Where are we? + string current_directory; + + // Etc. + mutable string program_name; + + mutable string program_invocation_name; + + mutable string user_name; + + mutable string host_name; +}; + +#endif + +/* +;;; Local Variables: *** +;;; mode: C++ *** +;;; End: *** +*/