>From 294f0ec43f6f64765d85d2e85ac9b4dafeb0e045
From: Ori Bernstein <[email protected]>
Date: Sun, 22 Mar 2020 18:00:34 -0700
Subject: [PATCH] portability fixes for plan9
Several changes are made here:
- Our compilers don't like double-declared enum tags, so we rename
them to avoid conflicts.
- We don't handle static initializations of bitfields, so we
replace 2 16 bit bitfields with 2 int16_ts. This shouldn't
affect storage or performance.
- uint32_t isn't guaranteed to be compatible with css_unit,
and in fact it isn't on plan9, so we need to just pass
a uint32_t.
diff -urN a/include/libcss/errors.h b/include/libcss/errors.h
--- a/include/libcss/errors.h Mon Feb 24 02:28:58 2020
+++ b/include/libcss/errors.h Sun Mar 22 18:00:34 2020
@@ -14,8 +14,9 @@
#endif
#include <stddef.h>
+#include <libcss/errors.h>
-typedef enum css_error {
+typedef enum {
CSS_OK = 0,
CSS_NOMEM = 1,
diff -urN a/src/lex/lex.c b/src/lex/lex.c
--- a/src/lex/lex.c Mon Feb 24 02:28:58 2020
+++ b/src/lex/lex.c Sun Mar 22 18:00:34 2020
@@ -1375,7 +1375,7 @@
css_error error;
parserutils_error perror;
enum { Initial = 0, LParen = 1, W1 = 2, Quote = 3,
- URL = 4, W2 = 5, RParen = 6, String = 7 };
+ URL = 4, W2 = 5, RParen = 6, Str = 7 };
/* URI = "url(" w (string | urlchar*) w ')'
*
@@ -1518,9 +1518,9 @@
APPEND(lexer, cptr, clen);
break;
- case String:
+ case Str:
string:
- lexer->substate = String;
+ lexer->substate = Str;
error = consumeString(lexer);
if (error == CSS_INVALID) {
diff -urN a/src/parse/properties/utils.c b/src/parse/properties/utils.c
--- a/src/parse/properties/utils.c Mon Feb 24 02:28:58 2020
+++ b/src/parse/properties/utils.c Sun Mar 22 18:00:34 2020
@@ -932,7 +932,7 @@
if (token->type == CSS_TOKEN_DIMENSION) {
size_t len = lwc_string_length(token->idata);
const char *data = lwc_string_data(token->idata);
- css_unit temp_unit = CSS_UNIT_PX;
+ uint32_t temp_unit = CSS_UNIT_PX;
error = css__parse_unit_keyword(data + consumed, len - consumed,
&temp_unit);
@@ -961,7 +961,7 @@
* (e.g. "0 px")
*/
int temp_ctx = *ctx;
- css_unit temp_unit;
+ uint32_t temp_unit;
consumeWhitespace(vector, &temp_ctx);