applicat.cpp Tolta una riga vuota

files.cpp       Cambiato il metodo TRecnotype& flags() in long& flags()
files.h         Vedi sopra
golem.cpp       Usate sempre le estensioni in minuscolo
golem.h         Resi pubblici i metodi goto_url e print_url
viswin.cpp      Usato il novello metodo goto_url al posto di notepad


git-svn-id: svn://10.65.10.50/trunk@5575 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1997-11-07 08:51:14 +00:00
parent 8378eb183a
commit dd0a101b38
6 changed files with 59 additions and 79 deletions

View File

@ -371,7 +371,6 @@ const char* TApplication::get_module_name() const
TString module(scanner.token().mid(3));
if (ok) ok = has_module(aut);
if (!ok)
{
TToken_string em(extra_modules());

View File

@ -226,7 +226,7 @@ TRecnotype & TDir::eox () const
return _dir->EOX;
}
TRecnotype & TDir::flags () const
long& TDir::flags () const
{
return _dir->Flags;

View File

@ -134,7 +134,7 @@ public:
// @cmember Ritorna l'EOX del file selezionato
TRecnotype& eox() const;
// @cmember Ritorna il flag del file selezionato
TRecnotype& flags() const;
long& flags() const;
// @cmember Ritorna la lunghezza del tracciato record in bytes
word& len() const;
// @cmember Ritorna lo stato d'errore del file

View File

@ -45,11 +45,12 @@ HIDDEN bool file2app(const char* filename, TString& app)
if (!ok)
{
char ext[_MAX_EXT];
TString ext(_MAX_EXT);
if (*filename == '.')
strncpy(ext, filename, _MAX_EXT);
ext = filename;
else
_splitpath(filename, NULL, NULL, NULL, ext);
_splitpath(filename, NULL, NULL, NULL, ext.get_buffer());
ext.lower();
TFilename key;
if (get_reg_key(HKEY_CLASSES_ROOT, ext, key) == ERROR_SUCCESS)
@ -109,36 +110,23 @@ HIDDEN word file2icon(const char* filename)
if (ext != ".exe")
{
// Prima controlla il mio registro delle applicazioni ...
TConfig link(CONFIG_USER, "Link");
key = link.get(ext.mid(1, -1)); // Ignora il .
if (key.not_empty())
if (get_reg_key(HKEY_CLASSES_ROOT, ext, key) == ERROR_SUCCESS)
{
ext = key.ext();
if (ext.empty())
key.ext("exe");
}
else // ... poi controlla il registro di Windows
{
if (get_reg_key(HKEY_CLASSES_ROOT, ext, key) == ERROR_SUCCESS)
key << "\\DefaultIcon";
if (get_reg_key(HKEY_CLASSES_ROOT, key, key) == ERROR_SUCCESS) // Windows 95 only
{
key << "\\DefaultIcon";
if (get_reg_key(HKEY_CLASSES_ROOT, key, key) == ERROR_SUCCESS) // Windows 95 only
const int comma = key.find(',');
if (comma > 0)
{
const int comma = key.find(',');
if (comma > 0)
{
icon_number = atoi(key.mid(comma+1));
key.cut(comma);
}
}
else
{
if (!file2app(filename, key))
file2app(".htm", key);
icon_number = atoi(key.mid(comma+1));
key.cut(comma);
}
}
else
{
if (!file2app(filename, key))
file2app(".htm", key);
}
}
}
else
@ -159,18 +147,22 @@ HIDDEN word file2icon(const char* filename)
return icon;
}
HIDDEN bool goto_url(const char* url)
bool goto_url(const char* url)
{
TFilename app(url);
app.lower();
const TString ext(app.ext());
TConfig link(CONFIG_USER, "Link");
app = link.get(app.ext());
app = link.get(ext);
if (app.not_empty())
{
app << ' ' << url;
UINT error = WinExec(app, SW_SHOWNORMAL);
if (error > 32)
return TRUE;
else
link.set(ext, "");
}
bool retflag = FALSE;
@ -195,7 +187,7 @@ HIDDEN bool goto_url(const char* url)
}
HIDDEN bool print_url(const char* url)
bool print_url(const char* url)
{
HINSTANCE hinst = ShellExecute(NULL, "print", url, NULL, NULL, SW_SHOWNORMAL);
DWORD winst = DWORD((DWORD*)hinst);
@ -423,7 +415,7 @@ void TGolem_field::set_window_data(const char* data)
char* pipe = strchr(data, '|');
if (pipe)
{
*pipe = '\0';
*pipe = '\0'; // Poor man TToken_string
icon = file2icon(data);
*pipe = '|';
}
@ -476,7 +468,7 @@ bool TGolem_field::autosave(TRelation& r)
TToken_string new_value(get(), '\n');
if (new_value != _old_value)
{
TFilename golem_path(_MAX_PATH);
TFilename golem_path;
TDir dir; dir.get(r.lfile().num());
const long ditta = dir.is_com() ? 0 : prefix().get_codditta();
golem_path = firm2dir(ditta);

View File

@ -5,6 +5,9 @@
#include <strings.h>
#endif
bool goto_url(const char* url);
bool print_url(const char* url);
// @doc EXTERNAL
// @class TDDE | Classe per la gestione del DDE

View File

@ -6,6 +6,7 @@
#include <config.h>
#include <controls.h>
#include <execp.h>
#include <golem.h>
#include <mailbox.h>
#include <printapp.h>
#include <urldefid.h>
@ -2214,49 +2215,34 @@ void TViswin::sel_to_clipboard()
bool TViswin::call_editor()
{
TConfig cnf (CONFIG_USER, "Link");
const TFilename editor (cnf.get ("txt", NULL, -1, "notepad"));
TFilename newfilename; newfilename.tempdir();
bool ok = FALSE;
FILE_SPEC fs;
xvt_fsys_convert_str_to_dir(newfilename.get_buffer(), &fs.dir);
strcpy (fs.type, "txt");
strcpy (fs.name, "tmp");
strcpy (fs.creator, "PRINT");
if (!editor.empty ())
xvt_fsys_save_dir ();
bool ok = xvt_dm_post_file_save (&fs, "Salva il file con il nome:") == FL_OK;
xvt_fsys_restore_dir ();
if (ok)
{
TFilename newfilename; newfilename.tempdir();
FILE_SPEC fs;
xvt_fsys_convert_str_to_dir((char*)(const char*)newfilename, &fs.dir);
strcpy (fs.type, "txt");
strcpy (fs.name, "");
xvt_fsys_convert_dir_to_str (&fs.dir, newfilename.get_buffer(), newfilename.size());
newfilename.add(fs.name);
xvt_fsys_save_dir ();
ok = xvt_dm_post_file_save (&fs, "Salva il file con il nome:") == FL_OK;
xvt_fsys_restore_dir ();
TPoint p1, p2;
if (_isselection)
adjust_selection (p1, p2);
if (ok)
if (_txt.write (newfilename, _isselection ? &p1 : NULL,
_isselection ? &p2 : NULL))
{
char path[256];
xvt_fsys_convert_dir_to_str (&fs.dir, path, sizeof (path));
newfilename = path;
newfilename << '/' << fs.name;
TPoint p1, p2;
if (_isselection)
adjust_selection (p1, p2);
if (_txt.write (newfilename, _isselection ? &p1 : NULL,
_isselection ? &p2 : NULL))
{
newfilename.insert (" ", 0);
newfilename.insert (editor, 0);
TExternal_app edit (newfilename);
if (edit.run(TRUE, FALSE))
beep ();
else
ok = TRUE;
}
ok = goto_url(newfilename);
}
}
else
warning_box ("Nessun editor specificato nei parametri studio");
return ok;
}