X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Fsquirrelspell%2Fmodules%2Fcheck_me.mod;h=b0797e51b39839a6fd065567913595179c4e7f0f;hp=313c0b523ee887ddb63e17567e9fdbd93f1084d4;hb=91e0dccca7b2452d8b450791cae3aa4125e8889e;hpb=bd9c880b180d3db597909c87c7cbf3fadef40be2 diff --git a/plugins/squirrelspell/modules/check_me.mod b/plugins/squirrelspell/modules/check_me.mod index 313c0b52..b0797e51 100644 --- a/plugins/squirrelspell/modules/check_me.mod +++ b/plugins/squirrelspell/modules/check_me.mod @@ -4,17 +4,17 @@ * ------------- * Squirrelspell module. * - * Copyright (c) 1999-2002 The SquirrelMail development team + * Copyright (c) 1999-2004 The SquirrelMail development team * Licensed under the GNU GPL. For full terms see the file COPYING. * * This module is the main workhorse of SquirrelSpell. It submits * the message to the spell-checker, parses the output, and loads * the interface window. * - * $Id$ - * - * @author Konstantin Riabitsev ($Author$) - * @version $Date$ + * @author Konstantin Riabitsev + * @version $Id$ + * @package plugins + * @subpackage squirrelspell */ /** @@ -36,8 +36,10 @@ function SpellLink($jscode, $title, $link) { /** * Declaring globals for users with E_ALL set. */ -global $sqspell_text, $SQSPELL_APP, $sqspell_use_app, $attachment_dir, - $username, $SQSPELL_EREG, $color; +global $SQSPELL_APP, $attachment_dir, $SQSPELL_EREG, $color; + +$sqspell_text = $_POST['sqspell_text']; +$sqspell_use_app = $_POST['sqspell_use_app']; /** * Now we explode the lines for three reasons: @@ -64,7 +66,7 @@ for ($i=0; $i= 4.3.0, we can use proc_open and safe mode + * and not mess w/ temp files. Otherwise we will do it the old + * way, (minus the uneeded call to cat that messes up Wintel + * boxen.) + * Thanks Ray Ferguson for providing this patch. */ -exec("cat $floc | $sqspell_command 2>&1", $sqspell_output, $sqspell_exitcode); -/** - * Remove the temp file. - */ -unlink($floc); +if( check_php_version ( 4, 3 ) ) { + $descriptorspec = array( + 0 => array('pipe', 'r'), // stdin is a pipe that the child will read from + 1 => array('pipe', 'w'), // stdout is a pipe that the child will write to + 2 => array('pipe', 'w'), // stderr is a pipe that the child will write to + ); + $spell_proc=proc_open($sqspell_command, $descriptorspec, $pipes); + fwrite($pipes[0], $sqspell_new_text); + fclose($pipes[0]); + $sqspell_output = array(); + for($i=1; $i<=2; $i++){ + while(!feof($pipes[$i])) + array_push($sqspell_output, rtrim(fgetss($pipes[$i],999),"\n")); + fclose($pipes[$i]); + } + $sqspell_exitcode=proc_close($spell_proc); +} else { + do { + $floc = "$attachment_dir/" . md5($sqspell_new_text . microtime()); + } while (file_exists($floc)); + $fp=fopen($floc, 'w'); + fwrite($fp, $sqspell_new_text); + fclose($fp); + exec("$sqspell_command < $floc 2>&1", $sqspell_output, $sqspell_exitcode); + unlink($floc); +} /** * Check if the execution was successful. Bail out if it wasn't. @@ -114,10 +120,10 @@ if ($sqspell_exitcode){ $msg= "
" . sprintf(_("I tried to execute '%s', but it returned:"), $sqspell_command) . "
"
-     . nl2br(join("\n", $sqspell_output)) . "
" - . "
" - . "
"; + . htmlspecialchars(join("\n", $sqspell_output)) . '' + . '
' + . '
'; sqspell_makeWindow(null, _("SquirrelSpell is misconfigured."), null, $msg); exit; } @@ -163,13 +169,15 @@ for ($i=0; $i\n" - . "\n" - . '' . _("SquirrelSpell Results") . ''; - /** - * Check if there are user-defined stylesheets. - */ - if ($theme_css != '') { - echo "\n"; - } /** * Load the spelling errors into JavaScript arrays * (More dark magic!) */ - echo "\n" - . "\n" - . "\n"; - + . "\n"; + + + displayHtmlHeader(_("SquirrelSpell Results"),$extrajs); + echo "\n"; @@ -299,7 +298,7 @@ if ($errors){ -
+
@@ -307,7 +306,7 @@ if ($errors){
- @@ -317,7 +316,7 @@ if ($errors){ echo $sptag . _("Line with an error:") . ''; ?>
- @@ -328,7 +327,7 @@ if ($errors){ ?> - + - + - @@ -423,9 +422,9 @@ if ($errors){ /** * AREN'T YOU SUCH A KNOW-IT-ALL! */ - $msg="
" - . "
"; + $msg='
'. + '
'; sqspell_makeWindow(null, _("No errors found"), null, $msg); } @@ -434,5 +433,6 @@ if ($errors){ * Local variables: * mode: php * End: + * vim: syntax=php et ts=4 */ -?> +?> \ No newline at end of file
- @@ -337,7 +336,7 @@ if ($errors){ ?> - + onfocus="if(!this.value) this.value=document.forms[0].sqspell_error.value" /> - +


- +


- ' - . ' '; + + ' + . ' '; ?>