diff options
| author | Michael Forney <mforney@mforney.org> | 2017-06-12 03:12:40 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2017-06-12 21:56:41 -0700 |
| commit | be5327757900f1a4229748344749e82e9e3f1e03 (patch) | |
| tree | b3d9d31c294fd6c267078e82458dee079b77421d /pkg/netsurf | |
| parent | 290b40f0ba7c9e7a1c5aba06ca3d9849925c6106 (diff) | |
netsurf: Add SVG support
Diffstat (limited to 'pkg/netsurf')
| -rw-r--r-- | pkg/netsurf/config.h | 1 | ||||
| -rw-r--r-- | pkg/netsurf/gen.rc | 9 | ||||
| -rw-r--r-- | pkg/netsurf/libdom/gen.rc | 15 | ||||
| -rw-r--r-- | pkg/netsurf/libsvgtiny/gen.rc | 17 | ||||
| -rw-r--r-- | pkg/netsurf/libsvgtiny/patch/0001-Make-stroke_width-a-float.patch | 54 | ||||
| -rw-r--r-- | pkg/netsurf/libsvgtiny/rev | 1 | ||||
| m--------- | pkg/netsurf/libsvgtiny/src | 0 | ||||
| -rw-r--r-- | pkg/netsurf/libsvgtiny/src_colors.c | 900 | ||||
| -rw-r--r-- | pkg/netsurf/rev | 2 | ||||
| m--------- | pkg/netsurf/src | 0 |
10 files changed, 991 insertions, 8 deletions
diff --git a/pkg/netsurf/config.h b/pkg/netsurf/config.h index 37ea2297..3e71d894 100644 --- a/pkg/netsurf/config.h +++ b/pkg/netsurf/config.h @@ -21,3 +21,4 @@ #define WITH_JPEG 1 #define WITH_OPENSSL 1 #define WITH_PNG 1 +#define WITH_NS_SVG 1 diff --git a/pkg/netsurf/gen.rc b/pkg/netsurf/gen.rc index c006a8a5..599484d9 100644 --- a/pkg/netsurf/gen.rc +++ b/pkg/netsurf/gen.rc @@ -7,6 +7,7 @@ subgen libnsbmp subgen libnsgif subgen libnsutils subgen libparserutils +subgen libsvgtiny subgen libwapcaplet subgen nsgenbind @@ -34,6 +35,7 @@ cflags\ -isystem '$dir'/libnsgif/src/include\ -isystem '$dir'/libnsutils/src/include\ -isystem '$dir'/libparserutils/src/include\ + -isystem '$dir'/libsvgtiny/src/include\ -isystem '$dir'/libwapcaplet/src/include\ -isystem pkg/freetype/src/include\ -isystem pkg/libxkbcommon/src\ @@ -56,8 +58,8 @@ build $"nsgenbind_srcs nsgenbind '$srcdir'/content/handlers/javascript/duktape/n phony deps '$outdir'/duktape/binding.c\ '$outdir'/^(\ - libcss libdom libhubbub libnsbmp libnsgif libparserutils\ - libwapcaplet libnsutils\ + libcss libdom libhubbub libnsbmp libnsgif libnsutils\ + libparserutils libsvgtiny libwapcaplet\ )^/fetch.stamp\ '$builddir'/pkg/^(freetype libxkbcommon utf8proc)^/fetch.stamp\ ('$dir'/libdom pkg/^(curl libjpeg-turbo libpng libressl zlib))^/headers @@ -81,7 +83,7 @@ exe netsurf -d '$dir'/deps\ handlers/^(\ javascript/^(fetcher.c content.c duktape/^(dukky.c duktape.c))\ css/^(css.c dump.c internal.c hints.c select.c utils.c)\ - image/^(image.c image_cache.c bmp.c ico.c gif.c jpeg.c png.c)\ + image/^(image.c image_cache.c bmp.c gif.c ico.c jpeg.c png.c svg.c)\ )\ )\ utils/^(\ @@ -127,6 +129,7 @@ exe netsurf -d '$dir'/deps\ libnsbmp/libnsbmp.a\ libnsgif/libnsgif.a\ libnsutils/libnsutils.a\ + libsvgtiny/libsvgtiny.a.d\ )\ '$builddir'/pkg/^(\ curl/libcurl.a.d\ diff --git a/pkg/netsurf/libdom/gen.rc b/pkg/netsurf/libdom/gen.rc index 48645de7..05692fe5 100644 --- a/pkg/netsurf/libdom/gen.rc +++ b/pkg/netsurf/libdom/gen.rc @@ -2,6 +2,7 @@ cflags\ -isystem pkg/netsurf/libhubbub/src/include\ -isystem pkg/netsurf/libparserutils/src/include\ -isystem pkg/netsurf/libwapcaplet/src/include\ + -isystem '$builddir'/pkg/expat/include\ -I '$srcdir'/include\ -I '$srcdir'/src @@ -9,7 +10,9 @@ hdrs=bindings/hubbub/^(errors.h parser.h) for(hdr in $hdrs) build '$outdir'/include/dom/$hdr copy '$srcdir'/$hdr phony headers '$outdir'/include/dom/$hdrs -phony deps '$builddir'/pkg/netsurf/^(libhubbub libparserutils libwapcaplet)^/fetch.stamp +phony deps\ + pkg/expat/headers\ + '$builddir'/pkg/netsurf/^(libhubbub libparserutils libwapcaplet)^/fetch.stamp lib libdom.a -d '$dir'/deps\ src/^(\ @@ -52,9 +55,13 @@ lib libdom.a -d '$dir'/deps\ utils/^(namespace.c hashtable.c character_valid.c validate.c)\ )\ bindings/hubbub/parser.c\ - '$builddir'/pkg/netsurf/^(\ - libhubbub/libhubbub.a.d\ - libwapcaplet/libwapcaplet.a\ + bindings/xml/expat_xmlparser.c\ + '$builddir'/pkg/^(\ + expat/libexpat.a\ + netsurf/^(\ + libhubbub/libhubbub.a.d\ + libwapcaplet/libwapcaplet.a\ + )\ ) fetch git diff --git a/pkg/netsurf/libsvgtiny/gen.rc b/pkg/netsurf/libsvgtiny/gen.rc new file mode 100644 index 00000000..70e4e94e --- /dev/null +++ b/pkg/netsurf/libsvgtiny/gen.rc @@ -0,0 +1,17 @@ +cflags\ + -isystem '$builddir'/pkg/netsurf/libdom/include\ + -isystem pkg/netsurf/libdom/src/include\ + -isystem pkg/netsurf/libwapcaplet/src/include\ + -I '$srcdir'/include\ + -I '$srcdir'/src + +phony deps\ + pkg/netsurf/libdom/headers\ + '$builddir'/pkg/netsurf/^(libdom libwapcaplet)^/fetch.stamp + +build '$outdir'/src/src_colors.c.o cc '$dir'/src_colors.c '||' '$dir'/deps +lib libsvgtiny.a -d '$dir'/deps\ + src/^(src_colors.c.o svgtiny.c svgtiny_gradient.c svgtiny_list.c)\ + '$builddir'/pkg/netsurf/libdom/libdom.a.d + +fetch git diff --git a/pkg/netsurf/libsvgtiny/patch/0001-Make-stroke_width-a-float.patch b/pkg/netsurf/libsvgtiny/patch/0001-Make-stroke_width-a-float.patch new file mode 100644 index 00000000..29c1c362 --- /dev/null +++ b/pkg/netsurf/libsvgtiny/patch/0001-Make-stroke_width-a-float.patch @@ -0,0 +1,54 @@ +From 2f48e3e7b606bd0210407ea28a8710de3072068e Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Mon, 12 Jun 2017 02:42:32 -0700 +Subject: [PATCH] Make stroke_width a float + +--- + include/svgtiny.h | 2 +- + src/svgtiny.c | 3 +-- + src/svgtiny_internal.h | 2 +- + 3 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/include/svgtiny.h b/include/svgtiny.h +index 85f146f..6acf42e 100644 +--- a/include/svgtiny.h ++++ b/include/svgtiny.h +@@ -29,7 +29,7 @@ struct svgtiny_shape { + float text_x, text_y; + svgtiny_colour fill; + svgtiny_colour stroke; +- int stroke_width; ++ float stroke_width; + }; + + struct svgtiny_diagram { +diff --git a/src/svgtiny.c b/src/svgtiny.c +index 4661a58..c26d789 100644 +--- a/src/svgtiny.c ++++ b/src/svgtiny.c +@@ -1694,8 +1694,7 @@ struct svgtiny_shape *svgtiny_add_shape(struct svgtiny_parse_state *state) + shape->text = 0; + shape->fill = state->fill; + shape->stroke = state->stroke; +- shape->stroke_width = lroundf((float) state->stroke_width * +- (state->ctm.a + state->ctm.d) / 2.0); ++ shape->stroke_width = state->stroke_width * (state->ctm.a + state->ctm.d) / 2.0; + if (0 < state->stroke_width && shape->stroke_width == 0) + shape->stroke_width = 1; + +diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h +index 158d230..c29feab 100644 +--- a/src/svgtiny_internal.h ++++ b/src/svgtiny_internal.h +@@ -51,7 +51,7 @@ struct svgtiny_parse_state { + /* paint attributes */ + svgtiny_colour fill; + svgtiny_colour stroke; +- int stroke_width; ++ float stroke_width; + + /* gradients */ + struct svgtiny_parse_state_gradient fill_grad; +-- +2.13.1 + diff --git a/pkg/netsurf/libsvgtiny/rev b/pkg/netsurf/libsvgtiny/rev new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/pkg/netsurf/libsvgtiny/rev @@ -0,0 +1 @@ +1 diff --git a/pkg/netsurf/libsvgtiny/src b/pkg/netsurf/libsvgtiny/src new file mode 160000 +Subproject fd34818e098caf2810c3083abf90a59e0135551 diff --git a/pkg/netsurf/libsvgtiny/src_colors.c b/pkg/netsurf/libsvgtiny/src_colors.c new file mode 100644 index 00000000..36f21678 --- /dev/null +++ b/pkg/netsurf/libsvgtiny/src_colors.c @@ -0,0 +1,900 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf --output-file=src_colors.c colors.gperf */ +/* Computed positions: -k'1,3,6-8,12-13' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + +#line 15 "colors.gperf" + +#include <string.h> +#include "svgtiny.h" +#include "svgtiny_internal.h" + +/* This unusual define shennanigan is to try and prevent the gperf + * generated function from being inlined. This is pointless given + * it (a) is in a separate .c file and (b) has external linkage. + */ +#ifdef __inline +#undef __inline +#define __inline +#endif +#line 30 "colors.gperf" +struct svgtiny_named_color; + +#define TOTAL_KEYWORDS 147 +#define MIN_WORD_LENGTH 3 +#define MAX_WORD_LENGTH 20 +#define MIN_HASH_VALUE 4 +#define MAX_HASH_VALUE 565 +/* maximum key range = 562, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +svgtiny_color_hash (register const char *str, register unsigned int len) +{ + static const unsigned short asso_values[] = + { + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 5, 55, 0, + 35, 0, 75, 10, 5, 0, 566, 250, 10, 40, + 85, 60, 70, 144, 0, 20, 45, 10, 30, 185, + 95, 195, 566, 0, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[12]]; + /*FALLTHROUGH*/ + case 12: + hval += asso_values[(unsigned char)str[11]]; + /*FALLTHROUGH*/ + case 11: + case 10: + case 9: + case 8: + hval += asso_values[(unsigned char)str[7]]; + /*FALLTHROUGH*/ + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + case 4: + case 3: + hval += asso_values[(unsigned char)str[2]+2]; + /*FALLTHROUGH*/ + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval; +} + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct svgtiny_named_color * +svgtiny_color_lookup (register const char *str, register unsigned int len) +{ + static const struct svgtiny_named_color wordlist[] = + { +#line 52 "colors.gperf" + {"cyan", svgtiny_RGB( 0, 255, 255)}, +#line 85 "colors.gperf" + {"gray", svgtiny_RGB(128, 128, 128)}, +#line 46 "colors.gperf" + {"chartreuse", svgtiny_RGB(127, 255, 0)}, +#line 86 "colors.gperf" + {"grey", svgtiny_RGB(128, 128, 128)}, +#line 87 "colors.gperf" + {"green", svgtiny_RGB( 0, 128, 0)}, +#line 105 "colors.gperf" + {"lightgrey", svgtiny_RGB(211, 211, 211)}, +#line 104 "colors.gperf" + {"lightgreen", svgtiny_RGB(144, 238, 144)}, +#line 103 "colors.gperf" + {"lightgray", svgtiny_RGB(211, 211, 211)}, +#line 161 "colors.gperf" + {"skyblue", svgtiny_RGB(135, 206, 235)}, +#line 164 "colors.gperf" + {"slategrey", svgtiny_RGB(112, 128, 144)}, +#line 159 "colors.gperf" + {"sienna", svgtiny_RGB(160, 82, 45)}, +#line 163 "colors.gperf" + {"slategray", svgtiny_RGB(112, 128, 144)}, +#line 158 "colors.gperf" + {"seashell", svgtiny_RGB(255, 245, 238)}, +#line 169 "colors.gperf" + {"teal", svgtiny_RGB( 0, 128, 128)}, +#line 48 "colors.gperf" + {"coral", svgtiny_RGB(255, 127, 80)}, +#line 107 "colors.gperf" + {"lightsalmon", svgtiny_RGB(255, 160, 122)}, +#line 111 "colors.gperf" + {"lightslategrey", svgtiny_RGB(119, 136, 153)}, +#line 39 "colors.gperf" + {"black", svgtiny_RGB( 0, 0, 0)}, +#line 110 "colors.gperf" + {"lightslategray", svgtiny_RGB(119, 136, 153)}, +#line 137 "colors.gperf" + {"orange", svgtiny_RGB(255, 165, 0)}, +#line 138 "colors.gperf" + {"orangered", svgtiny_RGB(255, 69, 0)}, +#line 38 "colors.gperf" + {"bisque", svgtiny_RGB(255, 228, 196)}, +#line 114 "colors.gperf" + {"lime", svgtiny_RGB( 0, 255, 0)}, +#line 151 "colors.gperf" + {"red", svgtiny_RGB(255, 0, 0)}, +#line 115 "colors.gperf" + {"limegreen", svgtiny_RGB( 50, 205, 50)}, +#line 100 "colors.gperf" + {"lightcoral", svgtiny_RGB(240, 128, 128)}, +#line 153 "colors.gperf" + {"royalblue", svgtiny_RGB( 65, 105, 225)}, +#line 116 "colors.gperf" + {"linen", svgtiny_RGB(250, 240, 230)}, +#line 80 "colors.gperf" + {"fuchsia", svgtiny_RGB(255, 0, 255)}, +#line 57 "colors.gperf" + {"darkgreen", svgtiny_RGB( 0, 100, 0)}, +#line 99 "colors.gperf" + {"lightblue", svgtiny_RGB(173, 216, 230)}, +#line 63 "colors.gperf" + {"darkorchid", svgtiny_RGB(153, 50, 204)}, +#line 166 "colors.gperf" + {"springgreen", svgtiny_RGB( 0, 255, 127)}, +#line 117 "colors.gperf" + {"magenta", svgtiny_RGB(255, 0, 255)}, +#line 83 "colors.gperf" + {"gold", svgtiny_RGB(255, 215, 0)}, +#line 139 "colors.gperf" + {"orchid", svgtiny_RGB(218, 112, 214)}, +#line 162 "colors.gperf" + {"slateblue", svgtiny_RGB(106, 90, 205)}, +#line 60 "colors.gperf" + {"darkmagenta", svgtiny_RGB(139, 0, 139)}, +#line 53 "colors.gperf" + {"darkblue", svgtiny_RGB( 0, 0, 139)}, +#line 112 "colors.gperf" + {"lightsteelblue", svgtiny_RGB(176, 196, 222)}, +#line 160 "colors.gperf" + {"silver", svgtiny_RGB(192, 192, 192)}, +#line 157 "colors.gperf" + {"seagreen", svgtiny_RGB( 46, 139, 87)}, +#line 167 "colors.gperf" + {"steelblue", svgtiny_RGB( 70, 130, 180)}, +#line 168 "colors.gperf" + {"tan", svgtiny_RGB(210, 180, 140)}, +#line 146 "colors.gperf" + {"peru", svgtiny_RGB(205, 133, 63)}, +#line 150 "colors.gperf" + {"purple", svgtiny_RGB(128, 0, 128)}, +#line 64 "colors.gperf" + {"darkred", svgtiny_RGB(139, 0, 0)}, +#line 129 "colors.gperf" + {"mintcream", svgtiny_RGB(245, 255, 250)}, +#line 77 "colors.gperf" + {"firebrick", svgtiny_RGB(178, 34, 34)}, +#line 108 "colors.gperf" + {"lightseagreen", svgtiny_RGB( 32, 178, 170)}, +#line 61 "colors.gperf" + {"darkolivegreen", svgtiny_RGB( 85, 107, 47)}, +#line 130 "colors.gperf" + {"mistyrose", svgtiny_RGB(255, 228, 225)}, +#line 92 "colors.gperf" + {"indigo", svgtiny_RGB( 75, 0, 130)}, +#line 134 "colors.gperf" + {"oldlace", svgtiny_RGB(253, 245, 230)}, +#line 147 "colors.gperf" + {"pink", svgtiny_RGB(255, 192, 203)}, +#line 65 "colors.gperf" + {"darksalmon", svgtiny_RGB(233, 150, 122)}, +#line 95 "colors.gperf" + {"lavender", svgtiny_RGB(230, 230, 250)}, +#line 93 "colors.gperf" + {"ivory", svgtiny_RGB(255, 255, 240)}, +#line 131 "colors.gperf" + {"moccasin", svgtiny_RGB(255, 228, 181)}, +#line 45 "colors.gperf" + {"cadetblue", svgtiny_RGB( 95, 158, 160)}, +#line 71 "colors.gperf" + {"darkviolet", svgtiny_RGB(148, 0, 211)}, +#line 154 "colors.gperf" + {"saddlebrown", svgtiny_RGB(139, 69, 19)}, +#line 67 "colors.gperf" + {"darkslateblue", svgtiny_RGB( 72, 61, 139)}, +#line 141 "colors.gperf" + {"palegreen", svgtiny_RGB(152, 251, 152)}, +#line 165 "colors.gperf" + {"snow", svgtiny_RGB(255, 250, 250)}, +#line 91 "colors.gperf" + {"indianred", svgtiny_RGB(205, 92, 92)}, +#line 102 "colors.gperf" + {"lightgoldenrodyellow", svgtiny_RGB(250, 250, 210)}, +#line 171 "colors.gperf" + {"tomato", svgtiny_RGB(255, 99, 71)}, +#line 98 "colors.gperf" + {"lemonchiffon", svgtiny_RGB(255, 250, 205)}, +#line 106 "colors.gperf" + {"lightpink", svgtiny_RGB(255, 182, 193)}, +#line 118 "colors.gperf" + {"maroon", svgtiny_RGB(128, 0, 0)}, +#line 96 "colors.gperf" + {"lavenderblush", svgtiny_RGB(255, 240, 245)}, +#line 172 "colors.gperf" + {"turquoise", svgtiny_RGB( 64, 224, 208)}, +#line 62 "colors.gperf" + {"darkorange", svgtiny_RGB(255, 140, 0)}, +#line 133 "colors.gperf" + {"navy", svgtiny_RGB( 0, 0, 128)}, +#line 76 "colors.gperf" + {"dodgerblue", svgtiny_RGB( 30, 144, 255)}, +#line 79 "colors.gperf" + {"forestgreen", svgtiny_RGB( 34, 139, 34)}, +#line 128 "colors.gperf" + {"midnightblue", svgtiny_RGB( 25, 25, 112)}, +#line 123 "colors.gperf" + {"mediumseagreen", svgtiny_RGB( 60, 179, 113)}, +#line 66 "colors.gperf" + {"darkseagreen", svgtiny_RGB(143, 188, 143)}, +#line 34 "colors.gperf" + {"aqua", svgtiny_RGB( 0, 255, 255)}, +#line 36 "colors.gperf" + {"azure", svgtiny_RGB(240, 255, 255)}, +#line 155 "colors.gperf" + {"salmon", svgtiny_RGB(250, 128, 114)}, +#line 174 "colors.gperf" + {"wheat", svgtiny_RGB(245, 222, 179)}, +#line 43 "colors.gperf" + {"brown", svgtiny_RGB(165, 42, 42)}, +#line 35 "colors.gperf" + {"aquamarine", svgtiny_RGB(127, 255, 212)}, +#line 47 "colors.gperf" + {"chocolate", svgtiny_RGB(210, 105, 30)}, +#line 97 "colors.gperf" + {"lawngreen", svgtiny_RGB(124, 252, 0)}, +#line 156 "colors.gperf" + {"sandybrown", svgtiny_RGB(244, 164, 96)}, +#line 101 "colors.gperf" + {"lightcyan", svgtiny_RGB(224, 255, 255)}, +#line 173 "colors.gperf" + {"violet", svgtiny_RGB(238, 130, 238)}, +#line 113 "colors.gperf" + {"lightyellow", svgtiny_RGB(255, 255, 224)}, +#line 120 "colors.gperf" + {"mediumblue", svgtiny_RGB( 0, 0, 205)}, +#line 145 "colors.gperf" + {"peachpuff", svgtiny_RGB(255, 218, 185)}, +#line 88 "colors.gperf" + {"greenyellow", svgtiny_RGB(173, 255, 47)}, +#line 33 "colors.gperf" + {"antiquewhite", svgtiny_RGB(250, 235, 215)}, +#line 41 "colors.gperf" + {"blue", svgtiny_RGB( 0, 0, 255)}, +#line 127 "colors.gperf" + {"mediumvioletred", svgtiny_RGB(199, 21, 133)}, +#line 122 "colors.gperf" + {"mediumpurple", svgtiny_RGB(147, 112, 219)}, +#line 84 "colors.gperf" + {"goldenrod", svgtiny_RGB(218, 165, 32)}, +#line 40 "colors.gperf" + {"blanchedalmond", svgtiny_RGB(255, 235, 205)}, +#line 94 "colors.gperf" + {"khaki", svgtiny_RGB(240, 230, 140)}, +#line 148 "colors.gperf" + {"plum", svgtiny_RGB(221, 160, 221)}, +#line 121 "colors.gperf" + {"mediumorchid", svgtiny_RGB(186, 85, 211)}, +#line 152 "colors.gperf" + {"rosybrown", svgtiny_RGB(188, 143, 143)}, +#line 124 "colors.gperf" + {"mediumslateblue", svgtiny_RGB(123, 104, 238)}, +#line 70 "colors.gperf" + {"darkturquoise", svgtiny_RGB( 0, 206, 209)}, +#line 143 "colors.gperf" + {"palevioletred", svgtiny_RGB(219, 112, 147)}, +#line 144 "colors.gperf" + {"papayawhip", svgtiny_RGB(255, 239, 213)}, +#line 125 "colors.gperf" + {"mediumspringgreen", svgtiny_RGB( 0, 250, 154)}, +#line 58 "colors.gperf" + {"darkgrey", svgtiny_RGB(169, 169, 169)}, +#line 126 "colors.gperf" + {"mediumturquoise", svgtiny_RGB( 72, 209, 204)}, +#line 56 "colors.gperf" + {"darkgray", svgtiny_RGB(169, 169, 169)}, +#line 55 "colors.gperf" + {"darkgoldenrod", svgtiny_RGB(184, 134, 11)}, +#line 75 "colors.gperf" + {"dimgrey", svgtiny_RGB(105, 105, 105)}, +#line 74 "colors.gperf" + {"dimgray", svgtiny_RGB(105, 105, 105)}, +#line 89 "colors.gperf" + {"honeydew", svgtiny_RGB(240, 255, 240)}, +#line 37 "colors.gperf" + {"beige", svgtiny_RGB(245, 245, 220)}, +#line 170 "colors.gperf" + {"thistle", svgtiny_RGB(216, 191, 216)}, +#line 50 "colors.gperf" + {"cornsilk", svgtiny_RGB(255, 248, 220)}, +#line 135 "colors.gperf" + {"olive", svgtiny_RGB(128, 128, 0)}, +#line 42 "colors.gperf" + {"blueviolet", svgtiny_RGB(138, 43, 226)}, +#line 119 "colors.gperf" + {"mediumaquamarine", svgtiny_RGB(102, 205, 170)}, +#line 49 "colors.gperf" + {"cornflowerblue", svgtiny_RGB(100, 149, 237)}, +#line 32 "colors.gperf" + {"aliceblue", svgtiny_RGB(240, 248, 255)}, +#line 149 "colors.gperf" + {"powderblue", svgtiny_RGB(176, 224, 230)}, +#line 142 "colors.gperf" + {"paleturquoise", svgtiny_RGB(175, 238, 238)}, +#line 69 "colors.gperf" + {"darkslategrey", svgtiny_RGB( 47, 79, 79)}, +#line 59 "colors.gperf" + {"darkkhaki", svgtiny_RGB(189, 183, 107)}, +#line 68 "colors.gperf" + {"darkslategray", svgtiny_RGB( 47, 79, 79)}, +#line 82 "colors.gperf" + {"ghostwhite", svgtiny_RGB(248, 248, 255)}, +#line 136 "colors.gperf" + {"olivedrab", svgtiny_RGB(107, 142, 35)}, +#line 140 "colors.gperf" + {"palegoldenrod", svgtiny_RGB(238, 232, 170)}, +#line 54 "colors.gperf" + {"darkcyan", svgtiny_RGB( 0, 139, 139)}, +#line 90 "colors.gperf" + {"hotpink", svgtiny_RGB(255, 105, 180)}, +#line 81 "colors.gperf" + {"gainsboro", svgtiny_RGB(220, 220, 220)}, +#line 72 "colors.gperf" + {"deeppink", svgtiny_RGB(255, 20, 147)}, +#line 51 "colors.gperf" + {"crimson", svgtiny_RGB(220, 20, 60)}, +#line 44 "colors.gperf" + {"burlywood", svgtiny_RGB(222, 184, 135)}, +#line 78 "colors.gperf" + {"floralwhite", svgtiny_RGB(255, 250, 240)}, +#line 175 "colors.gperf" + {"white", svgtiny_RGB(255, 255, 255)}, +#line 132 "colors.gperf" + {"navajowhite", svgtiny_RGB(255, 222, 173)}, +#line 177 "colors.gperf" + {"yellow", svgtiny_RGB(255, 255, 0)}, +#line 178 "colors.gperf" + {"yellowgreen", svgtiny_RGB(154, 205, 50)}, +#line 109 "colors.gperf" + {"lightskyblue", svgtiny_RGB(135, 206, 250)}, +#line 73 "colors.gperf" + {"deepskyblue", svgtiny_RGB( 0, 191, 255)}, +#line 176 "colors.gperf" + {"whitesmoke", svgtiny_RGB(245, 245, 245)} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = svgtiny_color_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE) + { + register const struct svgtiny_named_color *resword; + + switch (key - 4) + { + case 0: + resword = &wordlist[0]; + goto compare; + case 10: + resword = &wordlist[1]; + goto compare; + case 16: + resword = &wordlist[2]; + goto compare; + case 20: + resword = &wordlist[3]; + goto compare; + case 21: + resword = &wordlist[4]; + goto compare; + case 25: + resword = &wordlist[5]; + goto compare; + case 26: + resword = &wordlist[6]; + goto compare; + case 30: + resword = &wordlist[7]; + goto compare; + case 33: + resword = &wordlist[8]; + goto compare; + case 35: + resword = &wordlist[9]; + goto compare; + case 37: + resword = &wordlist[10]; + goto compare; + case 40: + resword = &wordlist[11]; + goto compare; + case 44: + resword = &wordlist[12]; + goto compare; + case 45: + resword = &wordlist[13]; + goto compare; + case 46: + resword = &wordlist[14]; + goto compare; + case 52: + resword = &wordlist[15]; + goto compare; + case 55: + resword = &wordlist[16]; + goto compare; + case 56: + resword = &wordlist[17]; + goto compare; + case 60: + resword = &wordlist[18]; + goto compare; + case 62: + resword = &wordlist[19]; + goto compare; + case 65: + resword = &wordlist[20]; + goto compare; + case 67: + resword = &wordlist[21]; + goto compare; + case 70: + resword = &wordlist[22]; + goto compare; + case 74: + resword = &wordlist[23]; + goto compare; + case 75: + resword = &wordlist[24]; + goto compare; + case 76: + resword = &wordlist[25]; + goto compare; + case 80: + resword = &wordlist[26]; + goto compare; + case 81: + resword = &wordlist[27]; + goto compare; + case 83: + resword = &wordlist[28]; + goto compare; + case 85: + resword = &wordlist[29]; + goto compare; + case 90: + resword = &wordlist[30]; + goto compare; + case 91: + resword = &wordlist[31]; + goto compare; + case 92: + resword = &wordlist[32]; + goto compare; + case 93: + resword = &wordlist[33]; + goto compare; + case 95: + resword = &wordlist[34]; + goto compare; + case 97: + resword = &wordlist[35]; + goto compare; + case 100: + resword = &wordlist[36]; + goto compare; + case 102: + resword = &wordlist[37]; + goto compare; + case 104: + resword = &wordlist[38]; + goto compare; + case 105: + resword = &wordlist[39]; + goto compare; + case 107: + resword = &wordlist[40]; + goto compare; + case 109: + resword = &wordlist[41]; + goto compare; + case 110: + resword = &wordlist[42]; + goto compare; + case 114: + resword = &wordlist[43]; + goto compare; + case 115: + resword = &wordlist[44]; + goto compare; + case 117: + resword = &wordlist[45]; + goto compare; + case 118: + resword = &wordlist[46]; + goto compare; + case 120: + resword = &wordlist[47]; + goto compare; + case 125: + resword = &wordlist[48]; + goto compare; + case 129: + resword = &wordlist[49]; + goto compare; + case 130: + resword = &wordlist[50]; + goto compare; + case 135: + resword = &wordlist[51]; + goto compare; + case 137: + resword = &wordlist[52]; + goto compare; + case 138: + resword = &wordlist[53]; + goto compare; + case 140: + resword = &wordlist[54]; + goto compare; + case 141: + resword = &wordlist[55]; + goto compare; + case 144: + resword = &wordlist[56]; + goto compare; + case 145: + resword = &wordlist[57]; + goto compare; + case 149: + resword = &wordlist[58]; + goto compare; + case 155: + resword = &wordlist[59]; + goto compare; + case 156: + resword = &wordlist[60]; + goto compare; + case 157: + resword = &wordlist[61]; + goto compare; + case 159: + resword = &wordlist[62]; + goto compare; + case 160: + resword = &wordlist[63]; + goto compare; + case 164: + resword = &wordlist[64]; + goto compare; + case 165: + resword = &wordlist[65]; + goto compare; + case 166: + resword = &wordlist[66]; + goto compare; + case 167: + resword = &wordlist[67]; + goto compare; + case 168: + resword = &wordlist[68]; + goto compare; + case 170: + resword = &wordlist[69]; + goto compare; + case 172: + resword = &wordlist[70]; + goto compare; + case 174: + resword = &wordlist[71]; + goto compare; + case 175: + resword = &wordlist[72]; + goto compare; + case 176: + resword = &wordlist[73]; + goto compare; + case 180: + resword = &wordlist[74]; + goto compare; + case 181: + resword = &wordlist[75]; + goto compare; + case 182: + resword = &wordlist[76]; + goto compare; + case 183: + resword = &wordlist[77]; + goto compare; + case 185: + resword = &wordlist[78]; + goto compare; + case 188: + resword = &wordlist[79]; + goto compare; + case 190: + resword = &wordlist[80]; + goto compare; + case 191: + resword = &wordlist[81]; + goto compare; + case 192: + resword = &wordlist[82]; + goto compare; + case 196: + resword = &wordlist[83]; + goto compare; + case 200: + resword = &wordlist[84]; + goto compare; + case 201: + resword = &wordlist[85]; + goto compare; + case 209: + resword = &wordlist[86]; + goto compare; + case 210: + resword = &wordlist[87]; + goto compare; + case 211: + resword = &wordlist[88]; + goto compare; + case 215: + resword = &wordlist[89]; + goto compare; + case 221: + resword = &wordlist[90]; + goto compare; + case 222: + resword = &wordlist[91]; + goto compare; + case 226: + resword = &wordlist[92]; + goto compare; + case 230: + resword = &wordlist[93]; + goto compare; + case 232: + resword = &wordlist[94]; + goto compare; + case 238: + resword = &wordlist[95]; + goto compare; + case 240: + resword = &wordlist[96]; + goto compare; + case 241: + resword = &wordlist[97]; + goto compare; + case 243: + resword = &wordlist[98]; + goto compare; + case 245: + resword = &wordlist[99]; + goto compare; + case 250: + resword = &wordlist[100]; + goto compare; + case 251: + resword = &wordlist[101]; + goto compare; + case 255: + resword = &wordlist[102]; + goto compare; + case 258: + resword = &wordlist[103]; + goto compare; + case 260: + resword = &wordlist[104]; + goto compare; + case 261: + resword = &wordlist[105]; + goto compare; + case 263: + resword = &wordlist[106]; + goto compare; + case 269: + resword = &wordlist[107]; + goto compare; + case 271: + resword = &wordlist[108]; + goto compare; + case 278: + resword = &wordlist[109]; + goto compare; + case 279: + resword = &wordlist[110]; + goto compare; + case 281: + resword = &wordlist[111]; + goto compare; + case 284: + resword = &wordlist[112]; + goto compare; + case 289: + resword = &wordlist[113]; + goto compare; + case 293: + resword = &wordlist[114]; + goto compare; + case 298: + resword = &wordlist[115]; + goto compare; + case 299: + resword = &wordlist[116]; + goto compare; + case 306: + resword = &wordlist[117]; + goto compare; + case 308: + resword = &wordlist[118]; + goto compare; + case 309: + resword = &wordlist[119]; + goto compare; + case 311: + resword = &wordlist[120]; + goto compare; + case 316: + resword = &wordlist[121]; + goto compare; + case 321: + resword = &wordlist[122]; + goto compare; + case 330: + resword = &wordlist[123]; + goto compare; + case 335: + resword = &wordlist[124]; + goto compare; + case 336: + resword = &wordlist[125]; + goto compare; + case 338: + resword = &wordlist[126]; + goto compare; + case 344: + resword = &wordlist[127]; + goto compare; + case 345: + resword = &wordlist[128]; + goto compare; + case 349: + resword = &wordlist[129]; + goto compare; + case 350: + resword = &wordlist[130]; + goto compare; + case 355: + resword = &wordlist[131]; + goto compare; + case 364: + resword = &wordlist[132]; + goto compare; + case 369: + resword = &wordlist[133]; + goto compare; + case 373: + resword = &wordlist[134]; + goto compare; + case 380: + resword = &wordlist[135]; + goto compare; + case 384: + resword = &wordlist[136]; + goto compare; + case 398: + resword = &wordlist[137]; + goto compare; + case 410: + resword = &wordlist[138]; + goto compare; + case 426: + resword = &wordlist[139]; + goto compare; + case 436: + resword = &wordlist[140]; + goto compare; + case 437: + resword = &wordlist[141]; + goto compare; + case 467: + resword = &wordlist[142]; + goto compare; + case 482: + resword = &wordlist[143]; + goto compare; + case 483: + resword = &wordlist[144]; + goto compare; + case 552: + resword = &wordlist[145]; + goto compare; + case 561: + resword = &wordlist[146]; + goto compare; + } + return 0; + compare: + { + register const char *s = resword->name; + + if (*str == *s && !strcmp (str + 1, s + 1)) + return resword; + } + } + } + return 0; +} diff --git a/pkg/netsurf/rev b/pkg/netsurf/rev index ec635144..f599e28b 100644 --- a/pkg/netsurf/rev +++ b/pkg/netsurf/rev @@ -1 +1 @@ -9 +10 diff --git a/pkg/netsurf/src b/pkg/netsurf/src -Subproject 8ec472ae2f5cda0a44341966408ee2a36445c6a +Subproject 49654e3d00a3037349ff143de70c8d3d9fb7cde |
