[BUGFIX] RTE spellcheck issue on Windows server
authorStanislas Rolland <typo3@sjbr.ca>
Thu, 28 Jun 2012 21:52:35 +0000 (17:52 -0400)
committerStanislas Rolland <typo3@sjbr.ca>
Thu, 5 Jul 2012 13:44:48 +0000 (15:44 +0200)
Problem: There is no command "cat" on windows systems. The equivalent
for these systems would be "type".
Solution: Use "type" when OS is Windows.

Change-Id: Ifc0043c0c1da31572169e7bcbffa21cce33afc4a
Releases: 4.5, 4.6, 4.7, 6.0
Resolves: #36438
Reviewed-on: http://review.typo3.org/12431
Reviewed-by: Wouter Wolters
Reviewed-by: Stanislas Rolland
Tested-by: Stanislas Rolland
typo3/sysext/rtehtmlarea/pi1/class.tx_rtehtmlarea_pi1.php

index 1ffef39..8a2745c 100644 (file)
@@ -191,7 +191,8 @@ class tx_rtehtmlarea_pi1 {
                                        fwrite($filehandle, $cmd, strlen($cmd));
                                        fclose($filehandle);
                                                // $this->personalDictsArg has already been escapeshellarg()'ed above, it is an optional paramter and might be empty here
-                                       $AspellCommand = 'cat ' . escapeshellarg($tmpFileName) . ' | ' . $this->AspellDirectory . ' -a --mode=none' . $this->personalDictsArg . ' --lang=' . escapeshellarg($this->dictionary) . ' --encoding=' . escapeshellarg($this->aspellEncoding) . ' 2>&1';
+                                       $catCommand = (TYPO3_OS == 'WIN') ? 'type' : 'cat';
+                                       $AspellCommand = $catCommand . ' ' . escapeshellarg($tmpFileName) . ' | ' . $this->AspellDirectory . ' -a --mode=none' . $this->personalDictsArg . ' --lang=' . escapeshellarg($this->dictionary) . ' --encoding=' . escapeshellarg($this->aspellEncoding) . ' 2>&1';
                                        print $AspellCommand . LF;
                                        print shell_exec($AspellCommand);
                                        t3lib_div::unlink_tempfile($tmpFileName);
@@ -363,7 +364,8 @@ var selectedDictionary = "' . $this->dictionary . '";
                                        if(!$filehandle = fopen($tmpFileName,'wb')) echo('SpellChecker tempfile open error');
                                        if(!fwrite($filehandle, $word)) echo('SpellChecker tempfile write error');
                                        if(!fclose($filehandle)) echo('SpellChecker tempfile close error');
-                                       $AspellCommand = 'cat ' . escapeshellarg($tmpFileName) . ' | ' . $this->AspellDirectory . ' -a check --mode=none --sug-mode=' . escapeshellarg($this->pspellMode) . $this->personalDictsArg . ' --lang=' . escapeshellarg($this->dictionary) . ' --encoding=' . escapeshellarg($this->aspellEncoding) . ' 2>&1';
+                                       $catCommand = (TYPO3_OS == 'WIN') ? 'type' : 'cat';
+                                       $AspellCommand = $catCommand . ' ' . escapeshellarg($tmpFileName) . ' | ' . $this->AspellDirectory . ' -a check --mode=none --sug-mode=' . escapeshellarg($this->pspellMode) . $this->personalDictsArg . ' --lang=' . escapeshellarg($this->dictionary) . ' --encoding=' . escapeshellarg($this->aspellEncoding) . ' 2>&1';
                                        $AspellAnswer = shell_exec($AspellCommand);
                                        $AspellResultLines = array();
                                        $AspellResultLines = t3lib_div::trimExplode(LF, $AspellAnswer, 1);