ChangeLog: 2000.04.22 earnie_boyd@yahoo.com Add logic to change '\r' to '\n' in shell files. This allows DOS style files to execute with binary mode mounts. Index: execute_cmd.c =================================================================== RCS file: /.CVS/bash/execute_cmd.c,v retrieving revision 1.1.1.1 diff -u -3 -r1.1.1.1 execute_cmd.c --- execute_cmd.c 2000/04/21 13:16:09 1.1.1.1 +++ execute_cmd.c 2000/04/22 03:46:44 @@ -3196,6 +3196,16 @@ struct stat finfo; int larray, i, fd; +#if 0 +#if defined( __CYGWIN__ ) + { + unsigned long asize = 0; + while (args[++asize]) + printf("args[%i]: %s\n", asize, args[asize]); + } +#endif defined( __CYGWIN__ ) +#endif + SETOSTYPE (0); /* Some systems use for USG/POSIX semantics */ execve (command, args, env); SETOSTYPE (1); Index: input.c =================================================================== RCS file: /.CVS/bash/input.c,v retrieving revision 1.1.1.1 diff -u -3 -r1.1.1.1 input.c --- input.c 2000/04/21 13:16:09 1.1.1.1 +++ input.c 2000/04/24 20:45:41 @@ -144,6 +144,10 @@ { BUFFERED_STREAM *bp; +#if defined ( __CYGWIN__ ) + if (buffer[bufsize - 1] == '\r') + buffer[bufsize -1] = '\n'; +#endif defined( __CYGWIN__ ) bp = (BUFFERED_STREAM *)xmalloc (sizeof (BUFFERED_STREAM)); ALLOCATE_BUFFERS (fd); buffers[fd] = bp; @@ -381,6 +385,10 @@ do { bp->b_used = read (bp->b_fd, bp->b_buffer, bp->b_size); +#if defined ( __CYGWIN__ ) + if (bp->b_buffer[bp->b_size - 1] == '\r') + bp->b_buffer[bp->b_size - 1] = '\n'; +#endif defined ( __CYGWIN__ ) } while (bp->b_used < 0 && errno == EINTR); if (bp->b_used <= 0) Index: builtins/evalfile.c =================================================================== RCS file: /.CVS/bash/builtins/evalfile.c,v retrieving revision 1.1.1.1 diff -u -3 -r1.1.1.1 evalfile.c --- evalfile.c 2000/04/21 13:16:11 1.1.1.1 +++ evalfile.c 2000/04/22 04:03:40 @@ -119,7 +119,14 @@ string = xmalloc (1 + file_size); result = read (fd, string, file_size); string[result] = '\0'; - + +#if defined ( __CYGWIN__ ) + { + char * stmp; + while (stmp = strchr( string, '\r' )) + *stmp = '\n'; + } +#endif defined ( __CYGWIN__ ) return_val = errno; close (fd); errno = return_val;