libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: win32 short name and IFS='~'


From: Charles Wilson
Subject: Re: win32 short name and IFS='~'
Date: Thu, 17 Apr 2003 17:49:17 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021130

Actually, wasn't all this IFS stuff just a poor substitute for shell functions? Now that we allow honest-to-god shell functions, why not use those? Or am I missing something?

--Chuck


Boehne, Robert wrote:
Naofumi,

#! /bin/sh
# How about ditching use of IFS totally in favor of a series of commands
# to be executed.  For example, we currently use
show="echo"
run=

test_cmds='echo "do command one"~echo "do command two"~echo "do command three"'

#then, rather than do this:
        save_ifs="$IFS"; IFS='~'
        for cmd in $test_cmds; do
          IFS="$save_ifs"
          $show "$cmd"
          $run eval "$cmd" || exit $?
        done
        IFS="$save_ifs"

# suppose we used
archive_cmds_1='echo "do command one"'
archive_cmds_2='echo "do command two"'
archive_cmds_3='echo "do command three"'
archvie_cmds_max=3

echo " We would do something like this: "
n=0
cmd=
while true; do
  n=`expr $n + 1`
  cmd="\$archive_cmds_$n"
  if test $n -le $archvie_cmds_max ; then
    $show "$cmd"
    $run eval "$cmd" || exit $?
  else
    break;
  fi
done

The real trick to making this work is to get the
shell quoting exactly the same so that we can simply
take current command (~ separated lists) and convert them to
a series without changing the quoting.
The script above doesn't do this :(  but it can be used
by all to attempt to figure out the right quoting to
have the desired result.  This type of solution has
the distinct advantage of not using any other character
for IFS, and so cannot ever clash with characters in
commands.
I would also encourage the use of shell functions to
simplify this, or any other bit of libtool for that matter.

Thanks,






reply via email to

[Prev in Thread] Current Thread [Next in Thread]