MCPcopy Create free account
hub / github.com/dillo-browser/dillo / parseValue

Method parseValue

src/cssparser.cc:890–1216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

888}
889
890bool CssParser::parseValue(CssPropertyName prop,
891 CssValueType type,
892 CssPropertyValue *val)
893{
894 CssLengthType lentype;
895 bool found, ret = false;
896 float fval;
897 int i, ival, err = 1;
898 Dstr *dstr;
899
900 switch (type) {
901 case CSS_TYPE_ENUM:
902 if (ttype == CSS_TK_SYMBOL) {
903 for (i = 0; Css_property_info[prop].enum_symbols[i]; i++)
904 if (dStrAsciiCasecmp(tval,
905 Css_property_info[prop].enum_symbols[i]) == 0) {
906 val->intVal = i;
907 ret = true;
908 break;
909 }
910 nextToken();
911 }
912 break;
913
914 case CSS_TYPE_MULTI_ENUM:
915 val->intVal = 0;
916 ret = true;
917
918 while (ttype == CSS_TK_SYMBOL) {
919 if (dStrAsciiCasecmp(tval, "none") != 0) {
920 for (i = 0, found = false;
921 !found && Css_property_info[prop].enum_symbols[i]; i++) {
922 if (dStrAsciiCasecmp(tval,
923 Css_property_info[prop].enum_symbols[i]) == 0)
924 val->intVal |= (1 << i);
925 }
926 }
927 nextToken();
928 }
929 break;
930
931 case CSS_TYPE_LENGTH_PERCENTAGE:
932 case CSS_TYPE_LENGTH_PERCENTAGE_NUMBER:
933 case CSS_TYPE_LENGTH:
934 case CSS_TYPE_SIGNED_LENGTH:
935 if (ttype == CSS_TK_DECINT || ttype == CSS_TK_FLOAT) {
936 fval = atof(tval);
937 lentype = CSS_LENGTH_TYPE_NONE;
938
939 nextToken();
940 if (!spaceSeparated && ttype == CSS_TK_SYMBOL) {
941 ret = true;
942
943 if (dStrAsciiCasecmp(tval, "px") == 0) {
944 lentype = CSS_LENGTH_TYPE_PX;
945 nextToken();
946 } else if (dStrAsciiCasecmp(tval, "mm") == 0) {
947 lentype = CSS_LENGTH_TYPE_MM;

Callers

nothing calls this directly

Calls 10

dStrAsciiCasecmpFunction · 0.85
CSS_CREATE_LENGTHFunction · 0.85
a_Color_parseFunction · 0.85
dStrdupFunction · 0.85
dStr_newFunction · 0.85
dStr_append_cFunction · 0.85
dStr_appendFunction · 0.85
dStrstripFunction · 0.85
dStr_freeFunction · 0.85
assertNotReachedFunction · 0.85

Tested by

no test coverage detected