[ 
https://issues.apache.org/jira/browse/CB-12844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16483550#comment-16483550
 ] 

ASF GitHub Bot commented on CB-12844:
-------------------------------------

shazron closed pull request #2: CB-12844 Update pbxProject.js
URL: https://github.com/apache/cordova-node-xcode/pull/2
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/lib/pbxProject.js b/lib/pbxProject.js
index 18033bb..386a1ac 100644
--- a/lib/pbxProject.js
+++ b/lib/pbxProject.js
@@ -1546,7 +1546,7 @@ function pbxShellScriptBuildPhaseObj(obj, options, 
phaseName) {
     obj.inputPaths = options.inputPaths || [];
     obj.outputPaths = options.outputPaths || [];
     obj.shellPath = options.shellPath;
-    obj.shellScript = '"' + options.shellScript.replace(/"/g, '\\"') + '"';
+    obj.shellScript = '"' + options.shellScript.replace(/"/g, 
'\\"').replace(/\\/g, '\\\\') + '"'; ;
 
     return obj;
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> Escape backslashes when creating a PBXShellScriptBuildPhase
> -----------------------------------------------------------
>
>                 Key: CB-12844
>                 URL: https://issues.apache.org/jira/browse/CB-12844
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-node-xcode
>    Affects Versions: 7.0.0, 6.4.0, 6.5.0
>         Environment: MacOS 10.12.4
> Xcode 8.3.2 (8E2002)
> Cordova 6.5.0
> node-xcode 0.9.0
>            Reporter: Nicholas Rawlings
>            Assignee: Anis Kadri
>            Priority: Minor
>
> Hooks can use the `node-xcode` package, which was contributed to the Cordova 
> project about a month ago, to modify an Xcode project.  When using 
> `pbxProject.addBuildPhase()` to add a new "Run Script" phase, backslashes in 
> the passed script are not properly escaped.  Unescaped backslashes can break 
> the expected behavior of the shell script and result in a malformed *.pbxproj 
> file.
> The solution should be as simple as modifying the 
> `pbxShellScriptBuildPhaseObj()` function to replace unescaped backslashes  
> with escaped ones in the same way that double quote characters are handled:
> ```javascript
> function pbxShellScriptBuildPhaseObj(obj, options, phaseName) {
>     obj.name = '"' + phaseName + '"';
>     obj.inputPaths = options.inputPaths || [];
>     obj.outputPaths = options.outputPaths || [];
>     obj.shellPath = options.shellPath;
>     obj.shellScript = '"' + options.shellScript.replace(/"/g, 
> '\\"').replace(/\\/g, '\\\\') + '"';
>     return obj;
> }
> ```



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to