Allow Mosaic to display UTF-8 encoded characters (#18)

* replace XDrawString with XmStringDraw
HTMLformat.c, HTMLtable.c: The Motif 2.x XmStringDraw can display UTF-8 characters.
gui.c, gui-dialog.c: replace XmStringCreateSimple with XmStringCreateLocalized
xresources.h: use ISO 10646-1 fonts

* Support for HTML entities with UTF-8 encoding
HTMLamp.h: more complete list of HTML 4 entities
HTMLparse.c: replace an HTML entity &#nnn; or &name; by the appropriate UTF-8 sequence.
master
Edmond Orignac 2022-04-17 16:05:37 +07:00 committed by GitHub
parent 6b855b30e8
commit af1c9aaaa2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 2490 additions and 260 deletions

@ -0,0 +1,10 @@
!Mosaic*rendertable.fontType: FONT_IS_FONT
!Mosaic*rendertable.fontName: AS_IS
!Mosaic*rendertable.underlineType: NO_LINE
! Two very readable fonts with accented characters
!Mosaic*Font: -bitstream-bitstream charter-medium-r-normal--0-0-0-0-p-0-iso10646-1
! Mosaic*Font: -b&h-lucidatypewriter-medium-r-normal-sans-17-120-100-100-m-100-iso10646-1
! Better font to display Greek or Cyrillic but small (12 points)
!Mosaic*Font: -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso10646-1
!
Mosaic*Font: -mutt-clearlyu-medium-r-normal--17-120-100-100-p-123-iso10646-1

@ -499,7 +499,7 @@ static XtResource resources[] =
{ WbNtoolbarFont,
WbCToolbarFont, XtRFontStruct, sizeof (XFontStruct *),
XtOffset (HTMLWidget, html.toolbar_font),
XtRString, "-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1"
XtRString, "-adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso10646-1"
},
{ WbNfixedFont,

File diff suppressed because it is too large Load Diff

@ -5253,7 +5253,9 @@ PartialRefresh(hw, eptr, start_pos, end_pos, fg, bg)
int partial, descent;
unsigned long valuemask;
XGCValues values;
XmString ttd;
XmFontList tftd;
XSetFont(XtDisplay(hw), hw->html.drawGC, eptr->font->fid);
ascent = eptr->font->max_bounds.ascent;
width = -1;
@ -5376,13 +5378,24 @@ PartialRefresh(hw, eptr, start_pos, end_pos, fg, bg)
XSetForeground(XtDisplay(hw), hw->html.drawGC, fg);
XSetBackground(XtDisplay(hw), hw->html.drawGC, bg);
XDrawString(XtDisplay(hw),
XtWindow(hw->html.view),
hw->html.drawGC,
x,
y + ascent,
(char *)tdata,
tlen);
tftd=XmFontListCreate(eptr->font,XmSTRING_DEFAULT_CHARSET);
ttd=XmStringCreateLocalized(tdata);
XmStringDraw(XtDisplay(hw),
XtWindow(hw->html.view),
tftd,
ttd,
hw->html.drawGC,
x,
y,
XmStringWidth(tftd,ttd),
XmALIGNMENT_BEGINNING,
XmSTRING_DIRECTION_L_TO_R,
NULL);
XmStringFree(ttd);
XmFontListFree(tftd);
}
else {
XSetForeground(XtDisplay(hw), hw->html.drawGC, bg);
@ -5412,14 +5425,24 @@ PartialRefresh(hw, eptr, start_pos, end_pos, fg, bg)
(y<0 ?
(ascent+eptr->font->descent+y) :
(ascent+eptr->font->descent)));
tftd=XmFontListCreate(eptr->font,XmSTRING_DEFAULT_CHARSET);
ttd=XmStringCreateLocalized(tdata);
XmStringDraw(XtDisplay(hw),
XtWindow(hw->html.view),
tftd,
ttd,
hw->html.drawGC,
x,
y,
XmStringWidth(tftd,ttd),
XmALIGNMENT_BEGINNING,
XmSTRING_DIRECTION_L_TO_R,
NULL);
XmStringFree(ttd);
XmFontListFree(tftd);
XDrawString(XtDisplay(hw),
XtWindow(hw->html.view),
hw->html.drawGC,
x,
y + ascent,
(char *)tdata,
tlen);
}

