Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/d552865da1203aeae7a7d...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/d552865da1203aeae7a7dd7...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/d552865da1203aeae7a7dd7b3...
The branch, master has been updated
via d552865da1203aeae7a7dd7b3edd789051e66580 (commit)
from 16dea2e2bd5a1e30725c88294f5844630dd724bc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=d552865da1203aeae7a...
commit d552865da1203aeae7a7dd7b3edd789051e66580
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Use search provider iterator.
Use a List instead of an array as it is more flexible
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index 3a6451b..141de2f 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -216,10 +216,10 @@ CONST_STRPTR nativebmopts[OPTS_MAX_NATIVEBM];
CONST_STRPTR ditheropts[OPTS_MAX_DITHER];
CONST_STRPTR fontopts[6];
CONST_STRPTR gadlab[OPTS_LAST];
-STRPTR *websearch_list;
+struct List *websearch_list;
-STRPTR *ami_gui_opts_websearch(void);
-void ami_gui_opts_websearch_free(STRPTR *websearchlist);
+struct List *ami_gui_opts_websearch(void);
+void ami_gui_opts_websearch_free(struct List *websearchlist);
void ami_gui_opts_setup(void)
{
@@ -1312,7 +1312,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_SEARCH_PROV,
GA_RelVerify, TRUE,
CHOOSER_PopUp, TRUE,
- CHOOSER_LabelArray, websearch_list,
+ CHOOSER_Labels, websearch_list,
CHOOSER_Selected, nsoption_int(search_provider),
CHOOSER_MaxLabels, 40,
ChooserEnd,
@@ -2118,39 +2118,40 @@ BOOL ami_gui_opts_event(void)
return FALSE;
}
-STRPTR *ami_gui_opts_websearch(void)
+struct List *ami_gui_opts_websearch(void)
{
- char buf[300];
- ULONG ref = 0;
- STRPTR *websearchlist;
+ struct List *list;
+ struct Node *node;
+ const char *name;
+ int iter;
- websearchlist = AllocVecTagList(200, NULL); /* NB: Was not MEMF_PRIVATE */
+ list = AllocVecTagList(sizeof(struct List), NULL);
+ NewList(list);
- if (nsoption_charp(search_engines_file) == NULL) return websearchlist;
+ if (nsoption_charp(search_engines_file) == NULL) return list;
- FILE *f = fopen(nsoption_charp(search_engines_file), "r");
- if (f == NULL) return websearchlist;
-
- while (fgets(buf, sizeof(buf), f) != NULL) {
- if (buf[0] == '\0') continue;
- buf[strlen(buf)-1] = '\0';
- websearchlist[ref] = strdup(strtok(buf, "|"));
- ref++;
+ for (iter = search_web_iterate_providers(0, &name);
+ iter != -1;
+ iter = search_web_iterate_providers(iter, &name)) {
+ node = AllocChooserNode(CNA_Text, name, TAG_DONE);
+ AddTail(list, node);
}
- fclose(f);
- websearchlist[ref] = NULL;
- return websearchlist;
+ return list;
}
-void ami_gui_opts_websearch_free(STRPTR *websearchlist)
+void ami_gui_opts_websearch_free(struct List *websearchlist)
{
- ULONG ref = 0;
+ struct Node *node;
+ struct Node *nnode;
- while (websearchlist[ref] != NULL) {
- free(websearchlist[ref]);
- ref++;
- }
+ if(IsListEmpty(websearchlist)) return;
+ node = GetHead(websearchlist);
+
+ do {
+ nnode = GetSucc(node);
+ Remove(node);
+ } while(node = nnode);
FreeVec(websearchlist);
}
-----------------------------------------------------------------------
Summary of changes:
amiga/gui_options.c | 55 ++++++++++++++++++++++++++-------------------------
1 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index 3a6451b..141de2f 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -216,10 +216,10 @@ CONST_STRPTR nativebmopts[OPTS_MAX_NATIVEBM];
CONST_STRPTR ditheropts[OPTS_MAX_DITHER];
CONST_STRPTR fontopts[6];
CONST_STRPTR gadlab[OPTS_LAST];
-STRPTR *websearch_list;
+struct List *websearch_list;
-STRPTR *ami_gui_opts_websearch(void);
-void ami_gui_opts_websearch_free(STRPTR *websearchlist);
+struct List *ami_gui_opts_websearch(void);
+void ami_gui_opts_websearch_free(struct List *websearchlist);
void ami_gui_opts_setup(void)
{
@@ -1312,7 +1312,7 @@ void ami_gui_opts_open(void)
GA_ID, GID_OPTS_SEARCH_PROV,
GA_RelVerify, TRUE,
CHOOSER_PopUp, TRUE,
- CHOOSER_LabelArray, websearch_list,
+ CHOOSER_Labels, websearch_list,
CHOOSER_Selected, nsoption_int(search_provider),
CHOOSER_MaxLabels, 40,
ChooserEnd,
@@ -2118,39 +2118,40 @@ BOOL ami_gui_opts_event(void)
return FALSE;
}
-STRPTR *ami_gui_opts_websearch(void)
+struct List *ami_gui_opts_websearch(void)
{
- char buf[300];
- ULONG ref = 0;
- STRPTR *websearchlist;
+ struct List *list;
+ struct Node *node;
+ const char *name;
+ int iter;
- websearchlist = AllocVecTagList(200, NULL); /* NB: Was not MEMF_PRIVATE */
+ list = AllocVecTagList(sizeof(struct List), NULL);
+ NewList(list);
- if (nsoption_charp(search_engines_file) == NULL) return websearchlist;
+ if (nsoption_charp(search_engines_file) == NULL) return list;
- FILE *f = fopen(nsoption_charp(search_engines_file), "r");
- if (f == NULL) return websearchlist;
-
- while (fgets(buf, sizeof(buf), f) != NULL) {
- if (buf[0] == '\0') continue;
- buf[strlen(buf)-1] = '\0';
- websearchlist[ref] = strdup(strtok(buf, "|"));
- ref++;
+ for (iter = search_web_iterate_providers(0, &name);
+ iter != -1;
+ iter = search_web_iterate_providers(iter, &name)) {
+ node = AllocChooserNode(CNA_Text, name, TAG_DONE);
+ AddTail(list, node);
}
- fclose(f);
- websearchlist[ref] = NULL;
- return websearchlist;
+ return list;
}
-void ami_gui_opts_websearch_free(STRPTR *websearchlist)
+void ami_gui_opts_websearch_free(struct List *websearchlist)
{
- ULONG ref = 0;
+ struct Node *node;
+ struct Node *nnode;
- while (websearchlist[ref] != NULL) {
- free(websearchlist[ref]);
- ref++;
- }
+ if(IsListEmpty(websearchlist)) return;
+ node = GetHead(websearchlist);
+
+ do {
+ nnode = GetSucc(node);
+ Remove(node);
+ } while(node = nnode);
FreeVec(websearchlist);
}
--
NetSurf Browser