Fixed lines chains in IE, makefullpath() now uses standart libc functions.

This commit is contained in:
Alexander S. Aganichev 2000-05-23 05:42:59 +00:00
parent a3776ae1f6
commit dd6801476f
3 changed files with 51 additions and 1 deletions

View File

@ -12,6 +12,11 @@ ______________________________________________________________________
Notes for GoldED+ 1.1.4.5, May XX 2000 Notes for GoldED+ 1.1.4.5, May XX 2000
______________________________________________________________________ ______________________________________________________________________
- Fixed incorrect lines chain after insertion from file/clipboard.
- Function that builds full pathname bit adjusted for non-UNIX
systems. This should lead to better results there.
- Fixed wrong character display in editor mode when line empty. - Fixed wrong character display in editor mode when line empty.
- Filed incorrect cutting of line portion. - Filed incorrect cutting of line portion.

View File

@ -1128,6 +1128,8 @@ void IEclass::editimport(Line* __line, char* __filename, bool imptxt) {
__line = wrapins(&__line, &_tmpcol, &_tmprow, NO); __line = wrapins(&__line, &_tmpcol, &_tmprow, NO);
} }
__line->next = saveline; __line->next = saveline;
if(saveline)
saveline->prev = __line;
throw_free(buf); throw_free(buf);
} }

View File

@ -29,6 +29,9 @@
#ifndef __HAVE_DRIVES__ #ifndef __HAVE_DRIVES__
#include <pwd.h> #include <pwd.h>
#endif #endif
#ifdef __WIN32__
#include <windows.h>
#endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -116,6 +119,45 @@ bool maketruepath(string &dirname) {
char cwd[GMAXPATH]; char cwd[GMAXPATH];
getcwd(cwd, GMAXPATH); getcwd(cwd, GMAXPATH);
#ifdef __HAVE_DRIVES__ #ifdef __HAVE_DRIVES__
#ifdef __WIN32__
char expanded[GMAXPATH];
char *k;
if(GetFullPathName(dirname.c_str(), GMAXPATH, expanded, &k) == 0) {
dirname = cwd;
ok = false;
}
else {
if(access(expanded, R_OK) == 0)
dirname = expanded;
else {
dirname = cwd;
ok = false;
}
}
#elif defined __OS2__
char expanded[GMAXPATH];
if(_fullpath(expanded, dirname.c_str(), GMAXPATH) == 0) {
if(access(expanded, R_OK) == 0)
dirname = expanded;
else {
dirname = cwd;
ok = false;
}
}
else {
dirname = cwd;
ok = false;
}
#elif defined __DJGPP__
char expanded[GMAXPATH];
_fixpath(dirname.c_str(), expanded);
if(access(expanded, R_OK) == 0)
dirname = expanded;
else {
dirname = cwd;
ok = false;
}
#else
long inspos = -1; long inspos = -1;
if((dirname.length() == 2) && (dirname[1] == ':')) if((dirname.length() == 2) && (dirname[1] == ':'))
inspos = 2; inspos = 2;
@ -143,6 +185,7 @@ bool maketruepath(string &dirname) {
} }
chdir(cwd); chdir(cwd);
} }
#endif
#else #else
if(!dirname.empty() && (dirname[0] == '~')) { if(!dirname.empty() && (dirname[0] == '~')) {
const char *p = dirname.c_str()+1; const char *p = dirname.c_str()+1;