@ -111,7 +111,45 @@ unsigned char map_table[256]={
#define TOLOWER(x) (map_table[x])
#endif /* NOT_ASCII */
/* Converts an UCS code < 65536 into a UTF-8 string. Returns the string length */
int ucs2utf8(unsigned int ucs,char code[4])
{
unsigned int x,y,z;
if (ucs<128)
{
code[0]=(char)ucs;
code[1]='\0';
return(1);
}
else if (ucs<2048)
{
x=ucs/64;
y=ucs-64*x;
code[0]=(char)(192+x);
code[1]=(char)(128+y);
code[2]='\0';
return(2);
}
else if (ucs<65536)
{
x=ucs/4096;
y=(ucs-4096*x)/64;
z=ucs-4096*x-64*y;
code[0]=(char)(224+x);
code[1]=(char)(128+y);
code[2]=(char)(128+z);
code[3]='\0';
return(3);
}
else
{
/* Not implemented yet */
code[0]='\0';
return(0);
}
}
/*
* Check if two strings are equal, ignoring case.
* The strings must be of the same length to be equal.
@ -271,8 +309,8 @@ clean_white_space(txt)
/*
* parse an amperstand escape, and return the appropriate character, or
* '\0' on error.
* parse an amperstand escape, and return the length of the UTF-8 sequence encoding the character, or
* 0 on error. val contains the UTF-8 sequence.
* we should really only use caseless_equal_prefix for unterminated, and use
* caseless_equal otherwise, but since there are so many escapes, and I
* don't want to type everything twice, I always use caseless_equal_prefix
@ -282,14 +320,16 @@ clean_white_space(txt)
* 1: unterminated
* 2: terminated with whitespace
*/
char
ExpandEscapes(esc, endp, termination)
int
ExpandEscapes(esc, endp, termination,val)
char *esc;
char **endp;
int termination;
char val[4];
{
int cnt;
char val;
unsigned int ucs,lng=0;
int jj;
int unterminated;
unterminated = (termination & 0x01);
@ -309,14 +349,26 @@ ExpandEscapes(esc, endp, termination)
}
tchar = *tptr;
*tptr = '\0';
val = (char)atoi((esc + 1));
ucs = atoi((esc + 1));
lng=ucs2utf8(ucs, val);
#ifndef DISABLE_TRACE
if (htmlwTrace) {
fprintf(stderr,"&#%ud character: %s\n",ucs,val);
}
#endif
*tptr = tchar;
*endp = tptr;
}
else
{
val = (char)atoi((esc + 1));
ucs=atoi((esc + 1));
lng=ucs2utf8(ucs, val);
*endp = (char *)(esc + strlen(esc));
#ifndef DISABLE_TRACE
if (htmlwTrace) {
fprintf(stderr,"&#%ud character: %s\n",ucs,val);
}
#endif
}
}
else
@ -329,7 +381,13 @@ ExpandEscapes(esc, endp, termination)
ampLen = strlen(AmpEscapes[cnt].tag);
if ((escLen == ampLen) && (strncmp(esc, AmpEscapes[cnt].tag, ampLen) == 0))
{
val = AmpEscapes[cnt].value;
ucs = AmpEscapes[cnt].value;
lng=ucs2utf8(ucs, val);
#ifndef DISABLE_TRACE
if (htmlwTrace) {
fprintf(stderr,"&%s; character:%s\n",esc,val);
}
#endif
*endp = (char *)(esc +
strlen(AmpEscapes[cnt].tag));
break;
@ -343,12 +401,13 @@ ExpandEscapes(esc, endp, termination)
fprintf(stderr, "Error bad & string\n");
}
#endif
val = '\0';
val[0] = '\0';
lng=0;
*endp = (char *)NULL;
}
}
return(val);
return(lng);
}
@ -375,7 +434,9 @@ clean_text(txt)
char *text;
char *tend;
char tchar;
char val;
char val[4];
int lng;
int jj;
if (txt == NULL)
{
@ -460,9 +521,9 @@ clean_text(txt)
/*
* Replace escape sequence with appropriate character
*/
val = ExpandEscapes(text, &tend,
((space_terminated << 1) + unterminated));
if (val != '\0')
lng = ExpandEscapes(text, &tend,
((space_terminated << 1) + unterminated), val);
if (lng>0)
{
if (unterminated)
{
@ -475,7 +536,11 @@ clean_text(txt)
{
ptr--;
}
*ptr2 = val;
for (jj=0; jj<=lng-1; jj++)
{
*ptr2 = val[jj];
ptr2++;
}
unterminated = 0;
space_terminated = 0;
}
@ -498,7 +563,7 @@ clean_text(txt)
* Copy forward remaining text until you find the next
* escape sequence
*/
ptr2++;
ptr++;
while (*ptr != '\0')
{

@ -1121,10 +1121,22 @@ int yy;
XSetBackground(XtDisplay(hw), hw->html.drawGC, eptr->bg);
XSetForeground(XtDisplay(hw), hw->html.drawGC, eptr->fg);
XSetFont(XtDisplay(hw), hw->html.drawGC, field->font->fid);
XDrawString(XtDisplay(hw), XtWindow(hw->html.view),
hw->html.drawGC, placeX, placeY+baseLine,
field->formattedText[yy],
strlen(field->formattedText[yy]));
XmString ttd=XmStringCreateLocalized(field->formattedText[yy]);
XmFontList tftd=XmFontListCreate(field->font,XmSTRING_DEFAULT_CHARSET);
XmStringDraw(XtDisplay(hw),
XtWindow(hw->html.view),
tftd,
ttd,
hw->html.drawGC,
placeX,
placeY+baseLine,
XmStringWidth(tftd,ttd),
XmALIGNMENT_BEGINNING,
XmSTRING_DIRECTION_L_TO_R,
NULL);
XmStringFree(ttd);
XmFontListFree(tftd);
placeY += lineHeight;
}

@ -450,7 +450,7 @@ CollectSubmitInfo(fptr, name_list, value_list)
= wptr->name;
#ifdef MOTIF
XmStringGetLtoR(str_list[j],
XmSTRING_DEFAULT_CHARSET,
XmFONTLIST_DEFAULT_TAG,
&val);
#else
val = str_list[j];
@ -486,7 +486,7 @@ CollectSubmitInfo(fptr, name_list, value_list)
argcnt++;
XtGetValues(child, arg, argcnt);
val = NULL;
XmStringGetLtoR(label, XmSTRING_DEFAULT_CHARSET,
XmStringGetLtoR(label, XmFONTLIST_DEFAULT_TAG,
&val);
#else
XtVaGetValues(wptr->w, XtNlabel, &val, NULL);
@ -1337,7 +1337,7 @@ CBResetForm(w, client_data, call_data)
for (i=0; i<vlist_cnt; i++)
{
val_list[i] =
XmStringCreateSimple(vlist[i]);
XmStringCreateLocalized(vlist[i]);
}
#else
XawListUnhighlight(child);
@ -2237,7 +2237,7 @@ MakeWidget(hw, text, x, y, id, fptr)
tptr = ParseMarkTag(text, MT_INPUT, "CHECKED");
/* We want no text on our toggles */
label = XmStringCreateSimple("");
label = XmStringCreateLocalized("");
argcnt = 0;
XtSetArg(arg[argcnt], XmNlabelString, label); argcnt++;
@ -2304,7 +2304,7 @@ MakeWidget(hw, text, x, y, id, fptr)
}
/* We want no text on our toggles */
label = XmStringCreateSimple("");
label = XmStringCreateLocalized("");
argcnt = 0;
XtSetArg(arg[argcnt], XmNlabelString, label); argcnt++;
@ -2355,7 +2355,7 @@ MakeWidget(hw, text, x, y, id, fptr)
argcnt++;*/
if (value != NULL)
{
label = XmStringCreateSimple(value);
label = XmStringCreateLocalized(value);
XtSetArg(arg[argcnt], XmNlabelString, label);
argcnt++;
}
@ -2393,7 +2393,7 @@ MakeWidget(hw, text, x, y, id, fptr)
argcnt++;*/
if (value != NULL)
{
label = XmStringCreateSimple(value);
label = XmStringCreateLocalized(value);
XtSetArg(arg[argcnt], XmNlabelString, label);
argcnt++;
}
@ -2425,7 +2425,7 @@ MakeWidget(hw, text, x, y, id, fptr)
argcnt++; */
if (value != NULL)
{
label = XmStringCreateSimple(value);
label = XmStringCreateLocalized(value);
XtSetArg(arg[argcnt], XmNlabelString, label);
argcnt++;
}
@ -2645,7 +2645,7 @@ MakeWidget(hw, text, x, y, id, fptr)
char bname[30];
sprintf(bname, "Button%d", (i + 1));
label = XmStringCreateSimple(list[i]);
label = XmStringCreateLocalized(list[i]);
argcnt = 0;
XtSetArg(arg[argcnt], XmNlabelString,
label);
@ -2722,7 +2722,7 @@ MakeWidget(hw, text, x, y, id, fptr)
argcnt = 0;
xmstr = XmStringCreateSimple ("");
xmstr = XmStringCreateLocalized ("");
XtSetArg(arg[argcnt], XmNlabelString,
(XtArgVal)xmstr);
argcnt++;
@ -2763,12 +2763,12 @@ MakeWidget(hw, text, x, y, id, fptr)
for (i=0; i<list_cnt; i++)
{
string_list[i] =
XmStringCreateSimple(list[i]);
XmStringCreateLocalized(list[i]);
}
for (i=0; i<vlist_cnt; i++)
{
val_list[i] =
XmStringCreateSimple(vlist[i]);
XmStringCreateLocalized(vlist[i]);
}
FreeCommaList(list, list_cnt);

@ -367,7 +367,7 @@ static XmxCallback (save_win_cb)
XtUnmanageChild (win->save_win);
XmStringGetLtoR (((XmFileSelectionBoxCallbackStruct *)call_data)->value,
XmSTRING_DEFAULT_CHARSET,
XmFONTLIST_DEFAULT_TAG,
&fname);
pathEval (efname, fname);
@ -585,7 +585,7 @@ char fileBuf[2048],*fileBoxFileName;
XtVaGetValues(win->save_win,
XmNdirSpec, &fbfn,
NULL);
if (!XmStringGetLtoR(fbfn,XmSTRING_DEFAULT_CHARSET,&fileBoxFileName)) {
if (!XmStringGetLtoR(fbfn,XmFONTLIST_DEFAULT_TAG,&fileBoxFileName)) {
#ifndef DISABLE_TRACE
if (srcTrace) {
fprintf(stderr,"Internal Error In Save As... PLEASE REPORT THIS!\n");
@ -597,7 +597,7 @@ char fileBuf[2048],*fileBoxFileName;
if (*fileBoxFileName && win && win->current_node && win->current_node->url && *(win->current_node->url)) {
/*no need to check on NULL from getFileName as we know url exists*/
sprintf(fileBuf,"%s%s",fileBoxFileName,getFileName(win->current_node->url));
sfn=XmStringCreateLtoR(fileBuf,XmSTRING_DEFAULT_CHARSET);
sfn=XmStringCreateLtoR(fileBuf,XmFONTLIST_DEFAULT_TAG);
XtVaSetValues(win->save_win,
XmNdirSpec, sfn,
NULL);
@ -676,7 +676,7 @@ static XmxCallback (savebinary_win_cb)
XtUnmanageChild (win->savebinary_win);
XmStringGetLtoR (((XmFileSelectionBoxCallbackStruct *)call_data)->value,
XmSTRING_DEFAULT_CHARSET,
XmFONTLIST_DEFAULT_TAG,
&fname);
pathEval (efname, fname);
@ -729,7 +729,7 @@ char fileBuf[2048],*fileBoxFileName;
XtVaGetValues(win->savebinary_win,
XmNdirSpec, &fbfn,
NULL);
if (!XmStringGetLtoR(fbfn,XmSTRING_DEFAULT_CHARSET,&fileBoxFileName)) {
if (!XmStringGetLtoR(fbfn,XmFONTLIST_DEFAULT_TAG,&fileBoxFileName)) {
#ifndef DISABLE_TRACE
if (srcTrace) {
fprintf(stderr,"Internal Error In Save Binary... PLEASE REPORT THIS!\n");
@ -749,7 +749,7 @@ char fileBuf[2048],*fileBoxFileName;
}
}
sprintf(fileBuf,"%s%s",fileBoxFileName,sptr);
sfn=XmStringCreateLtoR(fileBuf,XmSTRING_DEFAULT_CHARSET);
sfn=XmStringCreateLtoR(fileBuf,XmFONTLIST_DEFAULT_TAG);
XtVaSetValues(win->savebinary_win,
XmNdirSpec, sfn,
NULL);
@ -778,7 +778,7 @@ static XmxCallback (open_local_win_cb)
XtUnmanageChild (win->open_local_win);
XmStringGetLtoR (((XmFileSelectionBoxCallbackStruct *)call_data)->value,
XmSTRING_DEFAULT_CHARSET,
XmFONTLIST_DEFAULT_TAG,
&fname);
pathEval (efname, fname);

@ -1218,7 +1218,7 @@ static void pointer_motion_callback (Widget w, char *href)
} else
href = " ";
xmstr = XmStringCreateSimple (href);
xmstr = XmStringCreateLocalized (href);
XtVaSetValues
(win->tracker_label,
XmNlabelString, (XtArgVal)xmstr,
@ -1433,7 +1433,7 @@ void mo_gui_notify_progress (char *msg)
if (!msg)
msg = " ";
xmstr = XmStringCreateSimple (msg);
xmstr = XmStringCreateLocalized (msg);
XtVaSetValues
(win->tracker_label,
XmNlabelString, (XtArgVal)xmstr,
@ -2580,11 +2580,11 @@ Widget mo_fill_toolbar(mo_window *win, Widget top, int w, int h)
&tmpFont,
NULL);
if (!tmpFont) {
fprintf(stderr,"Toolbar Font: Could not load! The X Resource is Mosaic*ToolbarFont\nDefault font is: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1\nExiting Mosaic.");
fprintf(stderr,"Toolbar Font: Could not load! The X Resource is Mosaic*ToolbarFont\nDefault font is: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso10646-1\nExiting Mosaic.");
exit(1);
}
tmpFontList = XmFontListCreate(tmpFont,XmSTRING_DEFAULT_CHARSET);
tmpFontList = XmFontListCreate(tmpFont,XmFONTLIST_DEFAULT_TAG);
}
/* Which tools to show */

@ -51,7 +51,7 @@
* Comments and questions are welcome and can be sent to *
* mosaic-x@ncsa.uiuc.edu. *
****************************************************************************/
#define FONTNAME "-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1"
#define FONTNAME "-adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso10646-1"
#define TRANS_HTTP 0
#define TRANS_CCI 1

@ -588,32 +588,32 @@ static XrmOptionDescRec options[] = {
};
static String color_resources[] = {
"*XmLabel*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmScale*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmBulletinBoard*labelFontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*optionmenu.XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmPushButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmPushButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmToggleButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmToggleButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*optionmenu*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmIconGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmBulletinBoard*buttonFontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*menubar*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmPushButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmLabelGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmPushButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmToggleButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*pulldownmenu*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmList*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmText.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
"*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
"*XmLabel*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmScale*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmBulletinBoard*labelFontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*optionmenu.XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmPushButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmPushButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmToggleButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmToggleButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*optionmenu*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmIconGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmBulletinBoard*buttonFontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*menubar*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmPushButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmLabelGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmPushButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmToggleButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*pulldownmenu*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmList*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmText.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso10646-1",
"*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso10646-1",
"*optionmenu*marginHeight: 0",
"*optionmenu*marginTop: 5",
@ -655,23 +655,23 @@ static String color_resources[] = {
/* "*geometry: +400+200", */
/* "*keyboardFocusPolicy: pointer",*/
"*TitleFont: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1",
"*Font: -adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*ItalicFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1",
"*BoldFont: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*FixedFont: -adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*Header1Font: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1",
"*Header2Font: -adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1",
"*Header3Font: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*Header4Font: -adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*Header5Font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1",
"*Header6Font: -adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1",
"*AddressFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1",
"*PlainFont: -adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*ListingFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-iso8859-1",
"*SupSubFont: -adobe-times-medium-r-normal-*-10-*-*-*-*-*-iso8859-1",
"*TitleFont: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso10646-1",
"*Font: -adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*ItalicFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso10646-1",
"*BoldFont: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*FixedFont: -adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*Header1Font: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso10646-1",
"*Header2Font: -adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso10646-1",
"*Header3Font: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*Header4Font: -adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*Header5Font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso10646-1",
"*Header6Font: -adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso10646-1",
"*AddressFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso10646-1",
"*PlainFont: -adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*ListingFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-iso10646-1",
"*SupSubFont: -adobe-times-medium-r-normal-*-10-*-*-*-*-*-iso10646-1",
"*MeterFont: -adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*",
"*ToolbarFont: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1",
"*ToolbarFont: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso10646-1",
"*AnchorUnderlines: 1",
"*VisitedAnchorUnderlines: 1",
"*DashedVisitedAnchorUnderlines: True",
@ -746,32 +746,32 @@ static String color_resources[] = {
};
static String mono_resources[] = {
"*XmLabel*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmScale*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmBulletinBoard*labelFontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*optionmenu.XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*XmPushButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmPushButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmToggleButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmToggleButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*optionmenu*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmIconGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmBulletinBoard*buttonFontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*menubar*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmPushButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmLabelGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmPushButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmToggleButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*pulldownmenu*fontList: -*-helvetica-bold-o-normal-*-14-*-iso8859-1",
"*XmList*fontList: -*-helvetica-medium-r-normal-*-14-*-iso8859-1",
"*XmText.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
"*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso8859-1",
"*XmLabel*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmScale*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmBulletinBoard*labelFontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*optionmenu.XmLabelGadget*fontList: -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*XmPushButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmPushButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmToggleButton*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmToggleButtonGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*optionmenu*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmIconGadget*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmBulletinBoard*buttonFontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*menubar*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmPushButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmLabelGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmPushButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmCascadeButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmCascadeButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmToggleButton*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmMenuShell*XmToggleButtonGadget*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*pulldownmenu*fontList: -*-helvetica-bold-o-normal-*-14-*-iso10646-1",
"*XmList*fontList: -*-helvetica-medium-r-normal-*-14-*-iso10646-1",
"*XmText.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso10646-1",
"*XmTextField.fontList: -*-lucidatypewriter-medium-r-normal-*-14-*-iso10646-1",
"*optionmenu*marginHeight: 0",
"*optionmenu*marginTop: 5",
@ -813,23 +813,23 @@ static String mono_resources[] = {
/* "*geometry: +400+200", */
/* "*keyboardFocusPolicy: pointer", */
"*TitleFont: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1",
"*Font: -adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*ItalicFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1",
"*BoldFont: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*FixedFont: -adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*Header1Font: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso8859-1",
"*Header2Font: -adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso8859-1",
"*Header3Font: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso8859-1",
"*Header4Font: -adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*Header5Font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1",
"*Header6Font: -adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso8859-1",
"*AddressFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso8859-1",
"*PlainFont: -adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1",
"*ListingFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-iso8859-1",
"*SupSubFont: -adobe-courier-medium-r-normal-*-10-*-*-*-*-*-iso8859-1",
"*TitleFont: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso10646-1",
"*Font: -adobe-times-medium-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*ItalicFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso10646-1",
"*BoldFont: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*FixedFont: -adobe-courier-medium-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*Header1Font: -adobe-times-bold-r-normal-*-24-*-*-*-*-*-iso10646-1",
"*Header2Font: -adobe-times-bold-r-normal-*-18-*-*-*-*-*-iso10646-1",
"*Header3Font: -adobe-times-bold-r-normal-*-17-*-*-*-*-*-iso10646-1",
"*Header4Font: -adobe-times-bold-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*Header5Font: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso10646-1",
"*Header6Font: -adobe-times-bold-r-normal-*-10-*-*-*-*-*-iso10646-1",
"*AddressFont: -adobe-times-medium-i-normal-*-17-*-*-*-*-*-iso10646-1",
"*PlainFont: -adobe-courier-medium-r-normal-*-14-*-*-*-*-*-iso10646-1",
"*ListingFont: -adobe-courier-medium-r-normal-*-12-*-*-*-*-*-iso10646-1",
"*SupSubFont: -adobe-courier-medium-r-normal-*-10-*-*-*-*-*-iso10646-1",
"*MeterFont: -adobe-courier-bold-r-normal-*-14-*-*-*-*-*-*-*",
"*ToolbarFont: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso8859-1",
"*ToolbarFont: -adobe-times-bold-r-normal-*-12-*-*-*-*-*-iso10646-1",
"*Foreground: black",
"*Background: white",