From eb18a553fa70d87cc0c6d5d35768e384e7bbef73 Mon Sep 17 00:00:00 2001 From: pirro Date: Tue, 28 Feb 1995 10:25:02 +0000 Subject: [PATCH] Aggiunte configureazioni per utente git-svn-id: svn://10.65.10.50/trunk@1044 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/config.cpp | 56 ++++++++++++++++++++++++++++++++++------------ include/config.h | 8 +++---- 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/include/config.cpp b/include/config.cpp index fb627348c..f2e81a88b 100755 --- a/include/config.cpp +++ b/include/config.cpp @@ -1,13 +1,13 @@ +#include #include +#include #include #include +#include #include #include -HIDDEN const char * files[] = {"prassi.ini", "prassis.ini", - "prassid.ini", "fconv.ini"}; - extern "C" { int rename(const char*, const char*); @@ -262,20 +262,48 @@ void TConfig::init(const char *fn, const char* pa) TConfig::TConfig(int which_config, const char* paragraph) -: _file(files[which_config]) -{ - if (which_config == CONFIG_DITTA) +{ + switch (which_config) { - _file.insert(format("%s/", main_app().get_firm_dir())); + case CONFIG_DITTA: + _file << main_app().get_firm_dir() << '/' << "prassid.ini"; + if (!fexist(_file)) fcopy("prassid.ini", _file); + break; + case CONFIG_STUDIO: + _file = "prassi.ini"; + break; + case CONFIG_USER: + _file = main_app().get_firm_dir(); + if (_file.not_empty()) + { + for (int i = _file.len()-1; i >= 0; i--) + if (_file[i] == '/' || _file[i] == '\\') break; + _file.cut(i+1); + } + _file << "config"; if (!fexist(_file)) - fcopy(files[CONFIG_DITTA], _file); - } + { +#if XVT_OS==XVT_OS_SCOUNIX + mkdir(_file, 0777); +#else + mkdir(_file); +#endif + } + _file << '/' << main_app().user() << ".ini"; + break; + default: + _file = "prassi.ini"; + break; + } + if (!fexist(_file)) - fatal_box("Impossibile aprire la configurazione %s", - which_config == CONFIG_GENERAL ? "generale" : - which_config == CONFIG_STUDIO ? "di studio" : - which_config == CONFIG_DITTA ? "della ditta": "per la conversione archivi"); - init( _file, paragraph ); + { + FILE* c = fopen(_file, "w"); + CHECKS(c, "Impossibile aprire il file di configurazione %s", (const char*)_file); + fclose(c); + } + + init(_file, paragraph); } TConfig::TConfig(const char *fn, const char* pa) diff --git a/include/config.h b/include/config.h index 3229f9f02..6952047d4 100755 --- a/include/config.h +++ b/include/config.h @@ -1,7 +1,7 @@ #ifndef __CONFIG_H #define __CONFIG_H -#ifndef XVT_INCL +#ifndef INCL_XVTH #include #endif @@ -9,10 +9,6 @@ #include #endif -#ifndef __STRINGS_H -#include -#endif - class ofstream; // questo sara' il principale, per ora non c'e' @@ -23,6 +19,8 @@ class ofstream; #define CONFIG_DITTA 2 // file conversioni archivi #define CONFIG_FCONV 3 +// file parametri utente +#define CONFIG_USER 4 class TConfig : public TObject