Index: t3lib/class.t3lib_div.php =================================================================== --- t3lib/class.t3lib_div.php (revision 9766) +++ t3lib/class.t3lib_div.php (working copy) @@ -6174,6 +6174,8 @@ } $path = self::fixWindowsFilePath($path); + $prefixCommand = self::prefixCommandLine($path); + $im_version = strtolower($gfxConf['im_version_5']); $combineScript = $gfxConf['im_combine_filename'] ? trim($gfxConf['im_combine_filename']) : 'combine'; @@ -6218,10 +6220,35 @@ $cmdLine = $path . ' ' . implode(' ', $paramsArr); } - return $cmdLine; + return $prefixCommand . $cmdLine; } /** + * Builds prefix for command line calls in Windows + * + * When using a call to a command line function in Windows and PHP < 5.3.0 and if there are more than two double quotes in + * the command will simply not work due to a bug in PHP. A workaround is to add a dummy command in front of the actual + * command + * + * @static + * @param string $path Path to command + * @return string Prefix for command + */ + protected static function prefixCommandLine($path) { + $prefixCommand = ''; + if (TYPO3_OS == 'WIN' && version_compare(phpversion(), '5.3.0') == -1) { + if (preg_match('/([a-z]:)/i', $path, $matches)) { + // if a drive letter is found, use it + $prefixCommand = $matches[1] . ' & '; + } else { + // fallback is drive c:, which should be present in Windows installations + $prefixCommand = 'c: & '; + } + } + return $prefixCommand; + } + + /** * Explode a string (normally a list of filenames) with whitespaces by considering quotes in that string. This is mostly needed by the imageMagickCommand function above. * * @param string The whole parameters string