summaryrefslogtreecommitdiff
path: root/src/bookmarks.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-08-14 12:15:41 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-08-14 12:15:41 +0300
commitbf390e96735a156cb221385cc057aeb957c088b9 (patch)
tree31dee87547bda83d54c998da3480174d2dfee816 /src/bookmarks.c
parent67721eea67abc0da13cd3d346dc85f1d223da54d (diff)
Adding and viewing bookmarks
Diffstat (limited to 'src/bookmarks.c')
-rw-r--r--src/bookmarks.c22
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
88void add_Bookmarks(iBookmarks *d, const iString *url, const iString *title, const iString *tags) { 102void 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}