diff options
Diffstat (limited to 'src/bookmarks.c')
-rw-r--r-- | src/bookmarks.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/bookmarks.c b/src/bookmarks.c index babfc323..b023e90a 100644 --- a/src/bookmarks.c +++ b/src/bookmarks.c | |||
@@ -55,8 +55,17 @@ void load_Bookmarks(iBookmarks *d, const char *dirPath) { | |||
55 | const iRangecc src = range_Block(collect_Block(readAll_File(f))); | 55 | const iRangecc src = range_Block(collect_Block(readAll_File(f))); |
56 | iRangecc line = iNullRange; | 56 | iRangecc line = iNullRange; |
57 | while (nextSplit_Rangecc(&src, "\n", &line)) { | 57 | while (nextSplit_Rangecc(&src, "\n", &line)) { |
58 | /* Skip empty lines. */ { | ||
59 | iRangecc ln = line; | ||
60 | trim_Rangecc(&ln); | ||
61 | if (isEmpty_Range(&ln)) { | ||
62 | continue; | ||
63 | } | ||
64 | } | ||
58 | iBookmark bm; | 65 | iBookmark bm; |
59 | init_Bookmark(&bm); | 66 | init_Bookmark(&bm); |
67 | bm.icon = strtoul(line.start, NULL, 16); | ||
68 | line.start += 9; | ||
60 | char *endPos; | 69 | char *endPos; |
61 | initSeconds_Time(&bm.when, strtod(line.start, &endPos)); | 70 | initSeconds_Time(&bm.when, strtod(line.start, &endPos)); |
62 | line.start = skipSpace_CStr(endPos); | 71 | line.start = skipSpace_CStr(endPos); |
@@ -77,20 +86,27 @@ void save_Bookmarks(const iBookmarks *d, const char *dirPath) { | |||
77 | iString *str = collectNew_String(); | 86 | iString *str = collectNew_String(); |
78 | iConstForEach(Array, i, &d->bookmarks) { | 87 | iConstForEach(Array, i, &d->bookmarks) { |
79 | const iBookmark *bm = i.value; | 88 | const iBookmark *bm = i.value; |
80 | format_String(str, "%lf %s\%s\n%s\n", seconds_Time(&bm->when), cstr_String(&bm->url), | 89 | format_String(str, |
81 | cstr_String(&bm->title), cstr_String(&bm->tags)); | 90 | "%08x %lf %s\n%s\n%s\n", |
91 | bm->icon, | ||
92 | seconds_Time(&bm->when), | ||
93 | cstr_String(&bm->url), | ||
94 | cstr_String(&bm->title), | ||
95 | cstr_String(&bm->tags)); | ||
82 | writeData_File(f, cstr_String(str), size_String(str)); | 96 | writeData_File(f, cstr_String(str), size_String(str)); |
83 | } | 97 | } |
84 | } | 98 | } |
85 | iRelease(f); | 99 | iRelease(f); |
86 | } | 100 | } |
87 | 101 | ||
88 | void add_Bookmarks(iBookmarks *d, const iString *url, const iString *title, const iString *tags) { | 102 | void add_Bookmarks(iBookmarks *d, const iString *url, const iString *title, const iString *tags, |
103 | iChar icon) { | ||
89 | iBookmark bm; | 104 | iBookmark bm; |
90 | init_Bookmark(&bm); | 105 | init_Bookmark(&bm); |
91 | set_String(&bm.url, url); | 106 | set_String(&bm.url, url); |
92 | set_String(&bm.title, title); | 107 | set_String(&bm.title, title); |
93 | set_String(&bm.tags, tags); | 108 | set_String(&bm.tags, tags); |
109 | bm.icon = icon; | ||
94 | initCurrent_Time(&bm.when); | 110 | initCurrent_Time(&bm.when); |
95 | pushBack_Array(&d->bookmarks, &bm); | 111 | pushBack_Array(&d->bookmarks, &bm); |
96 | } | 112 | } |