Re: [CONCERN] BPL13a & GET_SKILL() -0700"

From: James Turner (turnerjh@XTN.NET)
Date: 06/07/98

Doppleganger Software <doppsoft@TZC.COM> writes:

> Also, is there a UNIX way to to a multi-file find & replace without
> writing a complex script?  I want to do a complete find & replace of the
> IS_AFFECTED with the AFF_FLAGGED, but it occurs is so many places, it is
> unfeasible to do so.  Also, I have IS_AFFECTED2, IS_AFFECTED3, &
> IS_AFFECTED4, so I want to change them all, without too much work.  I can
> do so in BBedit, if I download all the code, then re-upload it, but
> that's an awful lot of work and transfer time (I figure 20 minutes at my
> speed modem) and also if I need to do it again, I want to know how :)

There are several ways.  Probably the easiest for one-time changes
like this would be to use Emacs.  Type "emacs" in the directory of
your code.  Then type M-! (quick emacs lesson: C-<anything> means hold
control while pressing the given key... M-<anything> means hold alt.
C-M-<anything> obviously means both... so in this case hold alt and
hit ! (which means hold alt and shift and hit 1)).  So... M-! will
result in a prompt to execute.  Type "etags *.c *.h" and it should
complete with no output.  Next type M-x then type in
"tags-query-replace" and it will ask you for a string to replace then
what to replace it with.

A more general way is to use perl or sed.  Here's a sed script I
sometimes use.  Call it with the first parameter being the script to
execute on all the c and h files in the current directory.  In this
case you would use a single file containing the line
"s/IS_AFFECTED/AFF_FLAGGED/g".  Sed is a great tool, as is perl.  Of
course IMO Emacs is about the best tool there is for coding, but I'm


for i in *.c *.h
  sed -f $1 $i > $i.tmp
  echo $i
  mv -f $i.tmp $i

James Turner     

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | |

This archive was generated by hypermail 2b30 : 12/15/00 PST