ray@GIBBS.PHYSICS.PURDUE.EDU (Ray Moody) (08/04/89)
Bash -c and aliases don't mix.
The problem is that the lexer terminates the string given to -c
with \377 (really (char)EOF). The alias expansion code does not
consider \377 to be whitespace. If you say "bash -c foo" when foo is
aliased, bash checks to see if foo\377 is aliased to anything. It
isn't.
Ray
-------------------------------------------------------------------------------
RCS file: RCS/alias.h,v
retrieving revision 1.2
diff -c -r1.2 alias.h
*** /tmp/,RCSt1006612 Thu Aug 3 20:01:57 1989
--- alias.h Thu Aug 3 19:20:37 1989
***************
*** 4,10
#define _ALIAS_
#ifndef whitespace
! #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
#endif
#ifndef savestring
--- 4,10 -----
#define _ALIAS_
#ifndef whitespace
! #define whitespace(c) (((c) == ' ') || ((c) == '\t') || ((c) == (char)EOF))
#endif
#ifndef savestring
===================================================================
RCS file: RCS/general.h,v
retrieving revision 1.2
diff -c -r1.2 general.h
*** /tmp/,RCSt1006612 Thu Aug 3 20:01:57 1989
--- general.h Thu Aug 3 19:20:39 1989
***************
*** 12,18
#endif
#ifndef whitespace
! #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
#endif
#ifndef digit
--- 12,18 -----
#endif
#ifndef whitespace
! #define whitespace(c) (((c) == ' ') || ((c) == '\t') || ((c) == (char)EOF))
#endif
#ifndef digit
===================================================================
RCS file: RCS/alias.c,v
retrieving revision 1.2
diff -c -r1.2 alias.c
*** /tmp/,RCSt1006612 Thu Aug 3 20:01:58 1989
--- alias.c Thu Aug 3 19:52:31 1989
***************
*** 19,24
with Bash; see the file LICENSE. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "config.h"
#include "general.h"
#include "alias.h"
--- 19,25 -----
with Bash; see the file LICENSE. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+ #include <stdio.h>
#include "config.h"
#include "general.h"
#include "alias.h"