-static gint
-get_error_from_g_file_error (gint error)
-{
- switch (error) {
- case G_FILE_ERROR_ACCES:
- error = ERROR_ACCESS_DENIED;
- break;
- case G_FILE_ERROR_NAMETOOLONG:
- error = ERROR_FILENAME_EXCED_RANGE;
- break;
- case G_FILE_ERROR_NOENT:
- error = ERROR_FILE_NOT_FOUND;
- break;
- case G_FILE_ERROR_NOTDIR:
- error = ERROR_FILE_NOT_FOUND;
- break;
- case G_FILE_ERROR_ROFS:
- error = ERROR_ACCESS_DENIED;
- break;
- case G_FILE_ERROR_TXTBSY:
- error = ERROR_SHARING_VIOLATION;
- break;
- case G_FILE_ERROR_NOSPC:
- error = ERROR_HANDLE_DISK_FULL;
- break;
- case G_FILE_ERROR_NFILE:
- case G_FILE_ERROR_MFILE:
- error = ERROR_TOO_MANY_OPEN_FILES;
- break;
- case G_FILE_ERROR_BADF:
- error = ERROR_INVALID_HANDLE;
- break;
- case G_FILE_ERROR_INVAL:
- error = ERROR_INVALID_PARAMETER;
- break;
- case G_FILE_ERROR_AGAIN:
- error = ERROR_SHARING_VIOLATION;
- break;
- case G_FILE_ERROR_INTR:
- error = ERROR_IO_PENDING;
- break;
- case G_FILE_ERROR_PERM:
- error = ERROR_ACCESS_DENIED;
- break;
- case G_FILE_ERROR_FAILED:
- error = ERROR_INVALID_PARAMETER;
- break;
- case G_FILE_ERROR_NXIO:
- case G_FILE_ERROR_NOMEM:
- case G_FILE_ERROR_NODEV:
- case G_FILE_ERROR_FAULT:
- case G_FILE_ERROR_LOOP:
- case G_FILE_ERROR_PIPE:
- case G_FILE_ERROR_IO:
- default:
- error = ERROR_GEN_FAILURE;
- break;
-
- }
-
- return error;
-}
-
-static gint
-file_compare (gconstpointer a, gconstpointer b)
-{
- gchar *astr = *(gchar **) a;
- gchar *bstr = *(gchar **) b;
-
- return strcmp (astr, bstr);
-}
-
-static gint
-get_file_attributes (const char *filename)