FUNCTION VOID BRIDGE1_NAME(xmput) ( TEXT *message, /* in: FORTRAN-77 message string to log */ TEXT *key, /* in: for-77 message key */ TAEINT *status, /* out: status code */ STRLEN messagel, STRLEN keyl ) { FORSTR messaged; FORSTR keyd; messaged.length = GETLEN (messagel); messaged.pointer = message; keyd.length = GETLEN (keyl); keyd.pointer = key; BRIDGE2_NAME(xmput) (&messaged, &keyd, status); return; }
struct line { char *name; /* property name with trailing space */ int namelen; /* length of the name string */ enum { ALLOW_REPEAT = 0x01, /* this property may be repeated in multiple lines */ IS_SEEN = 0x02, /* this property has been seen already */ MUST_SEE = 0x04, /* this property must be seen */ IS_LAST = 0x08 /* this is the last property to be read */ } flags; char *fmt; /* format string for the arguments, NULL means a string arg */ int nvals; /* number of values to be read by sscanf */ void *vp[4]; /* pointers to values to be read */ }; static struct line header[] = { { GETLEN("FONT "), 0, " %200s", 1, {&xlfdname} }, { GETLEN("SIZE "), MUST_SEE, " %d", 1, {&pixel_size} }, { GETLEN("FONTBOUNDINGBOX "), MUST_SEE, " %hd %hd %hd %hd", 4, {&fmet.bbox[2], &fmet.bbox[3], &fmet.bbox[0], &fmet.bbox[1]} }, { GETLEN("FAMILY_NAME "), MUST_SEE, NULL, 1, {&fmet.name_family} }, { GETLEN("WEIGHT_NAME "), MUST_SEE, NULL, 1, {&fmet.name_style} }, { GETLEN("COPYRIGHT "), 0, NULL, 1, {&fmet.name_copyright} }, { GETLEN("SLANT "), MUST_SEE, NULL, 1, {&slant} }, { GETLEN("SPACING "), 0, NULL, 1, {&spacing} }, { GETLEN("SETWIDTH_NAME "), 0, NULL, 1, {&fnwidth} }, { GETLEN("CHARSET_REGISTRY "), 0, NULL, 1, {&charset_reg} }, { GETLEN("CHARSET_ENCODING "), 0, NULL, 1, {&charset_enc} }, { GETLEN("FONT_ASCENT "), 0, " %hd", 1, {&fmet.ascender} }, { GETLEN("FONT_DESCENT "), 0, " %hd", 1, {&fmet.descender} }, /* these 2 must go in this order for post-processing */