Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/04cbc08c5726556e2a7c4...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/04cbc08c5726556e2a7c4b5...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/04cbc08c5726556e2a7c4b565...
The branch, master has been updated
via 04cbc08c5726556e2a7c4b565d3cc933bac7b9bd (commit)
via 520e81f98d7560cb39a9141c698723e2e36aa675 (commit)
via 9505b8e5143b3b11f86469818258f1b628053d08 (commit)
from 78dec4d5156d738c0d4901e6761ab9f406d81834 (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=04cbc08c5726556e2a7...
commit 04cbc08c5726556e2a7c4b565d3cc933bac7b9bd
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Don't use ami_NewMinList as it potentially writes past the MinList structure on
OS3.
Instead we use ami_AllocMinList and pointers.
diff --git a/amiga/launch.c b/amiga/launch.c
index 9ac1c5b..1f2b9e1 100755
--- a/amiga/launch.c
+++ b/amiga/launch.c
@@ -38,7 +38,7 @@
struct Library *OpenURLBase = NULL;
struct OpenURLIFace *IOpenURL = NULL;
-struct MinList ami_unsupportedprotocols;
+struct MinList *ami_unsupportedprotocols;
struct ami_protocol
{
@@ -65,7 +65,7 @@ static struct ami_protocol *ami_openurl_add_protocol(const char *url)
return NULL;
}
- AddTail((struct List *)&ami_unsupportedprotocols, (struct Node *)ami_p);
+ AddTail((struct List *)ami_unsupportedprotocols, (struct Node *)ami_p);
return ami_p;
}
@@ -86,6 +86,8 @@ static void ami_openurl_free_list(struct MinList *list)
FreeVec(node);
node = NULL;
}while((node=nnode));
+
+ FreeVec(list);
}
static BOOL ami_openurl_check_list(struct MinList *list, nsurl *url)
@@ -132,7 +134,7 @@ void ami_openurl_open(void)
}
}
- ami_NewMinList(&ami_unsupportedprotocols);
+ ami_unsupportedprotocols = ami_AllocMinList();
}
void ami_openurl_close(void)
@@ -142,7 +144,7 @@ void ami_openurl_close(void)
#endif
if(OpenURLBase) CloseLibrary(OpenURLBase);
- ami_openurl_free_list(&ami_unsupportedprotocols);
+ ami_openurl_free_list(ami_unsupportedprotocols);
}
nserror gui_launch_url(struct nsurl *url)
@@ -152,7 +154,7 @@ nserror gui_launch_url(struct nsurl *url)
#endif
char *launchurl = NULL;
- if(ami_openurl_check_list(&ami_unsupportedprotocols, url) == FALSE)
+ if(ami_openurl_check_list(ami_unsupportedprotocols, url) == FALSE)
{
if(IOpenURL)
{
diff --git a/amiga/object.h b/amiga/object.h
index 6ea9bd1..be96504 100755
--- a/amiga/object.h
+++ b/amiga/object.h
@@ -57,7 +57,6 @@ void FreeObjList(struct MinList *objlist);
/** List abstraction as OS3 appears to have problems with NewMinList() **/
struct MinList *ami_AllocMinList(void);
-void ami_NewMinList(struct MinList *list);
/** Initialisation for itempool **/
bool ami_object_init(void);
diff --git a/amiga/tree.c b/amiga/tree.c
index 5408209..3fdb529 100644
--- a/amiga/tree.c
+++ b/amiga/tree.c
@@ -109,7 +109,7 @@ struct treeview_window {
char *sslerr;
char *sslaccept;
char *sslreject;
- struct MinList shared_pens;
+ struct MinList *shared_pens;
};
struct ami_tree_redraw_req {
@@ -887,7 +887,8 @@ void ami_tree_close(struct treeview_window *twin)
DisposeObject(twin->objects[OID_MAIN]);
DelObjectNoFree(twin->node);
ami_free_layers(&twin->globals);
- ami_plot_release_pens(&twin->shared_pens);
+ ami_plot_release_pens(twin->shared_pens);
+ FreeVec(twin->shared_pens);
for(i=0;i<AMI_TREE_MENU_ITEMS;i++) {
if(twin->menu_name[i] && (twin->menu_name[i] != NM_BARLABEL))
@@ -1485,8 +1486,8 @@ struct treeview_window *ami_tree_create(int flags,
twin->ssl_data = ssl_data;
twin->tree = tree_create(flags, &ami_tree_callbacks, twin);
- ami_NewMinList(&twin->shared_pens);
- twin->globals.shared_pens = &twin->shared_pens;
+ twin->shared_pens = ami_AllocMinList();
+ twin->globals.shared_pens = twin->shared_pens;
return twin;
}
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=520e81f98d7560cb39a...
commit 520e81f98d7560cb39a9141c698723e2e36aa675
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Alloc specifying local charset on OS3 as we can't get this from Locale
diff --git a/amiga/options.h b/amiga/options.h
index c46c979..0c4db5c 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -90,5 +90,6 @@ NSOPTION_BOOL(accept_lang_locale, true)
/* Options relevant for OS3 only */
#ifndef __amigaos4__
NSOPTION_BOOL(friend_bitmap, false)
+NSOPTION_STRING(local_charset, "ISO-8859-1")
#endif
diff --git a/amiga/os3support.h b/amiga/os3support.h
index 5f21fad..c1db054 100644
--- a/amiga/os3support.h
+++ b/amiga/os3support.h
@@ -140,7 +140,7 @@
#define ESetInfo SetInfo
/* Only used in one place we haven't ifdeffed, where it returns the charset name */
-#define ObtainCharsetInfo(A,B,C) (const char *)"ISO-8859-1"
+#define ObtainCharsetInfo(A,B,C) (const char *)nsoption_charp(local_charset)
/* DOS */
#define AllocSysObjectTags(A,B,C,D) CreateMsgPort() /* Assume ASOT_PORT for now */
diff --git a/amiga/utf8.c b/amiga/utf8.c
index 9bf1b1a..91d7c90 100755
--- a/amiga/utf8.c
+++ b/amiga/utf8.c
@@ -23,6 +23,7 @@
#include <proto/diskfont.h>
#include <diskfont/diskfonttag.h>
+#include "utils/nsoption.h"
#include "utils/utf8.h"
#include "desktop/gui_utf8.h"
@@ -37,6 +38,8 @@ nserror utf8_from_local_encoding(const char *string, size_t len, char
**result)
charset = GetDiskFontCtrl(DFCTRL_CHARSET);
encname = (const char *) ObtainCharsetInfo(DFCS_NUMBER, charset, DFCS_MIMENAME);
+#else
+ encname = nsoption_charp(local_charset);
#endif
return utf8_from_enc(string,encname,len,result,NULL);
@@ -51,6 +54,8 @@ nserror utf8_to_local_encoding(const char *string, size_t len, char
**result)
charset = GetDiskFontCtrl(DFCTRL_CHARSET);
encname = (const char *) ObtainCharsetInfo(DFCS_NUMBER, charset, DFCS_MIMENAME);
+#else
+ encname = nsoption_charp(local_charset);
#endif
return utf8_to_enc(string,encname,len,result);
@@ -96,3 +101,4 @@ static struct gui_utf8_table utf8_table = {
};
struct gui_utf8_table *amiga_utf8_table = &utf8_table;
+
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=9505b8e5143b3b11f86...
commit 9505b8e5143b3b11f86469818258f1b628053d08
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Make most of the prefs GUI display (and hopefully work) under OS3
page.gadget is not a public class in OS3
Some gadgets which will not work have been temporarily #ifdef'd for OS4 only
Some gadgets which are not relevant have been disabled to avoid random values being
set
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index 7e800d2..16b0c7b 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -454,8 +454,12 @@ void ami_gui_opts_open(void)
return;
}
+#ifdef __amigaos4__
if(LIB_IS_AT_LEAST((struct Library *)IntuitionBase, 53, 42)) ptr_disable = TRUE;
-
+#else
+ ptr_disable = TRUE;
+#endif
+
if(nsoption_charp(pubscreen_name))
{
if(strcmp(nsoption_charp(pubscreen_name),"Workbench") == 0)
@@ -723,6 +727,7 @@ void ami_gui_opts_open(void)
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
LAYOUT_Label, gadlab[GRP_OPTS_SCREEN],
+#ifdef __amigaos4__
LAYOUT_AddChild, LayoutHObj,
LAYOUT_AddChild, gow->objects[GID_OPTS_SCREEN] =
RadioButtonObj,
GA_ID, GID_OPTS_SCREEN,
@@ -750,6 +755,9 @@ void ami_gui_opts_open(void)
LayoutEnd,
CHILD_WeightedHeight,0,
LayoutEnd,
+#else
+#warning FIXME FOR OS3
+#endif
LayoutEnd, // screen
CHILD_WeightedHeight,0,
LAYOUT_AddChild, LayoutVObj,
@@ -782,7 +790,6 @@ void ami_gui_opts_open(void)
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
LAYOUT_Label, gadlab[GRP_OPTS_MOUSE],
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_PTRTRUE] = CheckBoxObj,
GA_ID, GID_OPTS_PTRTRUE,
GA_RelVerify, TRUE,
@@ -790,7 +797,6 @@ void ami_gui_opts_open(void)
GA_Selected, nsoption_bool(truecolour_mouse_pointers),
GA_Disabled, ptr_disable,
CheckBoxEnd,
-#endif
LAYOUT_AddChild, gow->objects[GID_OPTS_PTROS] = CheckBoxObj,
GA_ID, GID_OPTS_PTROS,
GA_RelVerify, TRUE,
@@ -811,6 +817,7 @@ void ami_gui_opts_open(void)
*/
PAGE_Add, LayoutVObj,
LAYOUT_AddChild, LayoutVObj,
+#ifdef __amigaos4__
LAYOUT_AddChild, LayoutVObj,
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
@@ -882,6 +889,9 @@ void ami_gui_opts_open(void)
LABEL_Text, gadlab[GID_OPTS_PROXY_BYPASS],
LabelEnd,
LayoutEnd, // proxy
+#else
+#warning FIXME FOR OS3
+#endif
CHILD_WeightedHeight, 0,
LAYOUT_AddChild, LayoutVObj,
LAYOUT_SpaceOuter, TRUE,
@@ -937,6 +947,7 @@ void ami_gui_opts_open(void)
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
LAYOUT_Label, gadlab[GRP_OPTS_IMAGES],
+#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_NATIVEBM] = ChooserObj,
GA_ID, GID_OPTS_NATIVEBM,
GA_RelVerify, TRUE,
@@ -958,6 +969,9 @@ void ami_gui_opts_open(void)
CHILD_Label, LabelObj,
LABEL_Text, gadlab[GID_OPTS_DITHERQ],
LabelEnd,
+#else
+#warning FIXME FOR OS3
+#endif
LAYOUT_AddChild, gow->objects[GID_OPTS_SCALEQ] = CheckBoxObj,
GA_ID, GID_OPTS_SCALEQ,
GA_Disabled, scaledisabled,
@@ -1084,6 +1098,7 @@ void ami_gui_opts_open(void)
CHILD_Label, LabelObj,
LABEL_Text, gadlab[GID_OPTS_FONT_FANTASY],
LabelEnd,
+#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_DEFAULT] = ChooserObj,
GA_ID, GID_OPTS_FONT_DEFAULT,
GA_RelVerify, TRUE,
@@ -1094,6 +1109,9 @@ void ami_gui_opts_open(void)
CHILD_Label, LabelObj,
LABEL_Text, gadlab[GID_OPTS_FONT_DEFAULT],
LabelEnd,
+#else
+#warning FIXME for OS3
+#endif
LayoutEnd, // font faces
CHILD_WeightedHeight, 0,
LAYOUT_AddChild, LayoutHObj,
@@ -1138,7 +1156,6 @@ void ami_gui_opts_open(void)
LABEL_Text, gadlab[GID_OPTS_FONT_MINSIZE],
LabelEnd,
LayoutEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, LayoutVObj,
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
@@ -1148,9 +1165,11 @@ void ami_gui_opts_open(void)
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_FONT_ANTIALIASING],
GA_Selected, nsoption_bool(font_antialiasing),
+#ifndef __amigaos4__
+ GA_Disabled, TRUE,
+#endif
CheckBoxEnd,
LayoutEnd,
-#endif
LayoutEnd,
CHILD_WeightedHeight, 0,
LayoutEnd, // page vgroup
@@ -1274,15 +1293,16 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_OVERWRITE],
GA_Selected, nsoption_bool(ask_overwrite),
CheckBoxEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_NOTIFY] = CheckBoxObj,
GA_ID, GID_OPTS_NOTIFY,
GA_RelVerify, TRUE,
GA_Disabled, download_notify_disabled,
GA_Text, gadlab[GID_OPTS_NOTIFY],
GA_Selected, nsoption_bool(download_notify),
- CheckBoxEnd,
+#ifndef __amigaos4__
+ GA_Disabled, TRUE,
#endif
+ CheckBoxEnd,
LayoutEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_DLDIR] = GetFileObj,
GA_ID, GID_OPTS_DLDIR,
@@ -1314,14 +1334,15 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_CLOSE_NO_QUIT],
GA_Selected, nsoption_bool(close_no_quit),
CheckBoxEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_DOCKY] = CheckBoxObj,
GA_ID, GID_OPTS_DOCKY,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_DOCKY],
GA_Selected, !nsoption_bool(hide_docky_icon),
- CheckBoxEnd,
+#ifndef __amigaos4__
+ GA_Disabled, TRUE,
#endif
+ CheckBoxEnd,
LayoutEnd, // behaviour
CHILD_WeightedHeight, 0,
LayoutEnd, // hgroup
@@ -1368,7 +1389,6 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_FASTSCROLL],
GA_Selected, nsoption_bool(faster_scroll),
CheckBoxEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_SELECTMENU] =
CheckBoxObj,
GA_ID, GID_OPTS_SELECTMENU,
GA_RelVerify, TRUE,
@@ -1376,7 +1396,6 @@ void ami_gui_opts_open(void)
GA_Selected, !nsoption_bool(core_select_menu),
GA_Disabled, !ami_selectmenu_is_safe(),
CheckBoxEnd,
-#endif
LayoutEnd, // misc
CHILD_WeightedHeight, 0,
diff --git a/amiga/libs.c b/amiga/libs.c
index 76ac876..7c130a8 100644
--- a/amiga/libs.c
+++ b/amiga/libs.c
@@ -185,6 +185,9 @@ AMINS_CLASS_STRUCT(Label);
AMINS_CLASS_STRUCT(Layout);
AMINS_CLASS_STRUCT(ListBrowser);
AMINS_CLASS_STRUCT(RadioButton);
+#ifndef __amigaos4__
+AMINS_CLASS_STRUCT(Page);
+#endif
AMINS_CLASS_STRUCT(Scroller);
AMINS_CLASS_STRUCT(Space);
AMINS_CLASS_STRUCT(SpeedBar);
@@ -260,6 +263,10 @@ bool ami_libs_open(void)
AMINS_CLASS_OPEN("gadgets/string.gadget", 44, String, STRING,
false)
AMINS_CLASS_OPEN("window.class", 44, Window, WINDOW,
false)
+#ifndef __amigaos4__
+ PageClass = PAGE_GetClass();
+#endif
+
return true;
}
diff --git a/amiga/libs.h b/amiga/libs.h
index 57a430f..aa3622a 100644
--- a/amiga/libs.h
+++ b/amiga/libs.h
@@ -36,6 +36,10 @@ extern Class *IntegerClass;
extern Class *LabelClass;
extern Class *LayoutClass;
extern Class *ListBrowserClass;
+#ifndef __amigaos4__
+/* OS4 uses a public class name instead */
+extern Class *PageClass;
+#endif
extern Class *RadioButtonClass;
extern Class *ScrollerClass;
extern Class *SpaceClass;
@@ -59,7 +63,11 @@ extern Class *WindowClass;
#define LabelObj NewObject(LabelClass, NULL
#define LayoutHObj NewObject(LayoutClass, NULL, LAYOUT_Orientation,
LAYOUT_ORIENT_HORIZ
#define LayoutVObj NewObject(LayoutClass, NULL, LAYOUT_Orientation, LAYOUT_ORIENT_VERT
+#ifdef __amigaos4__
#define PageObj NewObject(NULL, "page.gadget"
+#else
+#define PageObj NewObject(PageClass, NULL
+#endif
#define RadioButtonObj NewObject(RadioButtonClass, NULL
#define ScrollerObj NewObject(ScrollerClass, NULL
#define SpaceObj NewObject(SpaceClass, NULL
-----------------------------------------------------------------------
Summary of changes:
amiga/gui_options.c | 41 ++++++++++++++++++++++++++++++-----------
amiga/launch.c | 12 +++++++-----
amiga/libs.c | 7 +++++++
amiga/libs.h | 8 ++++++++
amiga/object.h | 1 -
amiga/options.h | 1 +
amiga/os3support.h | 2 +-
amiga/tree.c | 9 +++++----
amiga/utf8.c | 6 ++++++
9 files changed, 65 insertions(+), 22 deletions(-)
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index 7e800d2..16b0c7b 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -454,8 +454,12 @@ void ami_gui_opts_open(void)
return;
}
+#ifdef __amigaos4__
if(LIB_IS_AT_LEAST((struct Library *)IntuitionBase, 53, 42)) ptr_disable = TRUE;
-
+#else
+ ptr_disable = TRUE;
+#endif
+
if(nsoption_charp(pubscreen_name))
{
if(strcmp(nsoption_charp(pubscreen_name),"Workbench") == 0)
@@ -723,6 +727,7 @@ void ami_gui_opts_open(void)
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
LAYOUT_Label, gadlab[GRP_OPTS_SCREEN],
+#ifdef __amigaos4__
LAYOUT_AddChild, LayoutHObj,
LAYOUT_AddChild, gow->objects[GID_OPTS_SCREEN] =
RadioButtonObj,
GA_ID, GID_OPTS_SCREEN,
@@ -750,6 +755,9 @@ void ami_gui_opts_open(void)
LayoutEnd,
CHILD_WeightedHeight,0,
LayoutEnd,
+#else
+#warning FIXME FOR OS3
+#endif
LayoutEnd, // screen
CHILD_WeightedHeight,0,
LAYOUT_AddChild, LayoutVObj,
@@ -782,7 +790,6 @@ void ami_gui_opts_open(void)
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
LAYOUT_Label, gadlab[GRP_OPTS_MOUSE],
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_PTRTRUE] = CheckBoxObj,
GA_ID, GID_OPTS_PTRTRUE,
GA_RelVerify, TRUE,
@@ -790,7 +797,6 @@ void ami_gui_opts_open(void)
GA_Selected, nsoption_bool(truecolour_mouse_pointers),
GA_Disabled, ptr_disable,
CheckBoxEnd,
-#endif
LAYOUT_AddChild, gow->objects[GID_OPTS_PTROS] = CheckBoxObj,
GA_ID, GID_OPTS_PTROS,
GA_RelVerify, TRUE,
@@ -811,6 +817,7 @@ void ami_gui_opts_open(void)
*/
PAGE_Add, LayoutVObj,
LAYOUT_AddChild, LayoutVObj,
+#ifdef __amigaos4__
LAYOUT_AddChild, LayoutVObj,
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
@@ -882,6 +889,9 @@ void ami_gui_opts_open(void)
LABEL_Text, gadlab[GID_OPTS_PROXY_BYPASS],
LabelEnd,
LayoutEnd, // proxy
+#else
+#warning FIXME FOR OS3
+#endif
CHILD_WeightedHeight, 0,
LAYOUT_AddChild, LayoutVObj,
LAYOUT_SpaceOuter, TRUE,
@@ -937,6 +947,7 @@ void ami_gui_opts_open(void)
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
LAYOUT_Label, gadlab[GRP_OPTS_IMAGES],
+#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_NATIVEBM] = ChooserObj,
GA_ID, GID_OPTS_NATIVEBM,
GA_RelVerify, TRUE,
@@ -958,6 +969,9 @@ void ami_gui_opts_open(void)
CHILD_Label, LabelObj,
LABEL_Text, gadlab[GID_OPTS_DITHERQ],
LabelEnd,
+#else
+#warning FIXME FOR OS3
+#endif
LAYOUT_AddChild, gow->objects[GID_OPTS_SCALEQ] = CheckBoxObj,
GA_ID, GID_OPTS_SCALEQ,
GA_Disabled, scaledisabled,
@@ -1084,6 +1098,7 @@ void ami_gui_opts_open(void)
CHILD_Label, LabelObj,
LABEL_Text, gadlab[GID_OPTS_FONT_FANTASY],
LabelEnd,
+#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_DEFAULT] = ChooserObj,
GA_ID, GID_OPTS_FONT_DEFAULT,
GA_RelVerify, TRUE,
@@ -1094,6 +1109,9 @@ void ami_gui_opts_open(void)
CHILD_Label, LabelObj,
LABEL_Text, gadlab[GID_OPTS_FONT_DEFAULT],
LabelEnd,
+#else
+#warning FIXME for OS3
+#endif
LayoutEnd, // font faces
CHILD_WeightedHeight, 0,
LAYOUT_AddChild, LayoutHObj,
@@ -1138,7 +1156,6 @@ void ami_gui_opts_open(void)
LABEL_Text, gadlab[GID_OPTS_FONT_MINSIZE],
LabelEnd,
LayoutEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, LayoutVObj,
LAYOUT_SpaceOuter, TRUE,
LAYOUT_BevelStyle, BVS_GROUP,
@@ -1148,9 +1165,11 @@ void ami_gui_opts_open(void)
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_FONT_ANTIALIASING],
GA_Selected, nsoption_bool(font_antialiasing),
+#ifndef __amigaos4__
+ GA_Disabled, TRUE,
+#endif
CheckBoxEnd,
LayoutEnd,
-#endif
LayoutEnd,
CHILD_WeightedHeight, 0,
LayoutEnd, // page vgroup
@@ -1274,15 +1293,16 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_OVERWRITE],
GA_Selected, nsoption_bool(ask_overwrite),
CheckBoxEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_NOTIFY] = CheckBoxObj,
GA_ID, GID_OPTS_NOTIFY,
GA_RelVerify, TRUE,
GA_Disabled, download_notify_disabled,
GA_Text, gadlab[GID_OPTS_NOTIFY],
GA_Selected, nsoption_bool(download_notify),
- CheckBoxEnd,
+#ifndef __amigaos4__
+ GA_Disabled, TRUE,
#endif
+ CheckBoxEnd,
LayoutEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_DLDIR] = GetFileObj,
GA_ID, GID_OPTS_DLDIR,
@@ -1314,14 +1334,15 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_CLOSE_NO_QUIT],
GA_Selected, nsoption_bool(close_no_quit),
CheckBoxEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_DOCKY] = CheckBoxObj,
GA_ID, GID_OPTS_DOCKY,
GA_RelVerify, TRUE,
GA_Text, gadlab[GID_OPTS_DOCKY],
GA_Selected, !nsoption_bool(hide_docky_icon),
- CheckBoxEnd,
+#ifndef __amigaos4__
+ GA_Disabled, TRUE,
#endif
+ CheckBoxEnd,
LayoutEnd, // behaviour
CHILD_WeightedHeight, 0,
LayoutEnd, // hgroup
@@ -1368,7 +1389,6 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_FASTSCROLL],
GA_Selected, nsoption_bool(faster_scroll),
CheckBoxEnd,
-#ifdef __amigaos4__
LAYOUT_AddChild, gow->objects[GID_OPTS_SELECTMENU] =
CheckBoxObj,
GA_ID, GID_OPTS_SELECTMENU,
GA_RelVerify, TRUE,
@@ -1376,7 +1396,6 @@ void ami_gui_opts_open(void)
GA_Selected, !nsoption_bool(core_select_menu),
GA_Disabled, !ami_selectmenu_is_safe(),
CheckBoxEnd,
-#endif
LayoutEnd, // misc
CHILD_WeightedHeight, 0,
diff --git a/amiga/launch.c b/amiga/launch.c
index 9ac1c5b..1f2b9e1 100755
--- a/amiga/launch.c
+++ b/amiga/launch.c
@@ -38,7 +38,7 @@
struct Library *OpenURLBase = NULL;
struct OpenURLIFace *IOpenURL = NULL;
-struct MinList ami_unsupportedprotocols;
+struct MinList *ami_unsupportedprotocols;
struct ami_protocol
{
@@ -65,7 +65,7 @@ static struct ami_protocol *ami_openurl_add_protocol(const char *url)
return NULL;
}
- AddTail((struct List *)&ami_unsupportedprotocols, (struct Node *)ami_p);
+ AddTail((struct List *)ami_unsupportedprotocols, (struct Node *)ami_p);
return ami_p;
}
@@ -86,6 +86,8 @@ static void ami_openurl_free_list(struct MinList *list)
FreeVec(node);
node = NULL;
}while((node=nnode));
+
+ FreeVec(list);
}
static BOOL ami_openurl_check_list(struct MinList *list, nsurl *url)
@@ -132,7 +134,7 @@ void ami_openurl_open(void)
}
}
- ami_NewMinList(&ami_unsupportedprotocols);
+ ami_unsupportedprotocols = ami_AllocMinList();
}
void ami_openurl_close(void)
@@ -142,7 +144,7 @@ void ami_openurl_close(void)
#endif
if(OpenURLBase) CloseLibrary(OpenURLBase);
- ami_openurl_free_list(&ami_unsupportedprotocols);
+ ami_openurl_free_list(ami_unsupportedprotocols);
}
nserror gui_launch_url(struct nsurl *url)
@@ -152,7 +154,7 @@ nserror gui_launch_url(struct nsurl *url)
#endif
char *launchurl = NULL;
- if(ami_openurl_check_list(&ami_unsupportedprotocols, url) == FALSE)
+ if(ami_openurl_check_list(ami_unsupportedprotocols, url) == FALSE)
{
if(IOpenURL)
{
diff --git a/amiga/libs.c b/amiga/libs.c
index 76ac876..7c130a8 100644
--- a/amiga/libs.c
+++ b/amiga/libs.c
@@ -185,6 +185,9 @@ AMINS_CLASS_STRUCT(Label);
AMINS_CLASS_STRUCT(Layout);
AMINS_CLASS_STRUCT(ListBrowser);
AMINS_CLASS_STRUCT(RadioButton);
+#ifndef __amigaos4__
+AMINS_CLASS_STRUCT(Page);
+#endif
AMINS_CLASS_STRUCT(Scroller);
AMINS_CLASS_STRUCT(Space);
AMINS_CLASS_STRUCT(SpeedBar);
@@ -260,6 +263,10 @@ bool ami_libs_open(void)
AMINS_CLASS_OPEN("gadgets/string.gadget", 44, String, STRING,
false)
AMINS_CLASS_OPEN("window.class", 44, Window, WINDOW,
false)
+#ifndef __amigaos4__
+ PageClass = PAGE_GetClass();
+#endif
+
return true;
}
diff --git a/amiga/libs.h b/amiga/libs.h
index 57a430f..aa3622a 100644
--- a/amiga/libs.h
+++ b/amiga/libs.h
@@ -36,6 +36,10 @@ extern Class *IntegerClass;
extern Class *LabelClass;
extern Class *LayoutClass;
extern Class *ListBrowserClass;
+#ifndef __amigaos4__
+/* OS4 uses a public class name instead */
+extern Class *PageClass;
+#endif
extern Class *RadioButtonClass;
extern Class *ScrollerClass;
extern Class *SpaceClass;
@@ -59,7 +63,11 @@ extern Class *WindowClass;
#define LabelObj NewObject(LabelClass, NULL
#define LayoutHObj NewObject(LayoutClass, NULL, LAYOUT_Orientation,
LAYOUT_ORIENT_HORIZ
#define LayoutVObj NewObject(LayoutClass, NULL, LAYOUT_Orientation, LAYOUT_ORIENT_VERT
+#ifdef __amigaos4__
#define PageObj NewObject(NULL, "page.gadget"
+#else
+#define PageObj NewObject(PageClass, NULL
+#endif
#define RadioButtonObj NewObject(RadioButtonClass, NULL
#define ScrollerObj NewObject(ScrollerClass, NULL
#define SpaceObj NewObject(SpaceClass, NULL
diff --git a/amiga/object.h b/amiga/object.h
index 6ea9bd1..be96504 100755
--- a/amiga/object.h
+++ b/amiga/object.h
@@ -57,7 +57,6 @@ void FreeObjList(struct MinList *objlist);
/** List abstraction as OS3 appears to have problems with NewMinList() **/
struct MinList *ami_AllocMinList(void);
-void ami_NewMinList(struct MinList *list);
/** Initialisation for itempool **/
bool ami_object_init(void);
diff --git a/amiga/options.h b/amiga/options.h
index c46c979..0c4db5c 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -90,5 +90,6 @@ NSOPTION_BOOL(accept_lang_locale, true)
/* Options relevant for OS3 only */
#ifndef __amigaos4__
NSOPTION_BOOL(friend_bitmap, false)
+NSOPTION_STRING(local_charset, "ISO-8859-1")
#endif
diff --git a/amiga/os3support.h b/amiga/os3support.h
index 5f21fad..c1db054 100644
--- a/amiga/os3support.h
+++ b/amiga/os3support.h
@@ -140,7 +140,7 @@
#define ESetInfo SetInfo
/* Only used in one place we haven't ifdeffed, where it returns the charset name */
-#define ObtainCharsetInfo(A,B,C) (const char *)"ISO-8859-1"
+#define ObtainCharsetInfo(A,B,C) (const char *)nsoption_charp(local_charset)
/* DOS */
#define AllocSysObjectTags(A,B,C,D) CreateMsgPort() /* Assume ASOT_PORT for now */
diff --git a/amiga/tree.c b/amiga/tree.c
index 5408209..3fdb529 100644
--- a/amiga/tree.c
+++ b/amiga/tree.c
@@ -109,7 +109,7 @@ struct treeview_window {
char *sslerr;
char *sslaccept;
char *sslreject;
- struct MinList shared_pens;
+ struct MinList *shared_pens;
};
struct ami_tree_redraw_req {
@@ -887,7 +887,8 @@ void ami_tree_close(struct treeview_window *twin)
DisposeObject(twin->objects[OID_MAIN]);
DelObjectNoFree(twin->node);
ami_free_layers(&twin->globals);
- ami_plot_release_pens(&twin->shared_pens);
+ ami_plot_release_pens(twin->shared_pens);
+ FreeVec(twin->shared_pens);
for(i=0;i<AMI_TREE_MENU_ITEMS;i++) {
if(twin->menu_name[i] && (twin->menu_name[i] != NM_BARLABEL))
@@ -1485,8 +1486,8 @@ struct treeview_window *ami_tree_create(int flags,
twin->ssl_data = ssl_data;
twin->tree = tree_create(flags, &ami_tree_callbacks, twin);
- ami_NewMinList(&twin->shared_pens);
- twin->globals.shared_pens = &twin->shared_pens;
+ twin->shared_pens = ami_AllocMinList();
+ twin->globals.shared_pens = twin->shared_pens;
return twin;
}
diff --git a/amiga/utf8.c b/amiga/utf8.c
index 9bf1b1a..91d7c90 100755
--- a/amiga/utf8.c
+++ b/amiga/utf8.c
@@ -23,6 +23,7 @@
#include <proto/diskfont.h>
#include <diskfont/diskfonttag.h>
+#include "utils/nsoption.h"
#include "utils/utf8.h"
#include "desktop/gui_utf8.h"
@@ -37,6 +38,8 @@ nserror utf8_from_local_encoding(const char *string, size_t len, char
**result)
charset = GetDiskFontCtrl(DFCTRL_CHARSET);
encname = (const char *) ObtainCharsetInfo(DFCS_NUMBER, charset, DFCS_MIMENAME);
+#else
+ encname = nsoption_charp(local_charset);
#endif
return utf8_from_enc(string,encname,len,result,NULL);
@@ -51,6 +54,8 @@ nserror utf8_to_local_encoding(const char *string, size_t len, char
**result)
charset = GetDiskFontCtrl(DFCTRL_CHARSET);
encname = (const char *) ObtainCharsetInfo(DFCS_NUMBER, charset, DFCS_MIMENAME);
+#else
+ encname = nsoption_charp(local_charset);
#endif
return utf8_to_enc(string,encname,len,result);
@@ -96,3 +101,4 @@ static struct gui_utf8_table utf8_table = {
};
struct gui_utf8_table *amiga_utf8_table = &utf8_table;
+
--
NetSurf Browser