home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!island!argv
- From: argv@island.uu.net (Dan Heller)
- Newsgroups: comp.sources.x
- Subject: v04i094: xmtool, Patch1
- Message-ID: <1003@island.uu.net>
- Date: 18 Aug 89 03:02:16 GMT
- Organization: Island Graphics, Marin County, California
- Lines: 329
- Approved: island!argv@sun.com
-
- Submitted-by: ames!mailrus!sharkey!oshima!chang (Peter Chang)
- Posting-number: Volume 4, Issue 94
- Archive-name: xmtool/patch1
- Patch-To: Volume 4, Issue 36 (June 30 1989)
-
- #!/bin/sh
- # Patch for xmtool.v2
- # To extract, remove the header and type "sh filename"
- if `test ! -s ./README.v2`
- then
- echo "writing ./README.v2"
- cat > ./README.v2 << '\End\Of\File\'
- Features added:
-
- 1. Added resource XtNinput for shell widgets.
-
- 2. Added more functions to the status command.
-
- 3. Automatically delete a message after it was saved.
-
- 4. Handle the new line character that user inserts.
-
- Send comments, flames, etc to chang@edsews.eds.com or
-
- Peter Chang
- Electronic Data Systems Corporation
- 750 Tower Drive
- Troy, MI 48007-7019
- \End\Of\File\
- else
- echo "will not overwrite ./README.v2"
- fi
- if `test ! -s ./xmtool.c.v2.patch`
- then
- echo "writing ./xmtool.c.v2.patch"
- cat > ./xmtool.c.v2.patch << '\End\Of\File\'
- *** xmtool.c.old Mon Jul 3 14:07:18 1989
- --- xmtool.c Thu Aug 17 11:12:16 1989
- ***************
- *** 248,254 ****
- XtSetArg( arg[2], XtNfromVert, viewport3);
- XtSetArg( arg[3], XtNwidth, 990);
- XtSetArg( arg[4], XtNheight, 250);
- ! XtSetArg( arg[5], XtNbackground, stringToPixel(outer,"yellow"));
- textw1 = XtCreateManagedWidget( NULL, asciiDiskWidgetClass, boxtextw1, arg, 6 );
- }
- void selectf()
- --- 248,254 ----
- XtSetArg( arg[2], XtNfromVert, viewport3);
- XtSetArg( arg[3], XtNwidth, 990);
- XtSetArg( arg[4], XtNheight, 250);
- ! XtSetArg( arg[5], XtNbackground, stringToPixel(outer,"lightBlue"));
- textw1 = XtCreateManagedWidget( NULL, asciiDiskWidgetClass, boxtextw1, arg, 6 );
- }
- void selectf()
- ***************
- *** 879,884 ****
- --- 879,885 ----
- int i, j, fd, fp, len, num;
- char msg[80];
- char text[400], dirname[40];
- + delBlank();
- bzero(dirname, 40);
- parsefname(dirname);
- if ((i = stat(dirname, &stbuf)) != 0) {
- ***************
- *** 904,909 ****
- --- 905,919 ----
- close(fd);
- return;
- }
- + /* Check to see whether it is a valid file name */
- + if ((fd = open(filename, 2)) < 0) {
- + if ((fd = creat(filename, 0700)) < 0) {
- + fprintf(stderr, "can't save to the file %s\n", filename);
- + return;
- + } else
- + close(fd);
- + } else
- + close(fd);
- if ((fp = creat(logf3, 0700)) < 0){
- perror("open problem");
- exit(-1);
- ***************
- *** 938,943 ****
- --- 948,954 ----
- }
- close(fp);
- system(savecmd);
- + delete();
- }
- void rplyf()
- {
- ***************
- *** 1101,1106 ****
- --- 1112,1118 ----
-
- XtSetArg(arg[0], XtNwidth, 400);
- XtSetArg(arg[1], XtNheight, 125);
- + XtSetArg(arg[2], XtNinput, True);
- tolevel = XtCreatePopupShell("Subject Cc",applicationShellWidgetClass,toplevel,
- arg, 2);
- XtSetArg(arg[0], XtNwidth, 400);
- ***************
- *** 1148,1153 ****
- --- 1160,1166 ----
- {
- char fname[38], fname1[45];
- int i, fd;
- + delBlank();
- bzero(mailtcmd, 80);
- if (filename[0] == '-' && filename[1] == '>'){
- bzero(fname, 38);
- ***************
- *** 1247,1253 ****
- --- 1260,1353 ----
- {
- /* status for the commands save, reply to sender and reply to all*/
- Arg arg[10];
- + char text[400];
- + int i, j, len, num, fd;
- quithlp1();
- + if ((fd = open(logf4, 1)) < 0) {
- + perror("statusMailf: open problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (lseek(fd, 0L, 2) < 0){
- + perror("statusMailf: lseek problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (write(fd, "Range and selected multiple messages information:\n", 50) != 50) {
- + perror("statusMailf: write problem");
- + exit(-1);
- + }
- + if (delete_sw) {
- + if (lseek(fd, 0L, 2) < 0){
- + perror("statusMailf: lseek problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (write(fd, "Range:\n", 6) != 6) {
- + perror("statusMailf: write problem");
- + exit(-1);
- + }
- + bzero(text, 20);
- + sprintf(text, "%d - ", count);
- + write(fd, text, strlen(text));
- + bzero(text, 20);
- + sprintf(text, "%d\n", countnew);
- + write(fd, text, strlen(text));
- + } else {
- + if (lseek(fd, 0L, 2) < 0){
- + perror("statusMailf: lseek problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (write(fd, "No range\n", 9) != 9) {
- + perror("statusMailf: write problem");
- + exit(-1);
- + }
- + }
- + if (selectflag) {
- + if (lseek(fd, 0L, 2) < 0){
- + perror("statusMailf: lseek problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (write(fd, "Selected messages:\n", 19) != 19) {
- + perror("statusMailf: write problem");
- + exit(-1);
- + }
- + num = selectflag / 15;
- + num++;
- + for (j=0; j < num; j++){
- + bzero(text, 400);
- + sprintf(text, "%d", selectList[j*15]);
- + for (i = 1; i < umailmin(15,selectflag - j*15); i++){
- + len = strlen(text);
- + sprintf(&text[len], " %d", selectList[i+j*15]);
- + }
- + len = strlen(text);
- + sprintf(&text[len], "\n");
- + write(fd, text, strlen(text));
- + }
- + } else {
- + if (lseek(fd, 0L, 2) < 0){
- + perror("statusMailf: lseek problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (write(fd, "No selected multiple messages\n", 30) != 30) {
- + perror("statusMailf: write problem");
- + exit(-1);
- + }
- + }
- + if (lseek(fd, 0L, 2) < 0){
- + perror("statusMailf: lseek problem");
- + quitOnCond();
- + exit(-1);
- + }
- + if (write(fd, "End of range and selected multiple messages information\n", 56) != 56) {
- + perror("statusMailf: write problem");
- + exit(-1);
- + }
- + close(fd);
- boxtextw1 = XtCreateManagedWidget(NULL, boxWidgetClass, viewport4, NULL, 0);
- XtSetArg( arg[0], XtNfile, logf4);
- XtSetArg( arg[1], XtNtextOptions, scrollVertical );
- ***************
- *** 1256,1262 ****
- XtSetArg( arg[4], XtNy, y2);
- XtSetArg( arg[5], XtNwidth, 990);
- XtSetArg( arg[6], XtNheight, 250);
- ! XtSetArg( arg[7], XtNbackground, stringToPixel(outer,"yellow"));
- textw1 = XtCreateManagedWidget( NULL, asciiDiskWidgetClass, boxtextw1, arg, 8 );
- }
-
- --- 1356,1362 ----
- XtSetArg( arg[4], XtNy, y2);
- XtSetArg( arg[5], XtNwidth, 990);
- XtSetArg( arg[6], XtNheight, 250);
- ! XtSetArg( arg[7], XtNbackground, stringToPixel(outer,"lightBlue"));
- textw1 = XtCreateManagedWidget( NULL, asciiDiskWidgetClass, boxtextw1, arg, 8 );
- }
-
- ***************
- *** 1388,1393 ****
- --- 1488,1494 ----
- {
- static XtCallbackRec callback[2];
- Arg arg[10];
- + int fd;
- bzero(mailutildir, 80);
- if (getenv("XMTOOLRESRC") != NULL)
- strcpy(mailutildir, getenv("XMTOOLRESRC"));
- ***************
- *** 1408,1415 ****
- perror("Can't change mode");
- exit(-1);
- }
- ! toplevel = XtInitialize( NULL, "xmtool", options, XtNumber(options),
- &argc, argv);
-
- appcontxt = XtCreateApplicationContext();
- XtSetArg( arg[0], XtNwidth, 1000 );
- --- 1509,1523 ----
- perror("Can't change mode");
- exit(-1);
- }
- ! if ((fd = creat(logf4, 0700)) < 0) {
- ! perror("createname: can't create file");
- ! exit(-1);
- ! }
- ! close(fd);
- ! toplevel = XtInitialize( argv[0], "XMtool", options, XtNumber(options),
- &argc, argv);
- + XtSetArg ( arg[0], XtNinput, True);
- + XtSetValues( toplevel, arg, 1);
-
- appcontxt = XtCreateApplicationContext();
- XtSetArg( arg[0], XtNwidth, 1000 );
- ***************
- *** 1640,1646 ****
- XtSetArg( arg[1], XtNtextOptions, scrollVertical );
- XtSetArg( arg[2], XtNheight, 250);
- XtSetArg( arg[3], XtNwidth, 990);
- ! XtSetArg( arg[4], XtNbackground, stringToPixel(outer,"yellow"));
- textw1 = XtCreateManagedWidget( NULL, asciiDiskWidgetClass, boxtextw1, arg, 5 );
- XtSetArg(arg[0], XtNx, &x2);
- XtSetArg(arg[1], XtNy, &y2);
- --- 1748,1754 ----
- XtSetArg( arg[1], XtNtextOptions, scrollVertical );
- XtSetArg( arg[2], XtNheight, 250);
- XtSetArg( arg[3], XtNwidth, 990);
- ! XtSetArg( arg[4], XtNbackground, stringToPixel(outer,"lightBlue"));
- textw1 = XtCreateManagedWidget( NULL, asciiDiskWidgetClass, boxtextw1, arg, 5 );
- XtSetArg(arg[0], XtNx, &x2);
- XtSetArg(arg[1], XtNy, &y2);
- ***************
- *** 1910,1913 ****
- --- 2018,2039 ----
- {
- if (i < j) return i;
- else return j;
- + }
- + delBlank()
- + {
- + int i;
- + char filename1[110];
- + bzero(filename1, 110);
- + strncpy(filename1, filename, 110);
- + bzero(filename, 110);
- + i = 0;
- + while ((filename1[i] != '\0') && (filename1[i] != '\n') && (i < 110)){
- + filename[i] = filename1[i];
- + i++;
- + }
- + if (i == 110){
- + fprintf(stderr, "save: index i of filename reaches 110\n");
- + quitOnCond();
- + exit(-1);
- + }
- }
- \End\Of\File\
- else
- echo "will not overwrite ./xmtool.c.v2.patch"
- fi
- if `test ! -s ./statushlp`
- then
- echo "writing ./statushlp"
- cat > ./statushlp << '\End\Of\File\'
- ---------------------------------------------------------------------------------------------
- |001|001|plus|minus|range|set counter|view|delete|save| |
- ---------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------------------
- |001|incr|select|reply to sender|reply to all|edit|create|mail to list|status|clear status|update|help|
- -------------------------------------------------------------------------------------------------------
- ^
- |---status box
-
- status: read the status file that contains possible outputs after you
- select one of the three boxes: save, reply to sender, reply to all.
- Also show the range of messages and list of selected messages.
- \End\Of\File\
- else
- echo "will not overwrite ./statushlp"
- fi
-