news@sun.Eng.Sun.COM (news) (06/01/90)
Submitted-by: parns.nsc.com!michael (Michael C. Wagnitz) Posting-number: Volume 7, Issue 84 Archive-name: xmail/patch1.04 Patch-To: xmail: Volume 6, Issue 41-46 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 4 (of 5)." # Contents: Patch.01d # Wrapped by michael@harley on Tue May 29 10:33:51 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'Patch.01d' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Patch.01d'\" else echo shar: Extracting \"'Patch.01d'\" \(47115 characters\) sed "s/^X//" >'Patch.01d' <<'END_OF_FILE' X+ XtTextBlock textblock; X+ XtTextPosition pos; X+ Widget w = WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow"); X+ X+ X+ pos = XtTextGetInsertionPoint(w) + 1; X+ X+ XtTextSetInsertionPoint(w, pos); X+ X+ textblock.firstPos = 0; X+ textblock.length = 1; X+ textblock.ptr = s; X+ textblock.format = FMT8BIT; X+ X+ XtTextReplace(w, pos, pos + 1, &textblock); X+ X+ XtTextSetInsertionPoint(w, pos); X+ X+ SetSelect(w, NULL, NULL, NULL); X+ } /* markIndex */ X+ X+ X+ /* X ** @(#)Normalize() - Position insertion pointer at end of any text X */ X void X*************** X*** 73,78 **** X--- 104,110 ---- X XtTextPosition lastPos; X X X+ XtTextSetInsertionPoint(w, 0); X lastPos = TextGetLastPos(w); X XtTextSetInsertionPoint(w, lastPos); X /* X*************** X*** 94,107 **** X { X XtTextBlock textblock; X XtTextPosition startPos, endPos; X! Arg args[MAXARGS]; X int status; X X X if (!s || strcmp(s, "") == 0) return; X X! #ifndef X11R3 X! if (w == WidgetOf(WidgetOf(toplevel, "vpane"), "indexWindow")) X if (strlen(s) > INDEXSIZE) { X INDEXSIZE = strlen(s) + 1; X IndexBuf = XtRealloc(IndexBuf, INDEXSIZE); X--- 126,139 ---- X { X XtTextBlock textblock; X XtTextPosition startPos, endPos; X! Arg args[2]; X int status; X X X if (!s || strcmp(s, "") == 0) return; X X! #if XtSpecificationRelease >= 4 X! if (w == WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow")) X if (strlen(s) > INDEXSIZE) { X INDEXSIZE = strlen(s) + 1; X IndexBuf = XtRealloc(IndexBuf, INDEXSIZE); X*************** X*** 134,142 **** X { X int j = 0; /* return zero if no valid message exists */ X char *s; X X for (s = IndexBuf + pos; s > IndexBuf && *(s-1) != '\n'; s--); X! for (s++; *s && !isdigit(*s); s++); X sscanf(s, "%d", &j); X return j; X } /* PositionToMsgNumber */ X--- 166,178 ---- X { X int j = 0; /* return zero if no valid message exists */ X char *s; X+ XtTextPosition newpos; X X for (s = IndexBuf + pos; s > IndexBuf && *(s-1) != '\n'; s--); X! newpos = s - IndexBuf; X! XtTextSetInsertionPoint(WidgetOf(WidgetOf(toplevel, "topBox"), "indexWindow"), X! newpos); /* reset insertion marker to front */ X! for (; *s && !isdigit(*s); s++); X sscanf(s, "%d", &j); X return j; X } /* PositionToMsgNumber */ X*************** X*** 150,169 **** X String msg; X { X Arg args[1]; X! char *p, *strchr(); X int worthy = 0; /* only msgs with ending newline are */ X X X! if ((p = strchr(msg, '\n')) != NULL) { /* Only display first line of output */ X *p = '\0'; /* (and no new line at end of label) */ X worthy = 1; X } X X! XtSetArg(args[0], XtNlabel, (XtArgVal) msg); /* show the error message */ X! XtSetValues(WidgetOf(WidgetOf(toplevel, "vpane"), "statusWindow"), args, ONE); X X if (worthy && XMail.bellRing) /* ring bell if not silenced by user */ X! XBell(XtDisplay(toplevel), 33); X } /* Bell */ X X X--- 186,209 ---- X String msg; X { X Arg args[1]; X! char *p, *index(); X! char buf[BUFSIZ]; X int worthy = 0; /* only msgs with ending newline are */ X X X! (void) strncpy(buf, msg, BUFSIZ - 1); X! buf[BUFSIZ - 1] = '\0'; X! X! if ((p = index(buf, '\n')) != NULL) { /* Only display first line of output */ X *p = '\0'; /* (and no new line at end of label) */ X worthy = 1; X } X X! XtSetArg(args[0], XtNlabel, (XtArgVal) buf); /* show the error message */ X! XtSetValues(WidgetOf(WidgetOf(toplevel, "topBox"), "statusWindow"), args, ONE); X X if (worthy && XMail.bellRing) /* ring bell if not silenced by user */ X! XBell (XtDisplay (toplevel), 33); X } /* Bell */ X X X*************** X*** 170,176 **** X /* X ** @(#)UpdateTitleBar() - replace information in the title bar label X */ X! void X UpdateTitleBar(format, arg) X char *format, *arg; X { X--- 210,216 ---- X /* X ** @(#)UpdateTitleBar() - replace information in the title bar label X */ X! int X UpdateTitleBar(format, arg) X char *format, *arg; X { X*************** X*** 179,198 **** X Widget w, m; X X X! w = WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "titleBar"), "titleBar"); X X sprintf(string, format, arg); X! sprintf(message, "%s - %s", TITLE, string); X XtSetArg(args[0], XtNlabel, (XtArgVal) message); X XtSetValues(w, args, ONE); X X! w = WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "commandPanel"), "hold"); X! XtSetSensitive(w, (string[1] == '+') ? False : True); X! X! w = WidgetOf(WidgetOf(WidgetOf(toplevel,"vpane"),"commandPanel"),"Newmail"); X m = WidgetOf(WidgetOf(WidgetOf(w, "Newmail_menu"), "menu"), "inc"); X if (m) X XtSetSensitive(m, (string[1] == '+') ? False : True); X } /* UpdateTitleBar */ X X X--- 219,236 ---- X Widget w, m; X X X! w = WidgetOf(WidgetOf(WidgetOf(toplevel, "topBox"), "titleBar"), "titleBar"); X X sprintf(string, format, arg); X! sprintf(message, "%s%d - %s", TITLE, PATCHLEVEL, string); X XtSetArg(args[0], XtNlabel, (XtArgVal) message); X XtSetValues(w, args, ONE); X X! w = WidgetOf(WidgetOf(WidgetOf(toplevel,"topBox"),"commandPanel"),"Newmail"); X m = WidgetOf(WidgetOf(WidgetOf(w, "Newmail_menu"), "menu"), "inc"); X if (m) X XtSetSensitive(m, (string[1] == '+') ? False : True); X+ return(1); /* for use inside parse C_FILE/O_BELL */ X } /* UpdateTitleBar */ X X X*************** X*** 204,223 **** X Widget w; X char *s; X { X! Arg args[MAXARGS]; X! Cardinal n; X! static XtTextSource old, new; X X if (s && *s) { X! n = 0; X! XtSetArg(args[n], XtNstring, (XtArgVal) s); n++; X! XtSetArg(args[n], XtNlength, (XtArgVal) strlen(s)); n++; X! XtSetArg(args[n], XtNeditType, (XtArgVal) XttextRead); n++; X X! new = XtStringSourceCreate(w, args, n); X XtTextSetSource(w, new, (XtTextPosition) 0); X if (old) X XtStringSourceDestroy(old); X- old = new; X } X } /* writeTo */ X--- 242,262 ---- X Widget w; X char *s; X { X! Arg args[4]; X! XtTextSource new; X! XtTextSource old = NULL; X X if (s && *s) { X! old = XtTextGetSource(w); X X! XtSetArg(args[0], XtNstring, (XtArgVal) s); X! XtSetArg(args[1], XtNlength, (XtArgVal) strlen(s)); X! XtSetArg(args[2], XtNeditType, (XtArgVal) XttextRead); X! X! new = XtStringSourceCreate(w, args, 3); X XtTextSetSource(w, new, (XtTextPosition) 0); X+ X if (old) X XtStringSourceDestroy(old); X } X } /* writeTo */ X*** ../v1.0/windows.c Sun May 27 21:06:03 1990 X--- windows.c Sun May 27 21:11:38 1990 X*************** X*** 40,45 **** X--- 40,46 ---- X * X * 1. AddHelpText: X * 2. AddMenuWindow: X+ * 3. AddSetMenu: X * 4. CreateFolderButton: and X * 5. CreateInputWindow. X * X*************** X*** 50,55 **** X--- 51,57 ---- X X #include "global.h" X #include "Mailwatch.h" X+ #include "patchlevel.h" X #include "icon.mail" X #include "national.bm" X X*************** X*** 63,70 **** X String name; X String help_text; X { X! Arg args[MAXARGS]; X! Cardinal indx, n; X XtTextSource new; X char trans[BUFSIZ]; X X--- 65,72 ---- X String name; X String help_text; X { X! Arg args[4]; X! Cardinal indx; X XtTextSource new; X char trans[BUFSIZ]; X X*************** X*** 78,93 **** X X if (HelpNames[indx]) { X (void) sprintf(trans, p_Trans, name, name); X! XtOverrideTranslations(parent, XtParseTranslationTable(trans)); X X! n = 0; X! XtSetArg(args[n], XtNstring, (XtArgVal) help_text); n++; X! XtSetArg(args[n], XtNlength, (XtArgVal) strlen(help_text)); n++; X! XtSetArg(args[n], XtNeditType, (XtArgVal) XttextRead); n++; X X! HelpStrings[indx] = XtStringSourceCreate(WidgetOf(WidgetOf(WidgetOf(toplevel, "vpane"), "help"), "helpWindow"), args, n); X } X- } X } /* AddHelpText */ X X X--- 80,94 ---- X X if (HelpNames[indx]) { X (void) sprintf(trans, p_Trans, name, name); X! XtOverrideTranslations(parent, XtParseTranslationTable(trans)); X X! XtSetArg(args[0], XtNstring, (XtArgVal) help_text); X! XtSetArg(args[1], XtNlength, (XtArgVal) strlen(help_text)); X! XtSetArg(args[2], XtNeditType, (XtArgVal) XttextRead); X X! HelpStrings[indx] = XtStringSourceCreate(WidgetOf(WidgetOf(WidgetOf(toplevel,"topBox"),"help"),"helpWindow"),args,3); X! } X } X } /* AddHelpText */ X X X*************** X*** 101,107 **** X String action; X menuList_p *list; X { X! Arg args[MAXARGS]; X Cardinal j, k, n, indx; X Widget menu, layout, previous, next; X char tag[BUFSIZ], trans[BUFSIZ], *c; X--- 102,108 ---- X String action; X menuList_p *list; X { X! Arg args[6]; X Cardinal j, k, n, indx; X Widget menu, layout, previous, next; X char tag[BUFSIZ], trans[BUFSIZ], *c; X*************** X*** 139,147 **** X XtSetArg(args[0], XtNtranslations, XtParseTranslationTable(trans)); X menu = XtCreatePopupShell(tag, overrideShellWidgetClass, parent, args, ONE); X X! n = 0; X! XtSetArg(args[n], XtNdefaultDistance, 1); n++; X! layout = XtCreateManagedWidget("menu", formWidgetClass, menu, args, n); X /* X ** Find widest label for this menu X */ X--- 140,147 ---- X XtSetArg(args[0], XtNtranslations, XtParseTranslationTable(trans)); X menu = XtCreatePopupShell(tag, overrideShellWidgetClass, parent, args, ONE); X X! XtSetArg(args[0], XtNdefaultDistance, (XtArgVal) 1); X! layout = XtCreateManagedWidget("menu", formWidgetClass, menu, args, ONE); X /* X ** Find widest label for this menu X */ X*************** X*** 150,188 **** X j = k; X n = indx; X } X! n = --indx; X! /* X! ** add length for accelerator keys menu notes X! */ X! indx = XTextWidth(TextFontStr, list[n]->label, j) + 12; X! if (n > 0) X! indx += XTextWidth(TextFontStr, Labels[n], strlen(Labels[n])); X X! n = 0; X! XtSetArg(args[n], XtNwidth, indx); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(b_Trans)); n++; X /* X ** create the menu buttons X */ X previous = NULL; X! for (indx = 0; list[indx] != NULL; indx++, n = 3) { X! strcpy(tag, list[indx]->label); /* set window id from label */ X! if ((c = (char *)index(tag, ' '))) *c = '\0'; X! X sprintf(trans, "%-*.*s", j, j, list[indx]->label); X- X if (Labels[indx]) /* add accel. note if needed */ X strcat(trans, Labels[indx]); X- else X- strcat(trans, " "); /* keep all labels aligned */ X X! if (indx == 1 && list[indx + 1]) /* 2 option menu is narrower */ X! strcat(trans, " "); X! X! XtSetArg(args[n], XtNlabel, trans); n++; X! XtSetArg(args[n], XtNfromVert, previous); n++; X! next = XtCreateManagedWidget(tag, commandWidgetClass, layout, args, n); X XtAddCallback(next, XtNcallback, list[indx]->func, list[indx]->data); X previous = next; X X--- 150,177 ---- X j = k; X n = indx; X } X! k = XTextWidth(TextFontStr, list[n]->label, j) + 12; X X! if (--indx > 0) /* add length for accelerator keys menu notes */ X! k += XTextWidth(TextFontStr, Labels[indx], strlen(Labels[indx])); X /* X ** create the menu buttons X */ X previous = NULL; X! XtSetArg(args[0], XtNwidth, k); X! XtSetArg(args[1], XtNfont, TextFontStr); X! XtSetArg(args[2], XtNjustify, XtJustifyLeft); X! XtSetArg(args[3], XtNtranslations, XtParseTranslationTable(b_Trans)); X! for (indx = 0; list[indx] != NULL; indx++) { X! strcpy(tag, list[indx]->label); /* set window name by label */ X! if ((c = (char *)index(tag, ' '))) *c = '\0'; /* first word only */ X sprintf(trans, "%-*.*s", j, j, list[indx]->label); X if (Labels[indx]) /* add accel. note if needed */ X strcat(trans, Labels[indx]); X X! XtSetArg(args[4], XtNlabel, trans); X! XtSetArg(args[5], XtNfromVert, previous); X! next = XtCreateManagedWidget(tag, commandWidgetClass, layout, args, 6); X XtAddCallback(next, XtNcallback, list[indx]->func, list[indx]->data); X previous = next; X X*************** X*** 189,197 **** X if (L_Trans[indx]) { X sprintf(trans, L_Trans[indx], action, list[indx]->data); X XtOverrideTranslations(parent, XtParseTranslationTable(trans)); X } X } X- } X } /* AddMenuWindow */ X X X--- 178,193 ---- X if (L_Trans[indx]) { X sprintf(trans, L_Trans[indx], action, list[indx]->data); X XtOverrideTranslations(parent, XtParseTranslationTable(trans)); X+ } X } X+ /* X+ ** Dummy out any remaining combinations of accelerators to do nothing X+ */ X+ for (; L_Trans[indx] != NULL; indx++) { X+ sprintf(trans, L_Trans[indx], "DoNothing", ""); X+ XtOverrideTranslations(parent, XtParseTranslationTable(trans)); X+ } X } X } /* AddMenuWindow */ X X X*************** X*** 208,216 **** X menuList_p *list; /* aux. menu buttons list w/ cbacks */ X String help_text; /* pointer to button specific info */ X { X! Arg args[MAXARGS]; X Widget button; X- Cardinal n; X char trans[BUFSIZ]; X /* X ** Insert name of XtActionProc (and parameter(s)) in the translation list X--- 204,211 ---- X menuList_p *list; /* aux. menu buttons list w/ cbacks */ X String help_text; /* pointer to button specific info */ X { X! Arg args[6]; X Widget button; X char trans[BUFSIZ]; X /* X ** Insert name of XtActionProc (and parameter(s)) in the translation list X*************** X*** 217,230 **** X */ X (void) sprintf(trans, "\ X <Btn1Down>: highlight() %s(%s) unhighlight()", action, command); X- n = 0; X- XtSetArg(args[n], XtNwidth, XMail.buttonWidth); n++; X- XtSetArg(args[n], XtNheight, XMail.buttonHeight); n++; X- XtSetArg(args[n], XtNresize, False); n++; X- XtSetArg(args[n], XtNfont, TextFontStr); n++; X- XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(trans)); n++; X- button = XtCreateManagedWidget(name, commandWidgetClass, parent, args, n); X X if (help_text) X AddHelpText(button, name, help_text); X X--- 212,225 ---- X */ X (void) sprintf(trans, "\ X <Btn1Down>: highlight() %s(%s) unhighlight()", action, command); X X+ XtSetArg(args[0], XtNwidth, XMail.buttonWidth); X+ XtSetArg(args[1], XtNheight, XMail.buttonHeight); X+ XtSetArg(args[2], XtNresize, False); X+ XtSetArg(args[3], XtNfont, TextFontStr); X+ XtSetArg(args[4], XtNtranslations, XtParseTranslationTable(trans)); X+ button = XtCreateManagedWidget(name, commandWidgetClass, parent, args, 5); X+ X if (help_text) X AddHelpText(button, name, help_text); X X*************** X*** 233,239 **** X--- 228,250 ---- X } /* AddButton */ X X X+ /* X+ ** @(#)AddSetMenu() - add hook to create menu for toggling mail options X+ */ X void X+ AddSetMenu(w) X+ Widget w; X+ { X+ Widget parent = XtNameToWidget(w, "preserve"); X+ static String p_Trans = "#override \ X+ <Btn3Down>: SetCursor(True) SetMenu() MenuPopup(set_menu) SetCursor()"; X+ X+ XtOverrideTranslations(parent, XtParseTranslationTable(p_Trans)); X+ } /* AddSetMenu */ X+ X+ X+ X+ void X CreateButtons(parent) X Widget parent; X { X*************** X*** 253,260 **** X b1.label = "save"; b1.func = (XtCallbackProc) Save; b1.data = "s"; X b2.label = "Save to author"; b2.func = (XtCallbackProc) Save; b2.data = "S"; X b3.label = "write"; b3.func = (XtCallbackProc) Save; b3.data = "w"; X! b4.label = "Write to author"; b4.func = (XtCallbackProc) Save; b4.data = "W"; X! list[0] = &b1; list[1] = &b2; list[2] = &b3; list[3] = &b4; list[4] = NULL; X AddButton(parent, "save", "DoSave", "s", list, Save_Help_Text); X X CreateFolderButton(parent); X--- 264,270 ---- X b1.label = "save"; b1.func = (XtCallbackProc) Save; b1.data = "s"; X b2.label = "Save to author"; b2.func = (XtCallbackProc) Save; b2.data = "S"; X b3.label = "write"; b3.func = (XtCallbackProc) Save; b3.data = "w"; X! list[0] = &b1; list[1] = &b2; list[2] = &b3; list[3] = NULL; X AddButton(parent, "save", "DoSave", "s", list, Save_Help_Text); X X CreateFolderButton(parent); X*************** X*** 264,275 **** X list[0] = &b1; list[1] = &b2; list[2] = NULL; X AddButton(parent, "copy", "DoSave", "c", list, Copy_Help_Text); X X! b1.label = "hold"; b1.func = (XtCallbackProc) DoWith; b1.data = "hold"; X! list[0] = &b1; list[1] = NULL; X! AddButton(parent, "hold", "DoSelected", "hold", list, Hold_Help_Text); X X b1.label = "delete"; b1.func = (XtCallbackProc) DoWith; b1.data = "d"; X! b2.label = "undelete"; b2.func = (XtCallbackProc) DoIt; b2.data = "u"; X list[0] = &b1; list[1] = &b2; list[2] = NULL; X AddButton(parent, "delete", "DoSelected", "d", list, Delete_Help_Text); X X--- 274,283 ---- X list[0] = &b1; list[1] = &b2; list[2] = NULL; X AddButton(parent, "copy", "DoSave", "c", list, Copy_Help_Text); X X! AddButton(parent, "preserve", "DoSelected", "preserve", NULL, Hold_Help_Text); X X b1.label = "delete"; b1.func = (XtCallbackProc) DoWith; b1.data = "d"; X! b2.label = "undelete"; b2.func = (XtCallbackProc) DoWith; b2.data = "u"; X list[0] = &b1; list[1] = &b2; list[2] = NULL; X AddButton(parent, "delete", "DoSelected", "d", list, Delete_Help_Text); X X*************** X*** 308,313 **** X--- 316,323 ---- X X CreateFileWindow(parent); X X+ AddSetMenu(parent); /* add a menu for toggling mail options */ X+ X } /* CreateButtons */ X X X*************** X*** 318,325 **** X CreateCommandPanel(parent) X Widget parent; X { X! Arg args[10]; X! Cardinal n; X Widget cw; X X static String w_Trans = "\ X--- 328,335 ---- X CreateCommandPanel(parent) X Widget parent; X { X! Arg args[8]; X! Cardinal n; X Widget cw; X X static String w_Trans = "\ X*************** X*** 327,343 **** X <Btn2Down>: DoNothing()\n\ X <Btn3Down>: DoNothing()"; X X! n = 0; X! XtSetArg(args[n], XtNhSpace, XMail.commandHSpace); n++; X! XtSetArg(args[n], XtNvSpace, XMail.commandVSpace); n++; X! XtSetArg(args[n], XtNallowResize, (XtArgVal) False); n++; X! XtSetArg(args[n], XtNmax, XMail.commandMinHeight); n++; X! XtSetArg(args[n], XtNmin, XMail.commandMinHeight); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(w_Trans)); n++; X! #ifndef X11R3 X XtSetArg(args[n], XtNshowGrip, (XtArgVal) False); n++; X #endif X cw = XtCreateManagedWidget("commandPanel", boxWidgetClass, parent, args, n); X CreateButtons(cw); X } /* CreateCommandPanel */ X--- 337,355 ---- X <Btn2Down>: DoNothing()\n\ X <Btn3Down>: DoNothing()"; X X! XtSetArg(args[0], XtNhSpace, XMail.commandHSpace); X! XtSetArg(args[1], XtNvSpace, XMail.commandVSpace); X! XtSetArg(args[2], XtNallowResize, (XtArgVal) False); X! XtSetArg(args[3], XtNmax, XMail.commandMinHeight); X! XtSetArg(args[4], XtNmin, XMail.commandMinHeight); X! XtSetArg(args[5], XtNfont, TextFontStr); X! XtSetArg(args[6], XtNtranslations, XtParseTranslationTable(w_Trans)); X! n = 7; X! X! #if XtSpecificationRelease >= 4 X XtSetArg(args[n], XtNshowGrip, (XtArgVal) False); n++; X #endif X+ X cw = XtCreateManagedWidget("commandPanel", boxWidgetClass, parent, args, n); X CreateButtons(cw); X } /* CreateCommandPanel */ X*************** X*** 352,383 **** X CreateFileWindow(parent) X Widget parent; X { X! Arg args[MAXARGS]; X Cardinal n; X Widget w; X X! static String trans = "#override \ X! Ctrl<Key>W: DeleteWord() beginning-of-line() end-of-line()\n\ X! Ctrl<Key>U: DeleteLine()\n\ X! Ctrl<Key>H: InsertSpace() delete-previous-character() beginning-of-line() end-of-line()\n\ X! <Key>Delete: InsertSpace() delete-previous-character() beginning-of-line() end-of-line()\n\ X! <Key>BackSpace: InsertSpace() delete-previous-character() beginning-of-line() end-of-line()\n\ X! <Key>Return: DoNothing()"; X X! n = 0; X! XtSetArg(args[n], XtNwidth, XMail.fileBoxWidth); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNborderWidth, 0); n++; X! XtSetArg(args[n], XtNstring, (XtArgVal) FileBuf); n++; X! XtSetArg(args[n], XtNlength, (XtArgVal) BUFSIZ); n++; X! XtSetArg(args[n], XtNeditType, (XtArgVal) XttextEdit); n++; X! XtSetArg(args[n], XtNtextOptions, wordBreak); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(trans)); n++; X! #ifndef X11R3 X XtSetArg(args[n], XtNautoFill, True); n++; X #endif X X w = XtCreateManagedWidget("fileWindow",asciiStringWidgetClass,parent,args,n); X writeText(w, "File: ", 0); X X AddHelpText(w, "file", File_Help_Text); X--- 364,411 ---- X CreateFileWindow(parent) X Widget parent; X { X! Arg args[10]; X Cardinal n; X Widget w; X X! static String trans = " \ X! Ctrl<Key>A: beginning-of-file()\n\ X! Ctrl<Key>B: backward-character()\n\ X! Ctrl<Key>D: CheckInsert() delete-next-character()\n\ X! Ctrl<Key>E: end-of-file()\n\ X! Ctrl<Key>F: forward-character()\n\ X! Ctrl<Key>H: DeleteChar()\n\ X! Ctrl<Key>J: DoNothing()\n\ X! Ctrl<Key>M: DoNothing()\n\ X! Ctrl<Key>U: DeleteLine()\n\ X! Ctrl<Key>W: DeleteWord()\n\ X! Meta<Key>F: forward-word()\n\ X! Meta<Key>B: backward-word()\n\ X! Meta<Key>d: CheckInsert() delete-next-word()\n\ X! <Key>Right: forward-character()\n\ X! <Key>Left: backward-character()\n\ X! <Key>Delete: DeleteChar()\n\ X! <Key>BackSpace: DeleteChar()\n\ X! <Key>Linefeed: DoNothing()\n\ X! <Key>Return: DoNothing()\n\ X! <Key>: CheckInsert() insert-char()"; X X! XtSetArg(args[0], XtNwidth, XMail.fileBoxWidth); X! XtSetArg(args[1], XtNfont, TextFontStr); X! XtSetArg(args[2], XtNborderWidth, 0); X! XtSetArg(args[3], XtNstring, (XtArgVal) FileBuf); X! XtSetArg(args[4], XtNlength, (XtArgVal) BUFSIZ); X! XtSetArg(args[5], XtNeditType, (XtArgVal) XttextEdit); X! XtSetArg(args[6], XtNtextOptions, wordBreak); X! XtSetArg(args[7], XtNtranslations, XtParseTranslationTable(trans)); X! n = 8; X! X! #if XtSpecificationRelease >= 4 X XtSetArg(args[n], XtNautoFill, True); n++; X #endif X X w = XtCreateManagedWidget("fileWindow",asciiStringWidgetClass,parent,args,n); X+ X writeText(w, "File: ", 0); X X AddHelpText(w, "file", File_Help_Text); X*************** X*** 391,415 **** X CreateFolderButton(parent) X Widget parent; X { X! Arg args[MAXARGS]; X Widget button; /* button which pops up a menu when pressed */ X- Cardinal n; X X static String b_Trans = "\ X <Btn1Down>: highlight() Folder() unhighlight() \n\ X <Btn3Down>: SetCursor(True) SetFolders() MenuPopup(popupList) SetCursor()"; X- X- X /* X ** create the command button and add popup menu translations and callback X */ X! n = 0; X! XtSetArg(args[n], XtNwidth, XMail.buttonWidth); n++; X! XtSetArg(args[n], XtNheight, XMail.buttonHeight); n++; X! XtSetArg(args[n], XtNresize, False); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(b_Trans)); n++; X! button = XtCreateManagedWidget("Folder", commandWidgetClass, parent, args, n); X X AddHelpText(button, "folder", Folder_Help_Text); X } /* CreateFolderButton */ X--- 419,439 ---- X CreateFolderButton(parent) X Widget parent; X { X! Arg args[6]; X Widget button; /* button which pops up a menu when pressed */ X X static String b_Trans = "\ X <Btn1Down>: highlight() Folder() unhighlight() \n\ X <Btn3Down>: SetCursor(True) SetFolders() MenuPopup(popupList) SetCursor()"; X /* X ** create the command button and add popup menu translations and callback X */ X! XtSetArg(args[0], XtNwidth, XMail.buttonWidth); X! XtSetArg(args[1], XtNheight, XMail.buttonHeight); X! XtSetArg(args[2], XtNresize, False); X! XtSetArg(args[3], XtNfont, TextFontStr); X! XtSetArg(args[4], XtNtranslations, XtParseTranslationTable(b_Trans)); X! button = XtCreateManagedWidget("Folder", commandWidgetClass, parent, args, 5); X X AddHelpText(button, "folder", Folder_Help_Text); X } /* CreateFolderButton */ X*************** X*** 422,443 **** X CreateHelpWindow(parent) X Widget parent; X { X! Arg args[MAXARGS]; X! Cardinal n; X! Widget w; X X X! n = 0; X! XtSetArg(args[n], XtNborderWidth, 3); n++; X! w = XtCreatePopupShell("help", overrideShellWidgetClass, parent, args, n); X X! n = 0; X! XtSetArg(args[n], XtNwidth, XMail.helpWidth); n++; X! XtSetArg(args[n], XtNheight, XMail.helpHeight); n++; X! XtSetArg(args[n], XtNfont, HelpFontStr); n++; X! XtSetArg(args[n], XtNeditType, (XtArgVal) XttextRead); n++; X! XtSetArg(args[n], XtNtextOptions, wordBreak); n++; X! XtCreateManagedWidget("helpWindow", asciiStringWidgetClass, w, args, n); X } /* CreateHelpWindow */ X X X--- 446,464 ---- X CreateHelpWindow(parent) X Widget parent; X { X! Arg args[6]; X! Widget w; X X X! XtSetArg(args[0], XtNborderWidth, 3); X! w = XtCreatePopupShell("help", overrideShellWidgetClass, parent, args, 1); X X! XtSetArg(args[0], XtNwidth, XMail.helpWidth); X! XtSetArg(args[1], XtNheight, XMail.helpHeight); X! XtSetArg(args[2], XtNfont, HelpFontStr); X! XtSetArg(args[3], XtNeditType, (XtArgVal) XttextRead); X! XtSetArg(args[4], XtNtextOptions, wordBreak); X! XtCreateManagedWidget("helpWindow", asciiStringWidgetClass, w, args, 5); X } /* CreateHelpWindow */ X X X*************** X*** 448,456 **** X CreateIndexWindow(parent) X Widget parent; X { X! Arg args[MAXARGS]; X! Cardinal n; X! Widget w; X X static String translations = X "<Key>: DoNothing() \n\ X--- 469,476 ---- X CreateIndexWindow(parent) X Widget parent; X { X! Arg args[8]; X! Widget w; X X static String translations = X "<Key>: DoNothing() \n\ X*************** X*** 458,474 **** X <Btn3Down>: select-start() SetSelect() \n\ X <Btn3Up>: DoSelected(p)"; X X! n = 0; X! XtSetArg(args[n], XtNheight, XMail.indexHeight); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNstring, (XtArgVal) IndexBuf); n++; X! XtSetArg(args[n], XtNlength, (XtArgVal) INDEXSIZE); n++; X! XtSetArg(args[n], XtNeditType, (XtArgVal) XttextEdit); n++; X! XtSetArg(args[n], XtNtextOptions, scrollVertical | wordBreak); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(translations)); X! n++; X! w = XtCreateManagedWidget("indexWindow",asciiStringWidgetClass,parent,args,n); X X AddHelpText(w, "index", Index_Help_Text); X } /* CreateIndexWindow */ X X--- 478,493 ---- X <Btn3Down>: select-start() SetSelect() \n\ X <Btn3Up>: DoSelected(p)"; X X! XtSetArg(args[0], XtNheight, XMail.indexHeight); X! XtSetArg(args[1], XtNfont, TextFontStr); X! XtSetArg(args[2], XtNstring, (XtArgVal) IndexBuf); X! XtSetArg(args[3], XtNlength, (XtArgVal) INDEXSIZE); X! XtSetArg(args[4], XtNeditType, (XtArgVal) XttextEdit); X! XtSetArg(args[5], XtNtextOptions, scrollVertical | wordBreak); X! XtSetArg(args[6], XtNtranslations, XtParseTranslationTable(translations)); X X+ w = XtCreateManagedWidget("indexWindow",asciiStringWidgetClass,parent,args,7); X+ X AddHelpText(w, "index", Index_Help_Text); X } /* CreateIndexWindow */ X X*************** X*** 480,486 **** X CreateStatusWindow(parent) X Widget parent; X { X! Arg args[MAXARGS]; X Cardinal n; X Widget w; X X--- 499,505 ---- X CreateStatusWindow(parent) X Widget parent; X { X! Arg args[10]; X Cardinal n; X Widget w; X X*************** X*** 488,506 **** X <Btn1Down>: DoNothing()\n\ X <Btn3Down>: DoNothing()"; X X! n = 0; X! XtSetArg(args[n], XtNwidth, (XtArgVal) XMail.shellWidth); n++; X! XtSetArg(args[n], XtNallowResize, (XtArgVal) False); n++; X! XtSetArg(args[n], XtNmax, (XtArgVal) XMail.buttonHeight); n++; X! XtSetArg(args[n], XtNmin, (XtArgVal) XMail.buttonHeight); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNjustify, (XtArgVal) XtJustifyCenter); n++; X! XtSetArg(args[n], XtNlabel, (XtArgVal) "Establishing connections"); n++; X! XtSetArg(args[n], XtNresize, (XtArgVal) False); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(w_Trans)); n++; X! #ifndef X11R3 X XtSetArg(args[n], XtNshowGrip, (XtArgVal) False); n++; X #endif X w = XtCreateManagedWidget("statusWindow", labelWidgetClass, parent, args, n); X X AddHelpText(w, "status", Status_Help_Text); X--- 507,527 ---- X <Btn1Down>: DoNothing()\n\ X <Btn3Down>: DoNothing()"; X X! XtSetArg(args[0], XtNwidth, (XtArgVal) XMail.shellWidth); X! XtSetArg(args[1], XtNallowResize, (XtArgVal) False); X! XtSetArg(args[2], XtNmax, (XtArgVal) XMail.buttonHeight); X! XtSetArg(args[3], XtNmin, (XtArgVal) XMail.buttonHeight); X! XtSetArg(args[4], XtNfont, TextFontStr); X! XtSetArg(args[5], XtNjustify, (XtArgVal) XtJustifyCenter); X! XtSetArg(args[6], XtNlabel, (XtArgVal) "Establishing connections"); X! XtSetArg(args[7], XtNresize, (XtArgVal) False); X! XtSetArg(args[8], XtNtranslations, XtParseTranslationTable(w_Trans)); X! n = 9; X! X! #if XtSpecificationRelease >= 4 X XtSetArg(args[n], XtNshowGrip, (XtArgVal) False); n++; X #endif X+ X w = XtCreateManagedWidget("statusWindow", labelWidgetClass, parent, args, n); X X AddHelpText(w, "status", Status_Help_Text); X*************** X*** 514,534 **** X CreateSubWindows(parent) X Widget parent; X { X! Arg args[MAXARGS]; X! Cardinal k, n; X! Widget icon, mb, vpane; X /* X ** Special added actions X */ X static XtActionsRec actionTable[] = { X! {"DeleteWord", (XtActionProc) DeleteWord}, X {"DeleteLine", (XtActionProc) DeleteLine}, X {"Iconify", (XtActionProc) Iconify}, X- {"InsertSpace", (XtActionProc) InsertSpace}, X {"Folder", (XtActionProc) Folder}, X {"SetPopup", (XtActionProc) SetPopup}, X {"SetFolders", (XtActionProc) SetFolders}, X {"SetHelp", (XtActionProc) SetHelp}, X {"DoNothing", (XtActionProc) DoNothing}, X {"DoSelected", (XtActionProc) DoSelected}, X {"SetAliases", (XtActionProc) SetAliases}, X--- 535,557 ---- X CreateSubWindows(parent) X Widget parent; X { X! Arg args[4]; X! Widget icon, mb, topbox; X! int x, y, width, height; X /* X ** Special added actions X */ X static XtActionsRec actionTable[] = { X! {"CheckInsert", (XtActionProc) CheckInsert}, X! {"DeleteChar", (XtActionProc) DeleteChar}, X {"DeleteLine", (XtActionProc) DeleteLine}, X+ {"DeleteWord", (XtActionProc) DeleteWord}, X {"Iconify", (XtActionProc) Iconify}, X {"Folder", (XtActionProc) Folder}, X {"SetPopup", (XtActionProc) SetPopup}, X {"SetFolders", (XtActionProc) SetFolders}, X {"SetHelp", (XtActionProc) SetHelp}, X+ {"SetMenu", (XtActionProc) SetMenu}, X {"DoNothing", (XtActionProc) DoNothing}, X {"DoSelected", (XtActionProc) DoSelected}, X {"SetAliases", (XtActionProc) SetAliases}, X*************** X*** 549,578 **** X X XtAddActions(actionTable, XtNumber(actionTable)); X X! n = 0; X! XtSetArg(args[n], XtNinput, (XtArgVal) True); n++; X! XtSetArg(args[n], XtNwidth, (XtArgVal) XMail.shellWidth); n++; X! XtSetArg(args[n], XtNgripIndent, (XtArgVal) 0); n++; X! XtSetArg(args[n], XtNskipAdjust, (XtArgVal) True); n++; X X! vpane = XtCreateManagedWidget("vpane", vPanedWidgetClass, parent, args, n); X X! CreateHelpWindow(vpane); X! CreateTitleBar(vpane); X! CreateIndexWindow(vpane); X! CreateStatusWindow(vpane); X! CreateCommandPanel(vpane); X! CreateTextWindow(vpane); X /* X ** Create an icon window for the mailwatchWidget X */ X! n = 0; X! XtSetArg(args[n], XtNwidth, (XtArgVal) mail_width); n++; X! XtSetArg(args[n], XtNheight, (XtArgVal) mail_height); n++; X! icon = XtCreateWidget("icon", applicationShellWidgetClass, toplevel, args, n); X mb = XtCreateManagedWidget("mailbox", mailwatchWidgetClass, icon, NULL, 0); X XtAddCallback(mb, XtNcallback, SetNewmail, NULL); X- X } /* CreateSubWindows */ X X X--- 572,604 ---- X X XtAddActions(actionTable, XtNumber(actionTable)); X X! XtSetArg(args[0], XtNinput, (XtArgVal) True); X! XtSetArg(args[1], XtNwidth, (XtArgVal) XMail.shellWidth); X! XtSetArg(args[2], XtNgripIndent, (XtArgVal) 0); X! XtSetArg(args[3], XtNskipAdjust, (XtArgVal) True); X X! topbox = XtCreateManagedWidget("topBox", vPanedWidgetClass, parent, args, 4); X X! CreateHelpWindow(topbox); X! CreateTitleBar(topbox); X! CreateIndexWindow(topbox); X! CreateStatusWindow(topbox); X! CreateCommandPanel(topbox); X! CreateTextWindow(topbox); X /* X ** Create an icon window for the mailwatchWidget X */ X! x = y = 0; X! if (XMail.iconGeometry) X! XParseGeometry(XMail.iconGeometry, &x, &y, &width, &height); X! X! XtSetArg(args[0], XtNwidth, (XtArgVal) mail_width); X! XtSetArg(args[1], XtNheight, (XtArgVal) mail_height); X! XtSetArg(args[2], XtNx, (XtArgVal) x); X! XtSetArg(args[3], XtNy, (XtArgVal) y); X! icon = XtCreateWidget("icon", applicationShellWidgetClass, toplevel, args, 4); X mb = XtCreateManagedWidget("mailbox", mailwatchWidgetClass, icon, NULL, 0); X XtAddCallback(mb, XtNcallback, SetNewmail, NULL); X } /* CreateSubWindows */ X X X*************** X*** 583,599 **** X CreateTextWindow(parent) X Widget parent; X { X! Arg args[MAXARGS]; X! Cardinal n; X Widget tw; X X X! n = 0; X! XtSetArg(args[n], XtNmin, XMail.textMinHeight); n++; X! XtSetArg(args[n], XtNheight, XMail.textHeight); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNtextOptions, scrollVertical | wordBreak); n++; X! tw = XtCreateManagedWidget("textWindow",asciiStringWidgetClass,parent,args,n); X X AddHelpText(tw, "text", Text_Help_Text); X } /* CreateTextWindow */ X--- 609,623 ---- X CreateTextWindow(parent) X Widget parent; X { X! Arg args[4]; X Widget tw; X X X! XtSetArg(args[0], XtNmin, XMail.textMinHeight); X! XtSetArg(args[1], XtNheight, XMail.textHeight); X! XtSetArg(args[2], XtNfont, TextFontStr); X! XtSetArg(args[3], XtNtextOptions, scrollVertical | wordBreak); X! tw = XtCreateManagedWidget("textWindow",asciiStringWidgetClass,parent,args,4); X X AddHelpText(tw, "text", Text_Help_Text); X } /* CreateTextWindow */ X*************** X*** 607,616 **** X CreateTitleBar(parent) X Widget parent; X { X! Arg args[MAXARGS]; X Cardinal n; X Pixmap logo; X Widget form, lg, tb; X X static String w_Trans = "\ X <Btn1Down>: DoNothing()\n\ X--- 631,641 ---- X CreateTitleBar(parent) X Widget parent; X { X! Arg args[8]; X Cardinal n; X Pixmap logo; X Widget form, lg, tb; X+ char buf[20]; X X static String w_Trans = "\ X <Btn1Down>: DoNothing()\n\ X*************** X*** 622,659 **** X <Btn2Down>: Iconify()\n\ X <Btn3Down>: Iconify()"; X X! n = 0; X! XtSetArg(args[n], XtNdefaultDistance, 1); n++; X! XtSetArg(args[n], XtNallowResize, (XtArgVal) False); n++; X! XtSetArg(args[n], XtNmax, (XtArgVal) XMail.buttonHeight); n++; X! XtSetArg(args[n], XtNmin, (XtArgVal) XMail.buttonHeight); n++; X! #ifndef X11R3 X XtSetArg(args[n], XtNshowGrip, (XtArgVal) False); n++; X #endif X form = XtCreateManagedWidget("titleBar", formWidgetClass, parent, args, n); X X logo = XCreateBitmapFromData(XtDisplay(toplevel), XtScreen(toplevel)->root, X national_bits, national_width, national_height); X- n = 0; X- XtSetArg(args[n], XtNborderWidth, 0); n++; X- XtSetArg(args[n], XtNinternalWidth, 0); n++; X- XtSetArg(args[n], XtNwidth, national_width); n++; X- XtSetArg(args[n], XtNheight, (XtArgVal) XMail.buttonHeight); n++; X- XtSetArg(args[n], XtNbitmap, (XtArgVal) logo); n++; X- XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(l_Trans)); n++; X- lg = XtCreateManagedWidget("logo", commandWidgetClass, form, args, n); X X! n = 0; X! XtSetArg(args[n], XtNborderWidth, 0); n++; X! XtSetArg(args[n], XtNwidth, XMail.shellWidth - national_width - 2); n++; X! XtSetArg(args[n], XtNheight, (XtArgVal) XMail.buttonHeight); n++; X! XtSetArg(args[n], XtNlabel, (XtArgVal) TITLE); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNjustify, (XtArgVal) XtJustifyLeft); n++; X! XtSetArg(args[n], XtNfromHoriz, lg); n++; X! XtSetArg(args[n], XtNtranslations, XtParseTranslationTable(w_Trans)); n++; X! tb = XtCreateManagedWidget("titleBar", labelWidgetClass, form, args, n); X X AddHelpText(tb, "title", Title_Help_Text); X } /* CreateTitleBar */ X X--- 647,686 ---- X <Btn2Down>: Iconify()\n\ X <Btn3Down>: Iconify()"; X X! XtSetArg(args[0], XtNdefaultDistance, 1); X! XtSetArg(args[1], XtNallowResize, (XtArgVal) False); X! XtSetArg(args[2], XtNmax, (XtArgVal) XMail.buttonHeight); X! XtSetArg(args[3], XtNmin, (XtArgVal) XMail.buttonHeight); X! n = 4; X! X! #if XtSpecificationRelease >= 4 X XtSetArg(args[n], XtNshowGrip, (XtArgVal) False); n++; X #endif X+ X form = XtCreateManagedWidget("titleBar", formWidgetClass, parent, args, n); X X logo = XCreateBitmapFromData(XtDisplay(toplevel), XtScreen(toplevel)->root, X national_bits, national_width, national_height); X X! XtSetArg(args[0], XtNborderWidth, 0); X! XtSetArg(args[1], XtNheight, (XtArgVal) XMail.buttonHeight); X X+ XtSetArg(args[2], XtNwidth, national_width); X+ XtSetArg(args[3], XtNinternalWidth, 0); X+ XtSetArg(args[4], XtNbitmap, (XtArgVal) logo); X+ XtSetArg(args[5], XtNtranslations, XtParseTranslationTable(l_Trans)); X+ lg = XtCreateManagedWidget("logo", commandWidgetClass, form, args, 6); X+ X+ sprintf(buf, "%s%d", TITLE, PATCHLEVEL); X+ X+ XtSetArg(args[2], XtNwidth, XMail.shellWidth - national_width - 2); X+ XtSetArg(args[3], XtNlabel, (XtArgVal) buf); X+ XtSetArg(args[4], XtNfont, TextFontStr); X+ XtSetArg(args[5], XtNjustify, (XtArgVal) XtJustifyLeft); X+ XtSetArg(args[6], XtNfromHoriz, lg); X+ XtSetArg(args[7], XtNtranslations, XtParseTranslationTable(w_Trans)); X+ tb = XtCreateManagedWidget("titleBar", labelWidgetClass, form, args, 8); X+ X AddHelpText(tb, "title", Title_Help_Text); X } /* CreateTitleBar */ X X*************** X*** 670,676 **** X String buf; X Cardinal len; X { X! Arg args[MAXARGS]; X Cardinal n; X X static String trans = "#override \ X--- 697,703 ---- X String buf; X Cardinal len; X { X! Arg args[12]; X Cardinal n; X X static String trans = "#override \ X*************** X*** 693,719 **** X <Key>Return: NextField()"; X X n = XMail.shellWidth - 106; /* - (scn + 2*(internal width + def.dist.)) */ X! n -= TEXTWIDTH * 9; /* minus the width of the label text */ X XtSetArg(args[0], XtNwidth, n); X X! n = 1; X! XtSetArg(args[n], XtNinput, True); n++; X! XtSetArg(args[n], XtNheight, TEXTHEIGHT); n++; X! XtSetArg(args[n], XtNvertDistance, (TEXTHEIGHT * 3.0) / 5.0); n++; X! XtSetArg(args[n], XtNfont, TextFontStr); n++; X! XtSetArg(args[n], XtNborderWidth, 0); n++; X! XtSetArg(args[n], XtNstring, buf); n++; X! XtSetArg(args[n], XtNlength, len); n++; X! XtSetArg(args[n], XtNeditType, (XtArgVal) XttextEdit); n++; X! XtSetArg(args[n], XtNtextOptions, wordBreak); n++; X X! if (strcmp(name, "To") == 0 || strcmp(name, "Cc") == 0) { X! XtSetArg(args[n],XtNtranslations,XtParseTranslationTable(b_trans)); n++; X } else { X! XtSetArg(args[n],XtNtranslations,XtParseTranslationTable(trans)); n++; X } X X! #ifndef X11R3 X XtSetArg(args[n], XtNautoFill, True); n++; X #endif X X--- 720,745 ---- X <Key>Return: NextField()"; X X n = XMail.shellWidth - 106; /* - (scn + 2*(internal width + def.dist.)) */ X! n -= TEXTWIDTH * 9 - 6; /* minus label text width less fudge factor */ X XtSetArg(args[0], XtNwidth, n); X X! XtSetArg(args[1], XtNinput, True); X! XtSetArg(args[2], XtNheight, XMail.buttonHeight); X! XtSetArg(args[3], XtNfont, TextFontStr); X! XtSetArg(args[4], XtNborderWidth, 0); X! XtSetArg(args[5], XtNstring, buf); X! XtSetArg(args[6], XtNlength, len); X! XtSetArg(args[7], XtNeditType, (XtArgVal) XttextEdit); X! XtSetArg(args[8], XtNtextOptions, wordBreak); X X! if (strcmp(name, "Subject") == 0) { X! XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(trans)); X } else { X! XtSetArg(args[9], XtNtranslations, XtParseTranslationTable(b_trans)); X } X+ n = 10; X X! #if XtSpecificationRelease >= 4 X XtSetArg(args[n], XtNautoFill, True); n++; X #endif X X*** ../v1.0/xmail.c Sun May 27 21:05:58 1990 X--- xmail.c Sun May 27 21:11:39 1990 X*************** X*** 47,57 **** X X #include "global.h" X #include "Mailwatch.h" /* use as icon and watch for newmail */ X! #ifdef X11R3 X! #include <X11/CommandP.h> X! #else X #include <X11/Xaw/CommandP.h> X #endif X #include "icon.nomail" /* default icon pixmap source */ X #include <X11/cursorfont.h> /* use watch cursor for busy notify */ X #include <X11/bitmaps/cross_weave> /* background use in Newmail notify */ X--- 47,59 ---- X X #include "global.h" X #include "Mailwatch.h" /* use as icon and watch for newmail */ X! X! #if XtSpecificationRelease >= 4 X #include <X11/Xaw/CommandP.h> X+ #else X+ #include <X11/CommandP.h> X #endif X+ X #include "icon.nomail" /* default icon pixmap source */ X #include <X11/cursorfont.h> /* use watch cursor for busy notify */ X #include <X11/bitmaps/cross_weave> /* background use in Newmail notify */ X*************** X*** 59,96 **** X #define Offset(field) (XtOffset(XmailResources *, field)) X X static char what[] = X! "@(#)xmail.c 1.0 90/03/19 Copyright 1989 National Semiconductor Corp."; X X static XtResource resrcs[] = { X {XtNfont, XtCFont, XtRString, sizeof(char *), X Offset(textFont), XtRString, (caddr_t) NULL}, X- {"bellRing", "BellRing", XtRBoolean, sizeof(Boolean), X- Offset(bellRing), XtRImmediate, (caddr_t) True}, X {"helpFont", "HelpFont", XtRString, sizeof(char *), X Offset(helpFont), XtRString, (caddr_t) NULL}, X! {"mailopt_i", "Mailopt_i", XtRBoolean, sizeof(Boolean), X! Offset(mailopt_i), XtRImmediate, (caddr_t) False}, X {"mailopt_n", "Mailopt_n", XtRBoolean, sizeof(Boolean), X Offset(mailopt_n), XtRImmediate, (caddr_t) False}, X {"mailopt_U", "Mailopt_U", XtRBoolean, sizeof(Boolean), X Offset(mailopt_U), XtRImmediate, (caddr_t) False}, X- {"MFileName", "MFileName", XtRString, sizeof(char *), X- Offset(MFileName), XtRImmediate, (caddr_t) NULL}, X- {"SubjectStr", "SubjectStr", XtRString, sizeof(char *), X- Offset(SubjectStr), XtRImmediate, (caddr_t) NULL}, X {"Show_Last", "Show_Last", XtRBoolean, sizeof(Boolean), X Offset(Show_Last), XtRImmediate, (caddr_t) True}, X }; X X static XrmOptionDescRec Opts[] = { X! {"-nb", "*bellRing", XrmoptionNoArg, (caddr_t) "False"}, X! {"-helpfont", "*helpFont", XrmoptionSepArg, (caddr_t) NULL}, X! {"-i", "*mailopt_i", XrmoptionNoArg, (caddr_t) "True"}, X! {"-n", "*mailopt_n", XrmoptionNoArg, (caddr_t) "True"}, X! {"-U", "*mailopt_U", XrmoptionNoArg, (caddr_t) "True"}, X! {"-f", "*MFileName", XrmoptionSepArg, (caddr_t) NULL}, X! {"-s", "*SubjectStr", XrmoptionSepArg, (caddr_t) NULL}, X! {"-ls", "*Show_Last", XrmoptionNoArg, (caddr_t) "False"}, X }; X X char *IndexBuf; /* buffer for index widget */ X--- 61,98 ---- X #define Offset(field) (XtOffset(XmailResources *, field)) X X static char what[] = X! "@(#)xmail.c 1.1 90/05/29 Copyright 1989 National Semiconductor Corp."; X X static XtResource resrcs[] = { X {XtNfont, XtCFont, XtRString, sizeof(char *), X Offset(textFont), XtRString, (caddr_t) NULL}, X {"helpFont", "HelpFont", XtRString, sizeof(char *), X Offset(helpFont), XtRString, (caddr_t) NULL}, X! {"iconGeometry", "IconGeometry", XtRString, sizeof(char *), X! Offset(iconGeometry), XtRString, (caddr_t) NULL}, X! {"MFileName", "MFileName", XtRString, sizeof(char *), X! Offset(MFileName), XtRString, (caddr_t) NULL}, X! {"iconic", "Iconic", XtRBoolean, sizeof(Boolean), X! Offset(iconic), XtRImmediate, (caddr_t) False}, X! {"bellRing", "BellRing", XtRBoolean, sizeof(Boolean), X! Offset(bellRing), XtRImmediate, (caddr_t) True}, X {"mailopt_n", "Mailopt_n", XtRBoolean, sizeof(Boolean), X Offset(mailopt_n), XtRImmediate, (caddr_t) False}, X {"mailopt_U", "Mailopt_U", XtRBoolean, sizeof(Boolean), X Offset(mailopt_U), XtRImmediate, (caddr_t) False}, X {"Show_Last", "Show_Last", XtRBoolean, sizeof(Boolean), X Offset(Show_Last), XtRImmediate, (caddr_t) True}, X }; X X static XrmOptionDescRec Opts[] = { X! {"-helpfont", "*helpFont", XrmoptionSepArg, (caddr_t) NULL}, X! {"-iconGeometry", "*iconGeometry", XrmoptionSepArg, (caddr_t) NULL}, X! {"-iconic", "*iconic", XrmoptionNoArg, (caddr_t) "True"}, X! {"-f", "*MFileName", XrmoptionSepArg, (caddr_t) NULL}, X! {"-nb", "*bellRing", XrmoptionNoArg, (caddr_t) "False"}, X! {"-n", "*mailopt_n", XrmoptionNoArg, (caddr_t) "True"}, X! {"-U", "*mailopt_U", XrmoptionNoArg, (caddr_t) "True"}, X! {"-ls", "*Show_Last", XrmoptionNoArg, (caddr_t) "False"}, X }; X X char *IndexBuf; /* buffer for index widget */ X*************** X*** 100,108 **** X char SubjBuf[BUFSIZ]; /* message subject */ X char InReply[BUFSIZ]; /* reply reference string */ X char CcBuf[BUFSIZ]; /* message Cc list */ X char tmpName[BUFSIZ]; /* message temporary filename */ X! char MailPrompt[20]; /* mail program prompt string */ X! char *HelpNames[23]; /* array of help window names */ X char **mailargv; /* array passed to mail child */ X X int mailargc; /* counter passed to mail child */ X--- 102,111 ---- X char SubjBuf[BUFSIZ]; /* message subject */ X char InReply[BUFSIZ]; /* reply reference string */ X char CcBuf[BUFSIZ]; /* message Cc list */ X+ char BccBuf[BUFSIZ]; /* message Bcc list */ X char tmpName[BUFSIZ]; /* message temporary filename */ X! char *MailPrompt; /* mail program prompt string */ X! char *HelpNames[24]; /* array of help window names */ X char **mailargv; /* array passed to mail child */ X X int mailargc; /* counter passed to mail child */ X*************** X*** 116,122 **** X Widget toplevel; /* top level shell widget */ X X XmailResources XMail; /* application resources of xmail */ X! XtTextSource HelpStrings[22]; X XFontStruct *TextFontStr, *HelpFontStr; X X X--- 119,125 ---- X Widget toplevel; /* top level shell widget */ X X XmailResources XMail; /* application resources of xmail */ X! XtTextSource HelpStrings[23]; X XFontStruct *TextFontStr, *HelpFontStr; X X X*************** X*** 133,147 **** X char **mailargv; X int i = 0; X X! mailargv = (char **) XtMalloc (MAXARGS * sizeof(char *)); X for (i=0; i < *argc; i++) X mailargv[i] = argv[i]; X X mailargv[i++] = "-N"; /* no version or header info at start */ X- if (XMail->mailopt_i) X- mailargv[i++] = "-i"; /* ignore interrupts */ X if (XMail->mailopt_n) X! mailargv[i++] = "-n"; /* don't initialize from mailrc files */ X if (XMail->mailopt_U) X mailargv[i++] = "-U"; /* Change uucp to Internet addresses */ X if (XMail->MFileName) { X--- 136,148 ---- X char **mailargv; X int i = 0; X X! mailargv = (char **) XtMalloc (6 * sizeof(char *)); X for (i=0; i < *argc; i++) X mailargv[i] = argv[i]; X X mailargv[i++] = "-N"; /* no version or header info at start */ X if (XMail->mailopt_n) X! mailargv[i++] = "-n"; /* don't initialize from Mail.rc file */ X if (XMail->mailopt_U) X mailargv[i++] = "-U"; /* Change uucp to Internet addresses */ X if (XMail->MFileName) { X*************** X*** 148,156 **** X mailargv[i++] = "-f"; /* start from mail folder MFileName */ X mailargv[i++] = XMail->MFileName; X } X- if (XMail->SubjectStr) { /* set subject string to SubjectStr */ X- strcpy(SubjBuf, XMail->SubjectStr); X- } X mailargv[i] = NULL; X *argc = i; X return mailargv; X--- 149,154 ---- X*************** X*** 165,197 **** END_OF_FILE if test 47115 -ne `wc -c <'Patch.01d'`; then echo shar: \"'Patch.01d'\" unpacked with wrong size! fi # end of 'Patch.01d' fi echo shar: End of archive 4 \(of 5\). cp /dev/null ark4isdone MISSING="" for I in 1 2 3 4 5 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 5 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 dan ---------------------------------------------------- O'Reilly && Associates argv@sun.com / argv@ora.com Opinions expressed reflect those of the author only.