bugmake - Bugs: bug #4364, escapes and other problems in...

 
 

bug #4364: escapes and other problems in quoted strings to commands

Submitted by:  None
Submitted on:  Sat 19 Jul 2003 01:55:46 AM UTC  
 
Severity: 3 - NormalItem Group: Bug
Status: Not A BugPrivacy: Public
Assigned to: NoneOpen/Closed: Closed
Component Version: 3.80Operating System: MS Windows
Fixed Release: NoneTriage Status: None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 30 Jul 2003 11:31:01 PM UTC, comment #1:

It's best to ask Windows-related questions on the -unavailable- list. Also, since you didn't post this from an account and didn't add yourself to the CC list of the bug, there's no way we can discuss it with you. I asked this on the above mailing list and Eli Zaretskii said:

> I think it's not Make's fault: it's the Windows shell's
> fault. It's the shell that interprets the ;; thing in
> this case.
>
> As the evidence, you could add that simply running the
> catargs.bat batch file from the Windows shell's prompt,
> with the commands from the Makefile, removes the ";;" as
> well.


Concensus is that the $$ problem is similar:

> Anyway, I don't see any special handling for `$' unless a
> Unixy shell is being used by Make (which I think is not
> the case).


If this doesn't satisfy you please email the above mailing list with more info and we'll reopen the bug.

Paul D. Smith <psmith>
Project Administrator
Sat 19 Jul 2003 01:55:46 AM UTC, original submission:

You need a file named catargs.bat in your path somewhere to repro this, with this line as its contents:
echo echo %1 %2 %3 %4 %5 %6 %7 %8 %9

Here is the makefile to repro the bugs:

.PHONY: test
test:
catargs.bat perl -e "print \"foo;;\";" # make removes the ;;
catargs.bat perl -e "my $$a = 4; print \"$$a\";" # make doesn't really escape the $

This produces the following results:

C:\checker\dev\test\make>make
catargs.bat perl -e "print \"foo;;\";"

C:\checker\dev\test\make>echo perl -e "print \"foo \";"
perl -e "print \"foo \";"
catargs.bat perl -e "my $a = 4; print \"$a\";"

C:\checker\dev\test\make>echo perl -e "my = 4; print \"\";"
perl -e "my = 4; print \"\";"

As you can see, what make actually sends to the program doesn't resemble what it claims it's sending to the program, making it impossible to execute some commands from inside make.

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 2 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Wed 30 Jul 2003 11:31:01 PM UTCpsmithStatusNone=>(Error - Not Found)
  Open/ClosedOpen=>(Error - Not Found)

Back to the top


Powered by Savane 3.1-cleanup1