On Samstag, 27. September 2008, Dmitry Potapov wrote: > +static inline int get_file_attr(const char *fname, > WIN32_FILE_ATTRIBUTE_DATA *fdata) +{ > + if (GetFileAttributesExA(fname, GetFileExInfoStandard, fdata)) > + return 0; > + > + switch (GetLastError()) { > + case ERROR_ACCESS_DENIED: > + case ERROR_SHARING_VIOLATION: > + case ERROR_LOCK_VIOLATION: > + case ERROR_SHARING_BUFFER_EXCEEDED: > + return EACCES; > + case ERROR_BUFFER_OVERFLOW: > + return ENAMETOOLONG; > + case ERROR_NOT_ENOUGH_MEMORY: > + return ENOMEM; > + default: > + return ENOENT; > + } > +} I've long wished for a function that translates Win32 error codes to errno codes. It would be useful in a number of other places, too. Here you introduce a new function get_file_attr() that is nothing but GetFileAttributesExA() followed by such an error code translation. I suggest that we leave the original call to GetFileAttributesExA() alone and have a function win32_to_errno(void) that is just the switch statement above. -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html