View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000229 | Xdebug | Uncategorized | public | 2006-12-12 15:59 | 2006-12-19 18:58 |
| Reporter | d_kelsey | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | open | ||
| Summary | 0000229: Cannot change a string to one which has spaces in it. | ||||
| Description | I attempt to change a variable containing a string (the string is arbitrary) using the property_set request to a string which contains spaces, but it fails. I can change the string to anything else so long as it has no spaces in it. eg I have a string with the contents "Welcome to PHP", and I tried to change it to "This is", but it is rejected. The command issued is property_set -i 189 -n $b -d 0 -l 12 -- VGhpcyBpcw== <?xml version="1.0" encoding="iso-8859-1"?> If I change it to "ThisIsI" then the command is <?xml version="1.0" encoding="iso-8859-1"?> I have checked that the base64 encoding decodes correctly to a string with spaces. | ||||
| Additional Information | I have also tested this with 2.0.0rc2-dev built on 11th Dec 06 and the problem exists there as well. | ||||
| Tags | No tags attached. | ||||
| Operating System | |||||
| PHP Version | 5.1.6 | ||||
|
|
Although property_set still needs some work, this is expected behavior. Send the variable with quotes around it and it will work just fine. Basically, Xdebug does internally: $cmd = sprintf("%s = %s", $name, $data); where $name is the -n option and $data the -- option. As you can see that without the "'s, the eval command is not valid. I will keep this report open though as a reminder to properly implement property_set. |
|
|
Thanks Derick, I have changed my client as you suggest and it works fine. |
|
|
That has been fixed in CVS now. If you use the -t argument Xdebug will not use eval, but install just set the variable. You don't need to escape strings with " then any more. Only in case where the -t argument is missing Xdebug will use eval() internally to set the property. |