[comp.os.minix] Updating version 1.5.6 lorder

hall@cod.NOSC.MIL (Robert R. Hall) (04/13/90)

In trying to order my library for v1.5.6 here is the responce I got to:

MINIX> lorder /usr/lib/libc.a > elt
Error lorder - ___vectab defined twice in catchsig.s and vectab.s


Also there was a patch posted to the version 1.5.5 lorder to correct
the problem of having only lines of: - -
in the file elt
That patch appears not to have been encluded with the V1.5.6 updated so
here it is again.

echo x - lorder.cdif
sed '/^X/s///' > lorder.cdif << '/'
X*** lorder.c.v155	Wed Feb 21 14:27:14 1990
X--- lorder.c	Thu Apr 12 14:34:04 1990
X***************
X*** 277,283 ****
X  #define is_first_char(c)	((c) == '.' || (c) == '_')
X  #define is_second_char(c)	((c) == '_' || isalpha((c)))
X  #define is_other_char(c)	((c) == '_' || isalnum((c)))
X! 
X  int yylex()
X  {
X    int col = 0;
X--- 277,283 ----
X  #define is_first_char(c)	((c) == '.' || (c) == '_')
X  #define is_second_char(c)	((c) == '_' || isalpha((c)))
X  #define is_other_char(c)	((c) == '_' || isalnum((c)))
X! #define alt_space(c)		((c) == ',' || (c) == '#')
X  int yylex()
X  {
X    int col = 0;
X***************
X*** 285,290 ****
X--- 285,291 ----
X    int is_member = 0;
X    int in_define = 0;
X    int lastch = 0;
X+   int was_space = 1;
X    char s[MAXNAME];
X  
X  
X***************
X*** 325,330 ****
X--- 326,332 ----
X  		}
X  
X  		/* Lets do another character */
X+ 		was_space = 1;
X  		continue;
X  	}
X  
X***************
X*** 333,354 ****
X  		/* Are we seeing 'p' in col 1 */
X  		if (lastch == 'p' && col == 1) {
X  			is_member = -1;
X- 			continue;
X  		}
X  
X  		/* Are we seeing '-' that follows 'p' in col 1 */
X  		else if (lastch == '-' && is_member < 0 && col == 3) {
X  			is_member = 1;
X- 			continue;
X  		}
X  
X  		/* If we have seen 'p -' now we are reading the name
X  		 * or the first character of a global symbol */
X! 		if (is_member > 0 || is_first_char(lastch)) {
X  			s[i++] = lastch;
X  			if (is_member < 0) is_member = 0;
X  		}
X! 		continue;
X  	}
X  
X  	/* Do the second char of a name */
X--- 335,354 ----
X  		/* Are we seeing 'p' in col 1 */
X  		if (lastch == 'p' && col == 1) {
X  			is_member = -1;
X  		}
X  
X  		/* Are we seeing '-' that follows 'p' in col 1 */
X  		else if (lastch == '-' && is_member < 0 && col == 3) {
X  			is_member = 1;
X  		}
X  
X  		/* If we have seen 'p -' now we are reading the name
X  		 * or the first character of a global symbol */
X! 		else if (is_member > 0 || (is_first_char(lastch) && was_space)) {
X  			s[i++] = lastch;
X  			if (is_member < 0) is_member = 0;
X  		}
X! 		was_space = alt_space(lastch);
X  	}
X  
X  	/* Do the second char of a name */
X***************
X*** 357,370 ****
X  			s[i++] = lastch;
X  		} else
X  			is_member = 0;
X  	}
X  
X  	/* Do the rest of a symbol or member name */
X  	else if (is_member > 0 || is_other_char(lastch)) {
X  		s[i++] = lastch;
X! 		continue;
X! 	} else
X! 		goto EOS;
X    }
X  
X    /* Returns EOF on end of file */
X--- 357,373 ----
X  			s[i++] = lastch;
X  		} else
X  			is_member = 0;
X+ 			was_space = alt_space(lastch);
X  	}
X  
X  	/* Do the rest of a symbol or member name */
X  	else if (is_member > 0 || is_other_char(lastch)) {
X  		s[i++] = lastch;
X! 		was_space = alt_space(lastch);
X! 	} else {
X! 		was_space = alt_space(lastch);
X! 		goto EOS;
X! 	}
X    }
X  
X    /* Returns EOF on end of file */
/