From: MX%"MadGoat-Bugs@MadGoat.com",MX%"plugge@BIV7.SR.FH-MANNHEIM.DE" 2-APR-1997 08:25:38.84 To: MX%"MadGoat-Bugs@MadGoat.com" CC: MX%"plugge@biv7.sr.fh-mannheim.de" Subj: enhancement for mgsd V2.0-1 [24-MAR-1997] Return-Path: Received: from alpha.wku.edu (161.6.18.4) by GOAT.PROCESS.COM (MX T4.4 Alpha) with SMTP; Wed, 2 Apr 1997 08:25:34 -0600 Received: by ALPHA.WKU.EDU (MX V4.3 Alpha) id 36; Wed, 02 Apr 1997 08:26:03 EST Sender: goathunter@MadGoat.COM Message-ID: <009B22C7.F6B8E0C6.36@ALPHA.WKU.EDU> Return-Path: X-ListName: MadGoat Software Bug Reports Warnings-To: <> Errors-To: owner-madgoat-bugs@ALPHA.WKU.EDU Sender: owner-madgoat-bugs@ALPHA.WKU.EDU Date: Wed, 02 Apr 1997 15:58:20 EST From: Michel Reply-To: MadGoat-Bugs@MadGoat.com, plugge@BIV7.SR.FH-MANNHEIM.DE To: MadGoat-Bugs@MadGoat.com CC: plugge@biv7.sr.fh-mannheim.de Subject: enhancement for mgsd V2.0-1 [24-MAR-1997] Hunter, today I hacked the sd a little. I introduced a new command (sd ..) to go up one directory level (same as in dos/Unix), and another little enhancement that I used frequently in my previous cd.com: I use often the fileview to mark a file and paste the file into the terminal winow as argument for a cd command. Example: cd BIV9$DKA300:[USER.VAX.MGSD.SOURCE]SD.RNH I modified the code so that only the directory part of the specification is used (if in an argument a `]' is found, the rest is ignored. I append the diff file to this mail. Best regards Michel ************ File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]XSD.C;47 155 char *ptr, *ptr1, *cmd; 156 unsigned long len, len1, skip_rangle; 157 ****** File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]SD.C;2 155 char *ptr, *cmd; 156 unsigned long len, skip_rangle; 157 ************ ************ File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]XSD.C;47 272 (*ptr == '.' && ptr==cmd+1 && *cmd!='.') || 273 (*ptr == '.' && ptr!=cmd+1) || 274 (*ptr == '~') || ****** File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]SD.C;2 272 (*ptr == '.') || 273 (*ptr == '~') || ************ ************ File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]XSD.C;47 277 if(*cmd == '.' && *ptr == '.' && ptr==cmd+1){ /* special case: sd.. -> go up one dir */ 278 *++cmd='^'; /* this is a bad hack, but it works... */ 279 ptr++; 280 break; 281 } 282 len++; ****** File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]SD.C;2 276 len++; ************ ************ File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]XSD.C;47 294 /* check, if the given argument contains a file name; if yes, use only 295 * the directory part. 296 */ 297 for(ptr1=cmd,len1=1;*ptr1!=']' && ptr1 Received: from alpha.wku.edu (161.6.18.4) by goat.process.com (MX V5.0) with ESMTP; Sun, 1 Mar 1998 02:06:33 -0600 Received: by ALPHA.WKU.EDU (MX V5.0) id 1; Sun, 1 Mar 1998 02:06:27 -0600 Sender: goathunter@MadGoat.com Message-ID: <009C283F.1B577D87.1@ALPHA.WKU.EDU> Return-Path: Received: from axp3.sr.fh-mannheim.de by alpha.wku.edu (MX V4.3 Alpha) with SMTP; Thu, 03 Apr 1997 02:20:26 EST Received: by biv7.sr.fh-mannheim.de (MX V4.1 AXP) id 1; Thu, 03 Apr 1997 10:19:25 EST Sender: plugge@biv7.sr.fht-mannheim.de Date: Thu, 03 Apr 1997 10:19:21 EST From: Michel To: goathunter@MadGoat.COM CC: plugge@biv7.sr.fh-mannheim.de Subject: RE: enhancement for mgsd V2.0-1 [24-MAR-1997] Hunter, > Thanks! Let me know if you have any other suggestions or if you find > any problems. yesterday I was too much in hurry, and introduced an error in the new test. The test for ..directory should be if(isalnum(*(ptr+1)) || *(ptr+1)=='_'|| *(ptr+1)=='$')break; instead of if(isalnum(*(ptr+1)) || *(ptr+1)!='_')break; (test must be for *eqality* of '_', otherwise the code fails for sd ..; also I forgot the case of a directory name starting with '$') I have added another special case: for sd ... the grouping is sd . .. to change the default to the [user] directory. The other grouping sd .. . would be without real sense, because it is the same as sd . I append the part of the diff file again to this mail. Best regards Michel ************ File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]XSD.C;71 273 (*ptr == '~') || ****** File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]SD.C;2 272 (*ptr == '.') || 273 (*ptr == '~') || ************ ************ File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]XSD.C;71 276 if(*ptr =='.'){ 277 if(ptr!=cmd+1)break; /* found directory name */ 278 /* now `Hunter's special': sd ..subdir */ 279 if(isalnum(*(ptr+1)) || *(ptr+1)=='$' || *(ptr+1)=='_')break; 280 /* special case: sd.. -> go up one dir */ 281 if(*(ptr-1)=='.'){ 282 /* first handle another special case: sd ... -> sd . .. */ 283 if(*(ptr+1)=='.')break; 284 *++cmd='^'; /* this is a bad hack, but it works... */ 285 ptr++; 286 break; 287 } 288 } 289 len++; ****** File BIV9$DKA300:[USER.VAX.MGSD.SOURCE]SD.C;2 276 len++; ************ ------------------------------------------------------------------------- Michael Plugge _ Fachhochschule Mannheim Institute for Statistics / \ Hochschule fuer Technik und Gestaltung and Image Processing / \ Email: m.plugge@fh-mannheim.de Windeckstr. 110 / \ Tel: 0621 2926208 68163 Mannheim / \ --o /\ Germany / -- - \<,- / \/\ pgp key available / \ (_)/ (_) / \/\ -------------------------------------------------------------------------