unsigned int srcwid : 2;
unsigned int els : 1;
unsigned int sea : 1;
+ unsigned int sat : 1;
};
static jmp_buf svp64_exception;
return str;
}
+static char *
+svp64_decode_sat (char *str, struct svp64_ctx *svp64)
+{
+ unsigned char mode;
+
+ str += (sizeof ("sat") - 1);
+ if ((*str != 's') && (*str != 'u'))
+ return NULL;
+
+ mode = *str++;
+ if ( ! ISSPACE (*str) && *str != SVP64_SEP && *str != '\0')
+ return NULL;
+
+ if (svp64->sv_mode_explicit)
+ svp64_raise (_("SV mode conflict: `%s'"), str);
+
+ svp64->sv_mode_explicit = 1;
+ svp64->sv_mode = 2;
+ svp64->sat = (mode == 's');
+
+ *str++ = '\0';
+
+ return str;
+}
+
static char *
svp64_decode_mode (char *str, struct svp64_ctx *svp64)
{
SVP64_DECODER ("sw=" , svp64_decode_sw),
SVP64_DECODER ("els" , svp64_decode_els),
SVP64_DECODER ("sea" , svp64_decode_sea),
+ SVP64_DECODER ("sats", svp64_decode_sat),
+ SVP64_DECODER ("satu", svp64_decode_sat),
};
for (i = 0; i < sizeof (table) / sizeof (table[0]); ++i)