]> git.tuebingen.mpg.de Git - osl.git/blobdiff - osl.c
Add #ifdef wrapper for osl.h.
[osl.git] / osl.c
diff --git a/osl.c b/osl.c
index 3f55ed4c24fc3217e6f4925b1b0e6b8d82de550a..a9dcc29bd48790ff93d54027aa2052bc373c6373 100644 (file)
--- a/osl.c
+++ b/osl.c
@@ -10,7 +10,6 @@
 
 #include "log.h"
 #include "osl.h"
 
 #include "log.h"
 #include "osl.h"
-#include "error.h"
 #include "util.h"
 #include "osl_core.h"
 
 #include "util.h"
 #include "osl_core.h"
 
@@ -38,8 +37,6 @@ static const unsigned int errmsgidx[] = {
 
 __export const char *osl_strerror(int num)
 {
 
 __export const char *osl_strerror(int num)
 {
-       if (IS_SYSTEM_ERROR(num))
-               return strerror((num) & ((1 << SYSTEM_ERROR_BIT) - 1));
        return msgstr.str + errmsgidx[num];
 }
 
        return msgstr.str + errmsgidx[num];
 }
 
@@ -534,7 +531,7 @@ __export int osl_create_table(const struct osl_table_description *desc)
                        continue;
                if (!table_dir) {
                        ret = osl_mkdir(desc->dir, 0777);
                        continue;
                if (!table_dir) {
                        ret = osl_mkdir(desc->dir, 0777);
-                       if (ret < 0 && !is_errno(-ret, EEXIST))
+                       if (ret < 0 && ret != -E_OSL_DIR_EXISTS)
                                goto out;
                        table_dir = make_message("%s/%s", desc->dir,
                                desc->name);
                                goto out;
                        table_dir = make_message("%s/%s", desc->dir,
                                desc->name);
@@ -1070,12 +1067,10 @@ __export int osl_open_table(const struct osl_table_description *table_desc,
                if (!dirname)
                        goto err;
                /* check if directory exists */
                if (!dirname)
                        goto err;
                /* check if directory exists */
-               ret = stat(dirname, &statbuf);
+               ret = osl_stat(dirname, &statbuf);
                free(dirname);
                free(dirname);
-               if (ret < 0) {
-                       ret = -E_OSL_STAT;
+               if (ret < 0)
                        goto err;
                        goto err;
-               }
                ret = -E_OSL_NOTDIR;
                if (!S_ISDIR(statbuf.st_mode))
                        goto err;
                ret = -E_OSL_NOTDIR;
                if (!S_ISDIR(statbuf.st_mode))
                        goto err;
@@ -1111,7 +1106,7 @@ static int create_disk_storage_object_dir(const struct osl_table *t,
                return -E_OSL_NOMEM;
        ret = osl_mkdir(dirname, 0777);
        free(dirname);
                return -E_OSL_NOMEM;
        ret = osl_mkdir(dirname, 0777);
        free(dirname);
-       if (ret < 0 && !is_errno(-ret, EEXIST))
+       if (ret < 0 && ret != -E_OSL_DIR_EXISTS)
                return ret;
        return 1;
 }
                return ret;
        return 1;
 }
@@ -1178,15 +1173,15 @@ static int delete_disk_storage_file(const struct osl_table *t, unsigned col_num,
                const char *ds_name)
 {
        char *dirname, *filename = disk_storage_path(t, col_num, ds_name);
                const char *ds_name)
 {
        char *dirname, *filename = disk_storage_path(t, col_num, ds_name);
-       int ret, err;
+       int ret = 1;
 
        if (!filename)
                return -E_OSL_NOMEM;
 
        if (!filename)
                return -E_OSL_NOMEM;
-       ret = unlink(filename);
-       err = errno;
+       if (unlink(filename) < 0)
+               ret = errno == ENOENT? -E_OSL_NOENT : -E_OSL_UNLINK;
        free(filename);
        if (ret < 0)
        free(filename);
        if (ret < 0)
-               return -E_OSL_UNLINK;
+               return ret;
        if (!(t->desc->flags & OSL_LARGE_TABLE))
                return 1;
        dirname = disk_storage_dirname(t, col_num, ds_name);
        if (!(t->desc->flags & OSL_LARGE_TABLE))
                return 1;
        dirname = disk_storage_dirname(t, col_num, ds_name);
@@ -1563,7 +1558,7 @@ __export int osl_update_object(struct osl_table *t, const struct osl_row *r,
                if (ret < 0)
                        return ret;
                ret = delete_disk_storage_file(t, col_num, ds_name);
                if (ret < 0)
                        return ret;
                ret = delete_disk_storage_file(t, col_num, ds_name);
-               if (ret < 0 && !is_errno(-ret, ENOENT)) {
+               if (ret < 0 && ret != -E_OSL_NOENT) {
                        free(ds_name);
                        return ret;
                }
                        free(ds_name);
                        return ret;
                }