* 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:
@@ -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 */
|
||||
|
Reference in New Issue
Block a user