* cygerrno.h: New file. Use this throughout whenever errno manipulation is

required.
* errno.cc: Use DWORD to hold Windows errors.
(geterrno_from_win_error): New function.
(seterrno_from_win_error): Use geterrno_from_win_error to convert supplied
windows error (suggested by Corinna Vinschen).
* path.cc (symlink_info): Add error element.
* path.cc (path_conv::check): Remove errno setting.  Use new symlink_info errno
element to set path_conv error, where appropriate.
(symlink_info::check): Set error element rather than attempting to manipulate
errno.  Add more checks for trailing / and /..  even though they are currently
useless.  Avoid setting EINVAL.
* path.cc (normalize_posix_path): Correct check for trailing /.
This commit is contained in:
Christopher Faylor
2000-08-22 03:58:47 +00:00
parent 6b85369f82
commit 9e2baf8dfa
45 changed files with 202 additions and 132 deletions

View File

@@ -466,31 +466,4 @@ extern "C" char __stdcall **cur_environ ();
extern char *old_title;
extern BOOL display_title;
/*************************** errno manipulation ******************************/
void seterrno_from_win_error (const char *file, int line, int code);
void seterrno (const char *, int line);
#define __seterrno() seterrno (__FILE__, __LINE__)
#define __seterrno_from_win_error(val) seterrno_from_win_error (__FILE__, __LINE__, val)
#define set_errno(val) (_impure_ptr->_errno = (val))
#define get_errno() (_impure_ptr->_errno)
extern "C" void __stdcall set_sig_errno (int e);
class save_errno
{
int saved;
public:
save_errno () {saved = get_errno ();}
save_errno (int what) {saved = get_errno (); set_errno (what); }
void set (int what) {set_errno (what); saved = what;}
void reset () {saved = get_errno ();}
~save_errno () {set_errno (saved);}
};
extern const char *__sp_fn;
extern int __sp_ln;
#endif /* defined __cplusplus */