Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!seismo!lll-lcc!pyramid!hplabs!hplabsc!daemon From: daemon@hplabsc.UUCP Newsgroups: comp.mail.elm Subject: Elm installation problems Message-ID: <1745@hplabsc.HP.COM> Date: Thu, 7-May-87 10:06:01 EDT Article-I.D.: hplabsc.1745 Posted: Thu May 7 10:06:01 1987 Date-Received: Sat, 9-May-87 05:36:59 EDT Sender: daemon@hplabsc.HP.COM Reply-To: taylor@hpldat (Dave Taylor) Organization: Hewlett-Packard Laboratories, Interface Technologies Group Lines: 73 Approved: taylor@hplabs (with 'postmail') From: tektronix!sequent!sch@hplabs.HP.COM (Steve Hemminger) Subject: Elm installation problems Date: Wed, 6 May 87 8:49:39 PDT Overall, I would have to rate the portablity of Elm as medium. It tries to be portable off HP-UX/System V systems but has some basic flaws I managed to bring it up with minor tweaks. 0) Configure does not know about Sequent a) /dynix is name of kernel b) build time improves by factor of 20 by using parallel make files but others don't have that luxury. 1) Configure.sh problems on BSD systems a) bsd test does not support -c flag b) dirname command not found no dirname command (at least in UCB universe) 2) Fseek problems a) fseek (on Dynix 2.1) returns offset on sucess and -1 on error This is similar to BSD 4.3 had to change all if(fseek(...)) to if( fseek(...) == -1) 3) Terminal problems Padding problem on SO/SE need to rip padding chars (digits) off front of strings --- char *return_value_of(termcap_label) char *termcap_label; { /** This will return the string kept by termcap for the specified capability. Modified to ensure that if tgetstr returns a pointer to a transient address that we won't bomb out with a later segmentation fault (thanks to Dave@Infopro for this one!) Tweaked to remove padding sequences. **/ register char *cp; static char escape_sequence[20]; char *tgetstr(); /* Get termcap capability */ if (strlen(termcap_label) < 2) return(NULL); if (termcap_label[0] == 's' && termcap_label[1] == 'o') cp = _setinverse; else if (termcap_label[0] == 's' && termcap_label[1] == 'e') cp = _clearinverse; else if ((cp = tgetstr(termcap_label, &ptr)) == NULL) return( (char *) NULL ); while (*cp && isascii(*cp) && isdigit(*cp)) ++cp; strcpy(escape_sequence, cp); return (escape_sequence); } --- tgoto needs UP and BC (global char *) tputs needs ospeed and PC to determine padding 4) can't handle other forms of mail file locking BSD 4.3 (and Tektronix UTek) use flock to lock the mailbox. should ask about location name of lockfile... -- steve hemminger (a.k.a netbuster)