- /* Print out styles. */
-
- while (*fmt != '\0') {
- arg1 = NULL;
- su = NULL;
-
- /* First letter: input argument type. */
-
- switch (*fmt++) {
- case 'h':
- i = va_arg(ap, int);
- su = &mysu;
- SCALE_HS_INIT(su, i);
- break;
- case 's':
- arg1 = va_arg(ap, char *);
- break;
- case 'u':
- su = va_arg(ap, struct roffsu *);
- break;
- case 'w':
- if ((arg2 = va_arg(ap, char *)) != NULL) {
- su = &mysu;
- a2width(arg2, su);
- }
- if (*fmt == '*') {
- if (su != NULL && su->unit == SCALE_EN &&
- su->scale > 5.9 && su->scale < 6.1)
- su = NULL;
- fmt++;
- }
- if (*fmt == '+') {
- if (su != NULL) {
- /* Make even bold text fit. */
- su->scale *= 1.2;
- /* Add padding. */
- su->scale += 3.0;
- }
- fmt++;
- }
- if (*fmt == '-') {
- if (su != NULL)
- su->scale *= -1.0;
- fmt++;
- }
- break;
- default:
- abort();
- }
-
- /* Second letter: style name. */
-
- switch (*fmt++) {
- case 'h':
- attr = "height";
- break;
- case 'i':
- attr = "text-indent";
- break;
- case 'l':
- attr = "margin-left";
- break;
- case 'w':
- attr = "width";
- break;
- case 'W':
- attr = "min-width";
- break;
- case '?':
- attr = arg1;
- arg1 = va_arg(ap, char *);
- break;
- default:
- abort();
- }
- if (su == NULL && arg1 == NULL)
+ style_written = 0;
+ while (*fmt++ == 's') {
+ arg1 = va_arg(ap, char *);
+ arg2 = va_arg(ap, char *);
+ if (arg2 == NULL)