]> Nishi Git Mirror - mandshurica.git/commitdiff
db write
authornishi <nishi@f982e544-4a7d-3444-ad1a-fde59a2a69f1>
Sat, 20 Apr 2024 12:59:17 +0000 (12:59 +0000)
committernishi <nishi@f982e544-4a7d-3444-ad1a-fde59a2a69f1>
Sat, 20 Apr 2024 12:59:17 +0000 (12:59 +0000)
git-svn-id: file:///raid/svn-main/nishi-mandshurica/trunk@57 f982e544-4a7d-3444-ad1a-fde59a2a69f1

Mandshurica/db.c
Mandshurica/file.c
Mandshurica/ms_db.h

index cd0dba6dba2bf5bbd396b23af487adb41f5c9521..f47c23e25568eaefb35cb58f62f30c5e2e6087f0 100644 (file)
@@ -37,7 +37,7 @@
 #include <string.h>
 
 struct ms_db* mandshurica_db_open(const char* path) {
-       FILE* fp = fopen(path, "rb");
+       FILE* fp = fopen(path, "r+b");
        if(fp != NULL) {
                struct ms_db* db = malloc(sizeof(*db));
                db->fp = fp;
@@ -51,6 +51,16 @@ void mandshurica_db_close(struct ms_db* db) {
        free(db);
 }
 
+void mandshurica_db_write(struct ms_db* db, const char* key, const char* value) {
+       flockfile(db->fp);
+       fseek(db->fp, 0, SEEK_END);
+       fwrite(key, 1, strlen(key), db->fp);
+       fwrite(":", 1, 1, db->fp);
+       fwrite(value, 1, strlen(value), db->fp);
+       fwrite("\n", 1, 1, db->fp);
+       funlockfile(db->fp);
+}
+
 /* key:value */
 char* mandshurica_db_get(struct ms_db* db, const char* key) {
        fseek(db->fp, 0, SEEK_SET);
index 74eeffcaf6d810f36f63bc227fe1ebc4ab0a4f1f..e25937917322301fba209b0e9cd798fcf25d0028 100644 (file)
@@ -57,6 +57,9 @@ char* get_mime(const char* _path) {
                        } else if(strcmp(ext, "html") == 0) {
                                free(typ);
                                typ = mandshurica_strdup("text/html");
+                       } else if(strcmp(ext, "ico") == 0) {
+                               free(typ);
+                               typ = mandshurica_strdup("image/vnd.microsoft.icon");
                        }
                        free(path);
                        return typ;
index 1327d1fd04574d68ce298399fdf6c7d8e790d725..3722cfc7ed3cf97f4bef6778f3e920006687e228 100644 (file)
@@ -40,5 +40,6 @@ struct ms_db {
 struct ms_db* mandshurica_db_open(const char* path);
 void mandshurica_db_close(struct ms_db* db);
 char* mandshurica_db_get(struct ms_db* db, const char* key);
+void mandshurica_db_write(struct ms_db* db, const char* key, const char* value);
 
 #endif