This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Problem with basename


klaus.berndl@sdm.de wrote:
> 
> i have written the following function:
> 
>     function check-el-compile ()
>     {
>         for file in $*; do
>             elcfile=`basename $file .el`.elc
>             if [ ! -f "$elcfile" ]; then
>                 missinglist="$missinglist $file"
>             fi
>         done
>         echo "Not compiled Files: $missinglist"
>         unset el elc missinglist
>     }
> 
> This function checks which of the passed *.el files are not compiled, i.e. the file <basename>.elc
> does not exist. Example: abc.el is compiled if abc.elc exists in the same directory.
> 
> Now the problem: if i pass the *.el files as argument to this function all is working fine.
> But if i write the functon like follows:
> 
>     function check-el-compile ()
>     {
>         for file in `ls *.el`; do
>             # same as above.
> 
> then the basename call doesn´t work, i.e. it always returns $file.
> It seems that the output of ls contains "something" which confuses basename?!
> 
> Any ideas what can be the problem?
> 

Not really.  Do you have any *.el files with whitespace characters or
any non alphanumeric characters in the filename?

You could modify your script to have the for loop call the function.  I
would also not use the work `file' as a variable name.  I would change
it to `File' or just F to prevent confusion with the executable of the
same name.

Earnie.

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]