summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/content.c14
-rw-r--r--content/content_protected.h7
-rw-r--r--content/handlers/css/css.c13
-rw-r--r--content/handlers/html/html.c6
-rw-r--r--content/handlers/html/html_script.c12
-rw-r--r--content/handlers/image/bmp.c4
-rw-r--r--content/handlers/image/gif.c4
-rw-r--r--content/handlers/image/ico.c4
-rw-r--r--content/handlers/image/jpeg.c10
-rw-r--r--content/handlers/image/nssprite.c4
-rw-r--r--content/handlers/image/png.c10
-rw-r--r--content/handlers/image/rsvg.c6
-rw-r--r--content/handlers/image/svg.c17
-rw-r--r--content/handlers/image/webp.c8
-rw-r--r--content/handlers/javascript/duktape/dukky.c15
-rw-r--r--content/handlers/javascript/js.h2
-rw-r--r--content/handlers/javascript/none/none.c2
-rw-r--r--content/handlers/text/textplain.c8
-rw-r--r--desktop/save_complete.c65
-rw-r--r--frontends/amiga/arexx.c8
-rw-r--r--frontends/amiga/clipboard.c21
-rw-r--r--frontends/amiga/dt_anim.c6
-rw-r--r--frontends/amiga/dt_picture.c12
-rw-r--r--frontends/amiga/dt_sound.c6
-rw-r--r--frontends/amiga/file.c21
-rw-r--r--frontends/amiga/iff_dr2d.c21
-rw-r--r--frontends/gtk/viewsource.c9
-rw-r--r--frontends/riscos/content-handlers/artworks.c32
-rw-r--r--frontends/riscos/content-handlers/draw.c8
-rw-r--r--frontends/riscos/content-handlers/sprite.c7
-rw-r--r--frontends/riscos/gui.c4
-rw-r--r--frontends/riscos/save.c8
-rw-r--r--frontends/riscos/theme_install.c61
-rw-r--r--include/netsurf/content.h2
34 files changed, 240 insertions, 197 deletions
diff --git a/content/content.c b/content/content.c
index bb5c47b33..3a5628096 100644
--- a/content/content.c
+++ b/content/content.c
@@ -1239,27 +1239,21 @@ int content__get_available_width(struct content *c)
/* exported interface documented in content/content.h */
-const char *content_get_source_data(hlcache_handle *h, unsigned long *size)
+const uint8_t *content_get_source_data(hlcache_handle *h, size_t *size)
{
return content__get_source_data(hlcache_handle_get_content(h), size);
}
/* exported interface documented in content/content_protected.h */
-const char *content__get_source_data(struct content *c, unsigned long *size)
+const uint8_t *content__get_source_data(struct content *c, size_t *size)
{
- const uint8_t *data;
- size_t len;
-
assert(size != NULL);
+ /** \todo check if the content check should be an assert */
if (c == NULL)
return NULL;
- data = llcache_handle_get_source_data(c->llcache, &len);
-
- *size = (unsigned long) len;
-
- return (const char *) data;
+ return llcache_handle_get_source_data(c->llcache, size);
}
/* exported interface documented in content/content.h */
diff --git a/content/content_protected.h b/content/content_protected.h
index 99a05cf49..0101790d1 100644
--- a/content/content_protected.h
+++ b/content/content_protected.h
@@ -17,8 +17,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** \file
- * Content handling (interface).
+/**
+ * \file
+ * Protected interface to Content handling.
*
* The content functions manipulate struct contents, which correspond to URLs.
*/
@@ -255,7 +256,7 @@ int content__get_available_width(struct content *c);
* \param size Pointer to location to receive byte size of source.
* \return Pointer to source data.
*/
-const char *content__get_source_data(struct content *c, unsigned long *size);
+const uint8_t *content__get_source_data(struct content *c, size_t *size);
/**
* Invalidate content reuse data.
diff --git a/content/handlers/css/css.c b/content/handlers/css/css.c
index dda044d15..0dcbe9907 100644
--- a/content/handlers/css/css.c
+++ b/content/handlers/css/css.c
@@ -80,8 +80,6 @@ typedef struct {
* imports array */
} nscss_import_ctx;
-static bool nscss_process_data(struct content *c, const char *data,
- unsigned int size);
static bool nscss_convert(struct content *c);
static void nscss_destroy(struct content *c);
static nserror nscss_clone(const struct content *old, struct content **newc);
@@ -245,7 +243,8 @@ static nserror nscss_create_css_data(struct content_css_data *c,
* \param size Number of bytes to process
* \return true on success, false on failure
*/
-bool nscss_process_data(struct content *c, const char *data, unsigned int size)
+static bool
+nscss_process_data(struct content *c, const char *data, unsigned int size)
{
nscss_content *css = (nscss_content *) c;
css_error error;
@@ -374,8 +373,8 @@ nserror nscss_clone(const struct content *old, struct content **newc)
{
const nscss_content *old_css = (const nscss_content *) old;
nscss_content *new_css;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
nserror error;
new_css = calloc(1, sizeof(nscss_content));
@@ -402,7 +401,9 @@ nserror nscss_clone(const struct content *old, struct content **newc)
data = content__get_source_data(&new_css->base, &size);
if (size > 0) {
- if (nscss_process_data(&new_css->base, data, size) == false) {
+ if (nscss_process_data(&new_css->base,
+ (char *)data,
+ (unsigned int)size) == false) {
content_destroy(&new_css->base);
return NSERROR_CLONE_FAILED;
}
diff --git a/content/handlers/html/html.c b/content/handlers/html/html.c
index 4ffdb396a..a7fea6dfe 100644
--- a/content/handlers/html/html.c
+++ b/content/handlers/html/html.c
@@ -1114,8 +1114,8 @@ html_process_encoding_change(struct content *c,
dom_hubbub_parser_params parse_params;
dom_hubbub_error error;
const char *encoding;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
/* Retrieve new encoding */
encoding = dom_hubbub_parser_get_encoding(html->parser,
@@ -1181,7 +1181,7 @@ html_process_encoding_change(struct content *c,
* it cannot be changed again.
*/
error = dom_hubbub_parser_parse_chunk(html->parser,
- (const uint8_t *)source_data,
+ source_data,
source_size);
return libdom_hubbub_error_to_nserror(error);
diff --git a/content/handlers/html/html_script.c b/content/handlers/html/html_script.c
index 1affb767c..203dc5089 100644
--- a/content/handlers/html/html_script.c
+++ b/content/handlers/html/html_script.c
@@ -42,7 +42,7 @@
#include "html/html.h"
#include "html/html_internal.h"
-typedef bool (script_handler_t)(struct jscontext *jscontext, const char *data, size_t size, const char *name);
+typedef bool (script_handler_t)(struct jscontext *jscontext, const uint8_t *data, size_t size, const char *name);
static script_handler_t *select_script_handler(content_type ctype)
@@ -90,8 +90,8 @@ nserror html_script_exec(html_content *c, bool allow_defer)
if (content_get_status(s->data.handle) ==
CONTENT_STATUS_DONE) {
/* external script is now available */
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
data = content_get_source_data(
s->data.handle, &size );
script_handler(c->jscontext, data, size,
@@ -305,8 +305,8 @@ convert_script_sync_cb(hlcache_handle *script,
script_handler = select_script_handler(content_get_type(s->data.handle));
if (script_handler != NULL && parent->jscontext != NULL) {
/* script has a handler */
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
data = content_get_source_data(s->data.handle, &size );
script_handler(parent->jscontext, data, size,
nsurl_access(hlcache_handle_get_url(s->data.handle)));
@@ -532,7 +532,7 @@ exec_inline_script(html_content *c, dom_node *node, dom_string *mimetype)
if (script_handler != NULL) {
script_handler(c->jscontext,
- dom_string_data(script),
+ (const uint8_t *)dom_string_data(script),
dom_string_byte_length(script),
"?inline script?");
}
diff --git a/content/handlers/image/bmp.c b/content/handlers/image/bmp.c
index 48a37fb24..75d8880f3 100644
--- a/content/handlers/image/bmp.c
+++ b/content/handlers/image/bmp.c
@@ -122,8 +122,8 @@ static bool nsbmp_convert(struct content *c)
nsbmp_content *bmp = (nsbmp_content *) c;
bmp_result res;
uint32_t swidth;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
char *title;
/* set the bmp data */
diff --git a/content/handlers/image/gif.c b/content/handlers/image/gif.c
index 253265caa..ee85a6309 100644
--- a/content/handlers/image/gif.c
+++ b/content/handlers/image/gif.c
@@ -236,8 +236,8 @@ static bool nsgif_convert(struct content *c)
{
nsgif_content *gif = (nsgif_content *) c;
int res;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
char *title;
/* Get the animation */
diff --git a/content/handlers/image/ico.c b/content/handlers/image/ico.c
index 85aab9f64..467533376 100644
--- a/content/handlers/image/ico.c
+++ b/content/handlers/image/ico.c
@@ -120,8 +120,8 @@ static bool nsico_convert(struct content *c)
nsico_content *ico = (nsico_content *) c;
struct bmp_image *bmp;
bmp_result res;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
char *title;
/* set the ico data */
diff --git a/content/handlers/image/jpeg.c b/content/handlers/image/jpeg.c
index e2f5f8f26..52cdb2201 100644
--- a/content/handlers/image/jpeg.c
+++ b/content/handlers/image/jpeg.c
@@ -168,8 +168,8 @@ static void nsjpeg_error_exit(j_common_ptr cinfo)
static struct bitmap *
jpeg_cache_convert(struct content *c)
{
- uint8_t *source_data; /* Jpeg source data */
- unsigned long source_size; /* length of Jpeg source data */
+ const uint8_t *source_data; /* Jpeg source data */
+ size_t source_size; /* length of Jpeg source data */
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
jmp_buf setjmp_buffer;
@@ -188,7 +188,7 @@ jpeg_cache_convert(struct content *c)
nsjpeg_term_source };
/* obtain jpeg source data and perfom minimal sanity checks */
- source_data = (uint8_t *)content__get_source_data(c, &source_size);
+ source_data = content__get_source_data(c, &source_size);
if ((source_data == NULL) ||
(source_size < MIN_JPEG_SIZE)) {
@@ -315,8 +315,8 @@ static bool nsjpeg_convert(struct content *c)
nsjpeg_skip_input_data, jpeg_resync_to_restart,
nsjpeg_term_source };
union content_msg_data msg_data;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
char *title;
/* check image header is valid and get width/height */
diff --git a/content/handlers/image/nssprite.c b/content/handlers/image/nssprite.c
index 269c24356..916bcbd34 100644
--- a/content/handlers/image/nssprite.c
+++ b/content/handlers/image/nssprite.c
@@ -98,8 +98,8 @@ static bool nssprite_convert(struct content *c)
struct rosprite_mem_context* ctx = NULL;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
char *title;
data = content__get_source_data(c, &size);
diff --git a/content/handlers/image/png.c b/content/handlers/image/png.c
index 7a4ce3010..841d5de52 100644
--- a/content/handlers/image/png.c
+++ b/content/handlers/image/png.c
@@ -367,8 +367,8 @@ static bool nspng_process_data(struct content *c, const char *data,
}
struct png_cache_read_data_s {
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
};
/** PNG library read fucntion to read data from a memory array
@@ -551,8 +551,8 @@ static nserror nspng_clone(const struct content *old_c, struct content **new_c)
{
nspng_content *clone_png_c;
nserror error;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
clone_png_c = calloc(1, sizeof(nspng_content));
if (clone_png_c == NULL)
@@ -573,7 +573,7 @@ static nserror nspng_clone(const struct content *old_c, struct content **new_c)
data = content__get_source_data(&clone_png_c->base, &size);
if (size > 0) {
- if (nspng_process_data(&clone_png_c->base, data, size) == false) {
+ if (nspng_process_data(&clone_png_c->base, (const char *)data, size) == false) {
content_destroy(&clone_png_c->base);
return NSERROR_NOMEM;
}
diff --git a/content/handlers/image/rsvg.c b/content/handlers/image/rsvg.c
index 2ba1b49f5..ee7373795 100644
--- a/content/handlers/image/rsvg.c
+++ b/content/handlers/image/rsvg.c
@@ -262,8 +262,8 @@ static nserror rsvg_clone(const struct content *old, struct content **newc)
{
rsvg_content *svg;
nserror error;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
svg = calloc(1, sizeof(rsvg_content));
if (svg == NULL)
@@ -284,7 +284,7 @@ static nserror rsvg_clone(const struct content *old, struct content **newc)
data = content__get_source_data(&svg->base, &size);
if (size > 0) {
- if (rsvg_process_data(&svg->base, data, size) == false) {
+ if (rsvg_process_data(&svg->base, (const char *)data, size) == false) {
content_destroy(&svg->base);
return NSERROR_NOMEM;
}
diff --git a/content/handlers/image/svg.c b/content/handlers/image/svg.c
index 99722495f..3f4e00c89 100644
--- a/content/handlers/image/svg.c
+++ b/content/handlers/image/svg.c
@@ -126,8 +126,8 @@ static bool svg_convert(struct content *c)
static void svg_reformat(struct content *c, int width, int height)
{
svg_content *svg = (svg_content *) c;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
assert(svg->diagram);
@@ -135,9 +135,12 @@ static void svg_reformat(struct content *c, int width, int height)
if (width != svg->current_width || height != svg->current_height) {
source_data = content__get_source_data(c, &source_size);
- svgtiny_parse(svg->diagram, source_data, source_size,
- nsurl_access(content_get_url(c)),
- width, height);
+ svgtiny_parse(svg->diagram,
+ (const char *)source_data,
+ source_size,
+ nsurl_access(content_get_url(c)),
+ width,
+ height);
svg->current_width = width;
svg->current_height = height;
@@ -222,7 +225,7 @@ svg_redraw_internal(struct content *c,
return false;
}
}
- }
+ }
#undef BGR
@@ -361,5 +364,3 @@ static const char *svg_types[] = {
CONTENT_FACTORY_REGISTER_TYPES(svg, svg_types, svg_content_handler);
-
-
diff --git a/content/handlers/image/webp.c b/content/handlers/image/webp.c
index 66a86c9f4..cbcb5ce55 100644
--- a/content/handlers/image/webp.c
+++ b/content/handlers/image/webp.c
@@ -88,7 +88,7 @@ static struct bitmap *
webp_cache_convert(struct content *c)
{
const uint8_t *source_data; /* webp source data */
- unsigned long source_size; /* length of webp source data */
+ size_t source_size; /* length of webp source data */
VP8StatusCode webpres;
WebPBitstreamFeatures webpfeatures;
unsigned int bmap_flags;
@@ -97,7 +97,7 @@ webp_cache_convert(struct content *c)
size_t rowstride;
struct bitmap *bitmap = NULL;
- source_data = (uint8_t *)content__get_source_data(c, &source_size);
+ source_data = content__get_source_data(c, &source_size);
webpres = WebPGetFeatures(source_data, source_size, &webpfeatures);
@@ -156,12 +156,12 @@ webp_cache_convert(struct content *c)
static bool webp_convert(struct content *c)
{
int res;
- unsigned long data_size;
const uint8_t* data;
+ size_t data_size;
int width;
int height;
- data = (uint8_t *)content__get_source_data(c, &data_size);
+ data = content__get_source_data(c, &data_size);
res = WebPGetInfo(data, data_size, &width, &height);
if (res == 0) {
diff --git a/content/handlers/javascript/duktape/dukky.c b/content/handlers/javascript/duktape/dukky.c
index d1bd4ec49..e9e579d4d 100644
--- a/content/handlers/javascript/duktape/dukky.c
+++ b/content/handlers/javascript/duktape/dukky.c
@@ -761,10 +761,16 @@ void dukky_push_generics(duk_context *ctx, const char *generic)
/* ..., generic */
}
-bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name)
+/* exported interface documented in js.h */
+bool
+js_exec(jscontext *ctx, const uint8_t *txt, size_t txtlen, const char *name)
{
assert(ctx);
- if (txt == NULL || txtlen == 0) return false;
+
+ if (txt == NULL || txtlen == 0) {
+ return false;
+ }
+
duk_set_top(CTX, 0);
NSLOG(dukky, DEEPDEBUG, "Running %"PRIsizet" bytes from %s", txtlen, name);
/* NSLOG(dukky, DEEPDEBUG, "\n%s\n", txt); */
@@ -775,7 +781,10 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name)
} else {
duk_push_string(CTX, "?unknown source?");
}
- if (duk_pcompile_lstring_filename(CTX, DUK_COMPILE_EVAL, txt, txtlen) != 0) {
+ if (duk_pcompile_lstring_filename(CTX,
+ DUK_COMPILE_EVAL,
+ (const char *)txt,
+ txtlen) != 0) {
NSLOG(dukky, INFO, "Failed to compile JavaScript input");
goto handle_error;
}
diff --git a/content/handlers/javascript/js.h b/content/handlers/javascript/js.h
index 89a87afe3..31ab8f766 100644
--- a/content/handlers/javascript/js.h
+++ b/content/handlers/javascript/js.h
@@ -67,7 +67,7 @@ void js_destroycontext(jscontext *ctx);
jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv);
/* execute some javascript in a context */
-bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name);
+bool js_exec(jscontext *ctx, const uint8_t *txt, size_t txtlen, const char *name);
/* fire an event at a dom node */
diff --git a/content/handlers/javascript/none/none.c b/content/handlers/javascript/none/none.c
index e1c992ebf..80a9ce49c 100644
--- a/content/handlers/javascript/none/none.c
+++ b/content/handlers/javascript/none/none.c
@@ -51,7 +51,7 @@ jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv)
return NULL;
}
-bool js_exec(jscontext *ctx, const char *txt, size_t txtlen, const char *name)
+bool js_exec(jscontext *ctx, const uint8_t *txt, size_t txtlen, const char *name)
{
return true;
}
diff --git a/content/handlers/text/textplain.c b/content/handlers/text/textplain.c
index 692ba7ebe..9e9e3e9e0 100644
--- a/content/handlers/text/textplain.c
+++ b/content/handlers/text/textplain.c
@@ -554,8 +554,8 @@ static nserror textplain_clone(const struct content *old, struct content **newc)
const textplain_content *old_text = (textplain_content *) old;
textplain_content *text;
nserror error;
- const char *data;
- unsigned long size;
+ const uint8_t *data;
+ size_t size;
text = calloc(1, sizeof(textplain_content));
if (text == NULL)
@@ -576,7 +576,9 @@ static nserror textplain_clone(const struct content *old, struct content **newc)
data = content__get_source_data(&text->base, &size);
if (size > 0) {
- if (textplain_process_data(&text->base, data, size) == false) {
+ if (textplain_process_data(&text->base,
+ (const char *)data,
+ size) == false) {
content_destroy(&text->base);
return NSERROR_NOMEM;
}
diff --git a/desktop/save_complete.c b/desktop/save_complete.c
index ef794d4d7..c6f311acb 100644
--- a/desktop/save_complete.c
+++ b/desktop/save_complete.c
@@ -152,9 +152,12 @@ static bool save_complete_ctx_has_content(save_complete_ctx *ctx,
return false;
}
-static bool save_complete_save_buffer(save_complete_ctx *ctx,
- const char *leafname, const char *data, size_t data_len,
- lwc_string *mime_type)
+static bool
+save_complete_save_buffer(save_complete_ctx *ctx,
+ const char *leafname,
+ const uint8_t *data,
+ size_t data_len,
+ lwc_string *mime_type)
{
nserror ret;
FILE *fp;
@@ -196,14 +199,14 @@ static bool save_complete_save_buffer(save_complete_ctx *ctx,
* \param osize updated with the size of the result.
* \return converted source, or NULL on out of memory.
*/
-static char *
+static uint8_t *
save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx,
- const char *source,
- unsigned long size,
+ const uint8_t *source,
+ size_t size,
const nsurl *base,
- unsigned long *osize)
+ size_t *osize)
{
- char *rewritten;
+ uint8_t *rewritten;
unsigned long offset = 0;
unsigned int imports = 0;
nserror error;
@@ -231,13 +234,16 @@ save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx,
offset = 0;
while (offset < size) {
- const char *import_url = NULL;
+ const uint8_t *import_url = NULL;
char *import_url_copy;
int import_url_len = 0;
nsurl *url = NULL;
regmatch_t match[11];
- int m = regexec(&save_complete_import_re, source + offset,
- 11, match, 0);
+ int m = regexec(&save_complete_import_re,
+ (const char *)source + offset,
+ 11,
+ match,
+ 0);
if (m)
break;
@@ -259,7 +265,8 @@ save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx,
}
assert(import_url != NULL);
- import_url_copy = strndup(import_url, import_url_len);
+ import_url_copy = strndup((const char *)import_url,
+ import_url_len);
if (import_url_copy == NULL) {
free(rewritten);
return NULL;
@@ -315,13 +322,13 @@ save_complete_rewrite_stylesheet_urls(save_complete_ctx *ctx,
return rewritten;
}
-static bool save_complete_save_stylesheet(save_complete_ctx *ctx,
- hlcache_handle *css)
+static bool
+save_complete_save_stylesheet(save_complete_ctx *ctx, hlcache_handle *css)
{
- const char *css_data;
- unsigned long css_size;
- char *source;
- unsigned long source_len;
+ const uint8_t *css_data;
+ size_t css_size;
+ uint8_t *source;
+ size_t source_len;
struct nscss_import *imports;
uint32_t import_count;
lwc_string *type;
@@ -342,8 +349,12 @@ static bool save_complete_save_stylesheet(save_complete_ctx *ctx,
return false;
css_data = content_get_source_data(css, &css_size);
- source = save_complete_rewrite_stylesheet_urls(ctx, css_data, css_size,
- hlcache_handle_get_url(css), &source_len);
+ source = save_complete_rewrite_stylesheet_urls(
+ ctx,
+ css_data,
+ css_size,
+ hlcache_handle_get_url(css),
+ &source_len);
if (source == NULL) {
guit->misc->warning("NoMemory", 0);
return false;
@@ -408,11 +419,11 @@ static bool save_complete_save_html_stylesheets(save_complete_ctx *ctx,
return true;
}
-static bool save_complete_save_html_object(save_complete_ctx *ctx,
- hlcache_handle *obj)
+static bool
+save_complete_save_html_object(save_complete_ctx *ctx, hlcache_handle *obj)
{
- const char *obj_data;
- unsigned long obj_size;
+ const uint8_t *obj_data;
+ size_t obj_size;
lwc_string *type;
bool result;
char filename[32];
@@ -898,13 +909,13 @@ static bool save_complete_handle_element(save_complete_ctx *ctx,
}
if (content != NULL) {
- char *rewritten;
- unsigned long len;
+ uint8_t *rewritten;
+ size_t len;
/* Rewrite @import rules */
rewritten = save_complete_rewrite_stylesheet_urls(
ctx,
- dom_string_data(content),
+ (const uint8_t *)dom_string_data(content),
dom_string_byte_length(content),
ctx->base,
&len);
diff --git a/frontends/amiga/arexx.c b/frontends/amiga/arexx.c
index acb0348fd..5be8a4f2e 100644
--- a/frontends/amiga/arexx.c
+++ b/frontends/amiga/arexx.c
@@ -346,8 +346,6 @@ RXHOOKF(rx_open)
RXHOOKF(rx_save)
{
BPTR fh = 0;
- ULONG source_size;
- const char *source_data;
struct gui_window *gw = cur_gw;
cmd->ac_RC = 0;
@@ -361,9 +359,13 @@ RXHOOKF(rx_save)
if((fh = FOpen((char *)cmd->ac_ArgList[0], MODE_NEWFILE, 0)))
{
+ const uint8_t *source_data;
+ size_t source_size;
struct hlcache_handle *h = browser_window_get_content(gw->bw);
- if((source_data = content_get_source_data(h, &source_size)))
+ source_data = content_get_source_data(h, &source_size);
+ if (source_data != NULL) {
FWrite(fh, source_data, 1, source_size);
+ }
FClose(fh);
SetComment((char *)cmd->ac_ArgList[0], nsurl_access(browser_window_access_url(gw->bw)));
diff --git a/frontends/amiga/clipboard.c b/frontends/amiga/clipboard.c
index 27b801540..79dda3901 100644
--- a/frontends/amiga/clipboard.c
+++ b/frontends/amiga/clipboard.c
@@ -349,15 +349,22 @@ bool ami_easy_clipboard_bitmap(struct bitmap *bitmap)
#ifdef WITH_NS_SVG
bool ami_easy_clipboard_svg(struct hlcache_handle *c)
{
- const char *source_data;
- ULONG source_size;
+ const uint8_t *source_data;
+ size_t source_size;
- if(ami_mime_compare(c, "svg") == false) return false;
- if((source_data = content_get_source_data(c, &source_size)) == NULL) return false;
+ if (ami_mime_compare(c, "svg") == false) {
+ return false;
+ }
+ source_data = content_get_source_data(c, &source_size);
+ if (source_data == NULL) {
+ return false;
+ }
- if(!(OpenIFF(iffh,IFFF_WRITE)))
- {
- ami_svg_to_dr2d(iffh, source_data, source_size, nsurl_access(hlcache_handle_get_url(c)));
+ if (!(OpenIFF(iffh,IFFF_WRITE))) {
+ ami_svg_to_dr2d(iffh,
+ (const char *)source_data,
+ source_size,
+ nsurl_access(hlcache_handle_get_url(c)));
CloseIFF(iffh);
}
diff --git a/frontends/amiga/dt_anim.c b/frontends/amiga/dt_anim.c
index bd049206c..8d7e8955c 100644
--- a/frontends/amiga/dt_anim.c
+++ b/frontends/amiga/dt_anim.c
@@ -167,15 +167,15 @@ bool amiga_dt_anim_convert(struct content *c)
amiga_dt_anim_content *plugin = (amiga_dt_anim_content *) c;
union content_msg_data msg_data;
int width, height;
- const uint8 *data;
+ const uint8_t *data;
+ size_t size;
UBYTE *bm_buffer;
- ULONG size;
struct BitMapHeader *bmh;
unsigned int bm_flags = BITMAP_NEW | BITMAP_OPAQUE;
struct adtFrame adt_frame;
APTR clut;
- data = (uint8 *)content__get_source_data(c, &size);
+ data = content__get_source_data(c, &size);
if((plugin->dto = NewDTObject(NULL,
DTA_SourceType, DTST_MEMORY,
diff --git a/frontends/amiga/dt_picture.c b/frontends/amiga/dt_picture.c
index 88ce1c834..660b2379e 100644
--- a/frontends/amiga/dt_picture.c
+++ b/frontends/amiga/dt_picture.c
@@ -131,11 +131,11 @@ nserror amiga_dt_picture_create(const content_handler *handler,
static Object *amiga_dt_picture_newdtobject(struct amiga_dt_picture_content *adt)
{
- const uint8 *data;
- ULONG size;
+ const uint8_t *data;
+ size_t size;
if(adt->dto == NULL) {
- data = (uint8 *)content__get_source_data((struct content *)adt, &size);
+ data = content__get_source_data((struct content *)adt, &size);
adt->dto = NewDTObject(NULL,
DTA_SourceType, DTST_MEMORY,
@@ -152,12 +152,12 @@ static Object *amiga_dt_picture_newdtobject(struct amiga_dt_picture_content *adt
static char *amiga_dt_picture_datatype(struct content *c)
{
- const uint8 *data;
- ULONG size;
+ const uint8_t *data;
+ size_t size;
struct DataType *dt;
char *filetype = NULL;
- data = (uint8 *)content__get_source_data(c, &size);
+ data = content__get_source_data(c, &size);
if((dt = ObtainDataType(DTST_MEMORY, NULL,
DTA_SourceAddress, data,
diff --git a/frontends/amiga/dt_sound.c b/frontends/amiga/dt_sound.c
index f3b365ddb..e0a794fa9 100644
--- a/frontends/amiga/dt_sound.c
+++ b/frontends/amiga/dt_sound.c
@@ -150,10 +150,10 @@ bool amiga_dt_sound_convert(struct content *c)
amiga_dt_sound_content *plugin = (amiga_dt_sound_content *) c;
int width = 50, height = 50;
- const uint8 *data;
- ULONG size;
+ const uint8_t *data;
+ size_t size;
- data = (uint8 *)content__get_source_data(c, &size);
+ data = content__get_source_data(c, &size);
plugin->dto = NewDTObject(NULL,
DTA_SourceType, DTST_MEMORY,
diff --git a/frontends/amiga/file.c b/frontends/amiga/file.c
index 0fd43781d..845491c78 100644
--- a/frontends/amiga/file.c
+++ b/frontends/amiga/file.c
@@ -146,8 +146,9 @@ void ami_file_save(int type, char *fname, struct Window *win,
struct browser_window *bw)
{
BPTR lock, fh;
- const char *source_data;
- ULONG source_size;
+ const uint8_t *source_data;
+ char *selection;
+ size_t source_size;
struct bitmap *bm;
ami_update_pointer(win, GUI_POINTER_WAIT);
@@ -155,7 +156,8 @@ void ami_file_save(int type, char *fname, struct Window *win,
if(ami_download_check_overwrite(fname, win, 0)) {
switch(type) {
case AMINS_SAVE_SOURCE:
- if((source_data = content_get_source_data(object, &source_size))) {
+ source_data = content_get_source_data(object, &source_size);
+ if(source_data) {
BPTR fh;
if((fh = FOpen(fname, MODE_NEWFILE,0))) {
FWrite(fh, source_data, 1, source_size);
@@ -197,12 +199,17 @@ void ami_file_save(int type, char *fname, struct Window *win,
break;
case AMINS_SAVE_SELECTION:
- if((source_data = browser_window_get_selection(bw))) {
- if((fh = FOpen(fname, MODE_NEWFILE,0))) {
- FWrite(fh, source_data, 1, strlen(source_data));
+ selection = browser_window_get_selection(bw);
+ if(selection) {
+ fh = FOpen(fname, MODE_NEWFILE,0);
+ if (fh) {
+ FWrite(fh,
+ selection,
+ 1,
+ strlen(selection));
FClose(fh);
}
- free((void *)source_data);
+ free(selection);
}
break;
}
diff --git a/frontends/amiga/iff_dr2d.c b/frontends/amiga/iff_dr2d.c
index a4c5855a1..5de1463f0 100644
--- a/frontends/amiga/iff_dr2d.c
+++ b/frontends/amiga/iff_dr2d.c
@@ -310,22 +310,27 @@ bool ami_svg_to_dr2d(struct IFFHandle *iffh, const char *buffer,
bool ami_save_svg(struct hlcache_handle *c,char *filename)
{
struct IFFHandle *iffh;
- const char *source_data;
- ULONG source_size;
+ const uint8_t *source_data;
+ size_t source_size;
- if(!ami_download_check_overwrite(filename, NULL, 0)) return false;
+ if (!ami_download_check_overwrite(filename, NULL, 0)) return false;
- if((iffh = AllocIFF())) {
- if((iffh->iff_Stream = Open(filename,MODE_NEWFILE))) {
+ if ((iffh = AllocIFF())) {
+ if ((iffh->iff_Stream = Open(filename,MODE_NEWFILE))) {
InitIFFasDOS(iffh);
}
else return false;
}
- if((OpenIFF(iffh,IFFF_WRITE))) return false;
+ if ((OpenIFF(iffh,IFFF_WRITE))) return false;
- if((source_data = content_get_source_data(c, &source_size)))
- ami_svg_to_dr2d(iffh, source_data, source_size, nsurl_access(hlcache_handle_get_url(c)));
+ source_data = content_get_source_data(c, &source_size);
+ if (source_data != NULL) {
+ ami_svg_to_dr2d(iffh,
+ (const char *)source_data,
+ source_size,
+ nsurl_access(hlcache_handle_get_url(c)));
+ }
if(iffh) CloseIFF(iffh);
if(iffh->iff_Stream) Close((BPTR)iffh->iff_Stream);
diff --git a/frontends/gtk/viewsource.c b/frontends/gtk/viewsource.c
index 87ff6976a..7c11862c6 100644
--- a/frontends/gtk/viewsource.c
+++ b/frontends/gtk/viewsource.c
@@ -34,8 +34,8 @@ nserror nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw)
{
nserror ret;
struct hlcache_handle *hlcontent;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
char *ndata = NULL;
size_t ndata_len;
char *filename;
@@ -67,8 +67,9 @@ nserror nsgtk_viewsource(GtkWindow *parent, struct browser_window *bw)
}
sprintf(title, "Source of %s - NetSurf", nsurl_access(browser_window_access_url(bw)));
- ret = utf8_from_enc(source_data,
- content_get_encoding(hlcontent, CONTENT_ENCODING_NORMAL),
+ ret = utf8_from_enc((const char *)source_data,
+ content_get_encoding(hlcontent,
+ CONTENT_ENCODING_NORMAL),
source_size,
&ndata,
&ndata_len);
diff --git a/frontends/riscos/content-handlers/artworks.c b/frontends/riscos/content-handlers/artworks.c
index 8ec4edcae..fcae271ee 100644
--- a/frontends/riscos/content-handlers/artworks.c
+++ b/frontends/riscos/content-handlers/artworks.c
@@ -170,8 +170,8 @@ bool artworks_convert(struct content *c)
{
artworks_content *aw = (artworks_content *) c;
union content_msg_data msg_data;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
void *init_workspace;
void *init_routine;
os_error *error;
@@ -224,7 +224,7 @@ bool artworks_convert(struct content *c)
source_data = content__get_source_data(c, &source_size);
/* initialise (convert file to new format if required) */
- error = awrender_init(&source_data, &source_size,
+ error = awrender_init((const char **)&source_data, &source_size,
init_routine, init_workspace);
if (error) {
NSLOG(netsurf, INFO, "awrender_init: 0x%x : %s",
@@ -313,8 +313,8 @@ bool artworks_redraw(struct content *c, struct content_redraw_data *data,
};
artworks_content *aw = (artworks_content *) c;
struct awinfo_block info;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
os_error *error;
os_trfm matrix;
int vals[24];
@@ -389,17 +389,17 @@ bool artworks_redraw(struct content *c, struct content_redraw_data *data,
source_data = content__get_source_data(c, &source_size);
- error = awrender_render(source_data,
- &info,
- &matrix,
- vals,
- &aw->block,
- &aw->size,
- 110, /* fully anti-aliased */
- 0,
- source_size,
- aw->render_routine,
- aw->render_workspace);
+ error = awrender_render((const char *)source_data,
+ &info,
+ &matrix,
+ vals,
+ &aw->block,
+ &aw->size,
+ 110, /* fully anti-aliased */
+ 0,
+ source_size,
+ aw->render_routine,
+ aw->render_workspace);
if (error) {
NSLOG(netsurf, INFO, "awrender_render: 0x%x: %s",
diff --git a/frontends/riscos/content-handlers/draw.c b/frontends/riscos/content-handlers/draw.c
index bb66f9dbb..a436ccee7 100644
--- a/frontends/riscos/content-handlers/draw.c
+++ b/frontends/riscos/content-handlers/draw.c
@@ -112,8 +112,8 @@ bool draw_convert(struct content *c)
{
draw_content *draw = (draw_content *) c;
union content_msg_data msg_data;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
const void *data;
os_box bbox;
os_error *error;
@@ -180,8 +180,8 @@ bool draw_redraw(struct content *c, struct content_redraw_data *data,
{
draw_content *draw = (draw_content *) c;
os_trfm matrix;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
const void *src_data;
os_error *error;
diff --git a/frontends/riscos/content-handlers/sprite.c b/frontends/riscos/content-handlers/sprite.c
index 3556aa555..650d8e9aa 100644
--- a/frontends/riscos/content-handlers/sprite.c
+++ b/frontends/riscos/content-handlers/sprite.c
@@ -16,7 +16,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/** \file
+/**
+ * \file
* Content for image/x-riscos-sprite (RISC OS implementation).
*
* No conversion is necessary: we can render RISC OS sprites directly under
@@ -112,8 +113,8 @@ bool sprite_convert(struct content *c)
os_error *error;
int w, h;
union content_msg_data msg_data;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
const void *sprite_data;
char *title;
diff --git a/frontends/riscos/gui.c b/frontends/riscos/gui.c
index be1bc8d9a..93bad1638 100644
--- a/frontends/riscos/gui.c
+++ b/frontends/riscos/gui.c
@@ -1980,8 +1980,8 @@ void ro_gui_view_source(struct hlcache_handle *c)
int objtype;
bool done = false;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
if (!c) {
ro_warn_user("MiscError", "No document source");
diff --git a/frontends/riscos/save.c b/frontends/riscos/save.c
index 76ce6d3e5..86797602b 100644
--- a/frontends/riscos/save.c
+++ b/frontends/riscos/save.c
@@ -908,8 +908,8 @@ static bool ro_gui_save_object_native(struct hlcache_handle *h, char *path)
if (file_type == osfile_TYPE_SPRITE || file_type == osfile_TYPE_DRAW) {
/* Native sprite or drawfile */
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
os_error *error;
source_data = content_get_source_data(h, &source_size);
@@ -960,8 +960,8 @@ static bool
ro_gui_save_content(struct hlcache_handle *h, char *path, bool force_overwrite)
{
os_error *error;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
/* does the user want to check for collisions when saving? */
if (!force_overwrite) {
diff --git a/frontends/riscos/theme_install.c b/frontends/riscos/theme_install.c
index fbca9e4fa..a235fe471 100644
--- a/frontends/riscos/theme_install.c
+++ b/frontends/riscos/theme_install.c
@@ -47,8 +47,6 @@ wimp_w dialog_theme_install;
static void theme_install_close(wimp_w w);
static nserror theme_install_callback(struct hlcache_handle *handle,
const hlcache_event *event, void *pw);
-static bool theme_install_read(const char *source_data,
- unsigned long source_size);
/**
@@ -80,6 +78,33 @@ void theme_install_start(struct hlcache_handle *c)
/**
+ * Fill in theme_install_descriptor from received theme data.
+ *
+ * \param source_data received data
+ * \param source_size size of data
+ * \return true if data is a correct theme, false on error
+ *
+ * If the data is a correct theme, theme_install_descriptor is filled in.
+ */
+
+static bool
+theme_install_read(const uint8_t *source_data, size_t source_size)
+{
+ const void *data = source_data;
+
+ if (source_size < sizeof(struct theme_file_header))
+ return false;
+ if (!ro_gui_theme_read_file_header(&theme_install_descriptor,
+ (struct theme_file_header *) data))
+ return false;
+ if (source_size - sizeof(struct theme_file_header) !=
+ theme_install_descriptor.compressed_size)
+ return false;
+ return true;
+}
+
+
+/**
* Callback for fetchcache() for theme install fetches.
*/
@@ -90,8 +115,8 @@ nserror theme_install_callback(struct hlcache_handle *handle,
case CONTENT_MSG_DONE:
{
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
int author_indent = 0;
char buffer[256];
@@ -135,30 +160,6 @@ nserror theme_install_callback(struct hlcache_handle *handle,
}
-/**
- * Fill in theme_install_descriptor from received theme data.
- *
- * \param source_data received data
- * \param source_size size of data
- * \return true if data is a correct theme, false on error
- *
- * If the data is a correct theme, theme_install_descriptor is filled in.
- */
-
-bool theme_install_read(const char *source_data, unsigned long source_size)
-{
- const void *data = source_data;
-
- if (source_size < sizeof(struct theme_file_header))
- return false;
- if (!ro_gui_theme_read_file_header(&theme_install_descriptor,
- (struct theme_file_header *) data))
- return false;
- if (source_size - sizeof(struct theme_file_header) !=
- theme_install_descriptor.compressed_size)
- return false;
- return true;
-}
/**
@@ -174,8 +175,8 @@ bool ro_gui_theme_install_apply(wimp_w w)
struct theme_descriptor *theme_install;
os_error *error;
char *fix;
- const char *source_data;
- unsigned long source_size;
+ const uint8_t *source_data;
+ size_t source_size;
assert(theme_install_content);
diff --git a/include/netsurf/content.h b/include/netsurf/content.h
index 5eee59acd..d8adca040 100644
--- a/include/netsurf/content.h
+++ b/include/netsurf/content.h
@@ -94,7 +94,7 @@ lwc_string *content_get_mime_type(struct hlcache_handle *h);
* \param size Pointer to location to receive byte size of source
* \return Pointer to source data
*/
-const char *content_get_source_data(struct hlcache_handle *h, unsigned long *size);
+const uint8_t *content_get_source_data(struct hlcache_handle *h, size_t *size);
/**