Index: coder.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/coder.module,v
retrieving revision 1.88
diff -u -p -r1.88 coder.module
--- coder.module	11 Aug 2007 21:41:38 -0000	1.88
+++ coder.module	15 Apr 2008 11:25:05 -0000
@@ -43,11 +43,11 @@ function coder_reviews() {
   global $_coder_reviews;
   if (!isset($_coder_reviews)) {
     $_coder_reviews = array();
-    $path = drupal_get_path('module', 'coder') .'/includes';
+    $path = drupal_get_path('module', 'coder') . '/includes';
     $files = drupal_system_listing('coder_.*\.inc$', $path, 'name', 0);
     foreach ($files as $file) {
-      require_once('./'. $file->filename);
-      $function = $file->name .'_reviews';
+      require_once('./' . $file->filename);
+      $function = $file->name . '_reviews';
       if (function_exists($function)) {
         if ($review = call_user_func($function)) {
           $_coder_reviews = array_merge($_coder_reviews, $review);
@@ -137,9 +137,9 @@ function coder_form_alter(&$form, $form_
   if ($form_id == 'system_modules') {
     if (user_access('view code review')) {
       $path = drupal_get_path('module', 'coder');
-      drupal_add_css($path .'/coder.css', 'module');
+      drupal_add_css($path . '/coder.css', 'module');
       foreach ($form['name'] as $name => $data) {
-        $form['description'][$name]['#value'] = $data['#value'] .'<div class="admin-coder">'. l(t('Code Review'), "admin/coder/$name") .'</div>';
+        $form['description'][$name]['#value'] = $data['#value'] . '<div class="admin-coder">' . l(t('Code Review'), "admin/coder/$name") . '</div>';
       }
     }
   }
@@ -155,7 +155,7 @@ function _coder_default_reviews() {
 function _coder_settings_form($settings, &$system, &$files) {
   // add the javascript
   $path = drupal_get_path('module', 'coder');
-  drupal_add_js($path .'/coder.js');
+  drupal_add_js($path . '/coder.js');
 
   // create the list of review options from the coder review plug-ins
   // maintain a secondary list based on #title only, to make sorting possible
@@ -163,7 +163,7 @@ function _coder_settings_form($settings,
   foreach ($reviews as $name => $review) {
     $review_options[$name] = l($review['#title'], $review['#link']);
     if (isset($review['#description'])) {
-      $review_options[$name] .= ' ('. $review['#description'] .')';
+      $review_options[$name] .= ' (' . $review['#description'] . ')';
     }
     $review_sort[$name] = $review['#title'];
   }
@@ -377,7 +377,7 @@ function _coder_settings_array(&$form_va
  * Implementation of code review page
  */
 function coder_page() {
-  $output  = '<div class="coder-disclaimer">'. coder_help('coder#disclaimer', array()) .'</div>';
+  $output  = '<div class="coder-disclaimer">' . coder_help('coder#disclaimer', array()) . '</div>';
   $output .= drupal_get_form('coder_page_form');
   return $output;
 }
@@ -460,7 +460,7 @@ function coder_page_form() {
   if ($coder_form = _coder_settings_form($settings, $system, $files)) {
     // add style sheet
     $path = drupal_get_path('module', 'coder');
-    drupal_add_css($path .'/coder.css', 'module');
+    drupal_add_css($path . '/coder.css', 'module');
 
     // code review non-module core files
     $module_weight = 0;
@@ -632,8 +632,8 @@ function _coder_modified() {
   static $_coder_mtime;
   if (!isset($_coder_mtime)) {
     $path = drupal_get_path('module', 'coder');
-    $includefiles = drupal_system_listing('.*\.(inc|module)$', $path .'/includes', 'name', 0);
-    $_coder_mtime = filemtime(realpath($path .'/coder.module'));
+    $includefiles = drupal_system_listing('.*\.(inc|module)$', $path . '/includes', 'name', 0);
+    $_coder_mtime = filemtime(realpath($path . '/coder.module'));
     foreach ($includefiles as $file) {
       $mtime = filemtime(realpath($file->filename));
       if ($mtime > $_coder_mtime) {
@@ -648,7 +648,7 @@ function do_coder_reviews($coder_args) {
   // the cache is still experimental, so users must enable it
   if ($use_cache = variable_get('coder_cache', 1)) {
     // cache the results because:
-    $cache_key = 'coder:'.  implode(':', array_keys($coder_args['#reviews'])) .  $coder_args['#severity'] .':'. $coder_args['#filename'];
+    $cache_key = 'coder:' .  implode(':', array_keys($coder_args['#reviews'])) .  $coder_args['#severity'] . ':' . $coder_args['#filename'];
     $cache_mtime = filemtime(realpath($coder_args['#filename']));
     if ($cache_results = cache_get($cache_key)) {
       if ($cache_results->data['mtime'] == $cache_mtime && _coder_modified() < $cache_results->created) {
@@ -705,7 +705,7 @@ function _coder_read_and_parse_file(&$co
   // get the path to the module file
   if ($filepath = realpath($coder_args['#filename'])) {
     // read the file
-    $content = file_get_contents($filepath) ."\n";
+    $content = file_get_contents($filepath) . "\n";
     $content_length = drupal_strlen($content);
 
     $in_comment = 0;
@@ -868,7 +868,7 @@ function _coder_read_and_parse_file(&$co
                 unset($char);
                 $in_comment = $next_char;
                 $this_all_lines .= $next_char;
-                $this_comment_lines .= '/'. $next_char;
+                $this_comment_lines .= '/' . $next_char;
                 $pos ++;
               }
               break;
@@ -1010,7 +1010,7 @@ function do_coder_review($coder_args, $r
           $lines = $coder_args['#all_lines'];
         }
         elseif (isset($rule['#source'])) { // all, html, comment, or php
-          $source = '#'. $rule['#source'] .'_lines';
+          $source = '#' . $rule['#source'] . '_lines';
           $lines = $coder_args[$source];
         }
         else {
@@ -1040,14 +1040,14 @@ function do_coder_review($coder_args, $r
 
 function do_coder_review_regex(&$coder_args, $review, $rule, $lines, &$results) {
   if (isset($rule['#value'])) {
-    $regex = '/'. $rule['#value'] .'/';
+    $regex = '/' . $rule['#value'] . '/';
     if (!isset($rule['#case-sensitive'])) {
       $regex .= 'i';
     }
-    $function_regex = isset($rule['#function']) ? '/'. $rule['#function'] .'/' : '';
+    $function_regex = isset($rule['#function']) ? '/' . $rule['#function'] . '/' : '';
     $current_function = '';
     $paren = 0;
-    $not_regex = isset($rule['#not']) ? '/'. $rule['#not'] .'/i' : '';
+    $not_regex = isset($rule['#not']) ? '/' . $rule['#not'] . '/i' : '';
     foreach ($lines as $lineno => $line) {
       // some rules apply only within certain functions
       if ($function_regex) {
@@ -1183,7 +1183,7 @@ function _coder_search_string($line, $ru
   }
   
   // case-insensitive search
-  $regex = '/'. preg_quote($rule['#value']) .'/i';
+  $regex = '/' . preg_quote($rule['#value']) . '/i';
   return preg_match($regex, $line);
 }
 
@@ -1251,7 +1251,7 @@ function coder_theme() {
 }
 
 function theme_coder($name, $filename, $results) {
-  $output = '<div class="coder"><h2>'. basename($filename) .'</h2>';
+  $output = '<div class="coder"><h2>' . basename($filename) . '</h2>';
   if (!empty($results)) {
     $output .= theme('item_list', $results);
   }
@@ -1266,13 +1266,13 @@ function theme_coder_warning($warning, $
     $link = $warning['#link'];
     $warning = $warning['#warning'];
     if (isset($link)) {
-      $warning .= '  ('. l('Drupal Docs', $link) .')';
+      $warning .= '  (' . l('Drupal Docs', $link) . ')';
     }
   }
   if ($lineno) {
     $warning = t('Line @number: !warning', array('@number' => $lineno, '!warning' => $warning));
     if ($line) {
-      $warning .= '<pre>'. check_plain($line) .'</pre>';
+      $warning .= '<pre>' . check_plain($line) . '</pre>';
     }
   }
   $class = 'coder-warning';
@@ -1281,12 +1281,12 @@ function theme_coder_warning($warning, $
   }
   $path = drupal_get_path('module', 'coder');
   $title = t('severity: @severity', array('@severity' => $severity_name));
-  $img = theme('image', $path ."/images/$severity_name.png", $title, $title, array('align' => 'right', 'class' => 'coder'), false);
+  $img = theme('image', $path . "/images/$severity_name.png", $title, $title, array('align' => 'right', 'class' => 'coder'), false);
   if (!empty($description)) {
-    $img .= theme('image', $path .'/images/more.png', t('click to read more'), '', array('align' => 'right', 'class' => 'coder-more'), false);
-    $warning .= '<div class="coder-description">Explanation: '. $description .'</div>';
+    $img .= theme('image', $path . '/images/more.png', t('click to read more'), '', array('align' => 'right', 'class' => 'coder-more'), false);
+    $warning .= '<div class="coder-description">Explanation: ' . $description . '</div>';
   }
-  return '<div class="'. $class .'">'. $img . $warning .'</div>';
+  return '<div class="' . $class . '">' . $img . $warning . '</div>';
 }
 
 function theme_drupalapi($function, $version = 'HEAD') {
Index: includes/coder_50.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/includes/coder_50.inc,v
retrieving revision 1.21
diff -u -p -r1.21 coder_50.inc
--- includes/coder_50.inc	1 Jun 2007 00:47:57 -0000	1.21
+++ includes/coder_50.inc	15 Apr 2008 11:25:05 -0000
@@ -84,7 +84,7 @@ function _coder_50_callback(&$coder_args
   $filename = $coder_args['#filename'];
   if (substr($filename, -7) == '.module') {
     // make sure that a .info file exists
-    $filename = drupal_substr(realpath($filename), 0, -7) .'.info';
+    $filename = drupal_substr(realpath($filename), 0, -7) . '.info';
     if (!file_exists($filename)) {
       $severity_name = _coder_severity_name($coder_args, $review, $rule);
       $warning = t('All modules now need to have a <a href="@info">modulename.info file</a>', array('@info' => 'http://drupal.org/node/101009'));
Index: includes/coder_style.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/includes/coder_style.inc,v
retrieving revision 1.16
diff -u -p -r1.16 coder_style.inc
--- includes/coder_style.inc	22 Jul 2007 18:12:01 -0000	1.16
+++ includes/coder_style.inc	15 Apr 2008 11:25:06 -0000
@@ -44,13 +44,8 @@ function coder_style_reviews() {
     ),
     array(
       '#type' => 'regex',
-      '#value' => '(\.\s\'\'|\'\'\s\.|\.\s""|\.\s"")',
-      '#warning' => 'string concatenation should be formatted without a space separating the operators (dot .) and a quote',
-    ),
-    array(
-      '#type' => 'regex',
-      '#value' => '([^\'\"\s0-9]\.|\.[^\'\"\=\s0-9])',
-      '#warning' => 'string concatenation should be formatted with a space separating the operators (dot .) and non-quote terms',
+      '#value' => '([^\s]\.|\.[^\=\s])',
+      '#warning' => 'String concatenation should be formatted with a space separating the operators (dot .) and the terms',
     ),
     array(
       '#type' => 'regex',
@@ -61,7 +56,7 @@ function coder_style_reviews() {
     array(
       '#type' => 'regex',
       '#value' => 'global\s+\$(\w+)(,\s\$(\w+))*',
-      '#not' => '^_|^('. _coder_style_core_global_regex() .')$',
+      '#not' => '^_|^(' . _coder_style_core_global_regex() . ')$',
       '#warning' => 'global variables should start with a single underscore followed by the module and another underscore',
     ),
     array(
@@ -99,7 +94,7 @@ function coder_style_reviews() {
     array(
       '#type' => 'regex',
       '#source' => 'html',
-      '#value' => '<'. $br .'>', // NOTE: use $br only to avoid a warning
+      '#value' => '<' . $br . '>', // NOTE: use $br only to avoid a warning
       '#warning' => 'use &lt;br /&gt; instead of &lt;br&gt;',
       '#severity' => 'minor',
     ),
Index: scripts/coder_format/coder_format.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/scripts/coder_format/coder_format.php,v
retrieving revision 1.3
diff -u -p -r1.3 coder_format.php
--- scripts/coder_format/coder_format.php	24 Feb 2008 19:40:50 -0000	1.3
+++ scripts/coder_format/coder_format.php	15 Apr 2008 11:25:06 -0000
@@ -38,7 +38,7 @@
 // We are on the command line, so output only real errors.
 error_reporting(E_ERROR | E_WARNING | E_PARSE);
 
-require_once realpath(dirname($_SERVER['PHP_SELF'])) .'/coder_format.inc';
+require_once realpath(dirname($_SERVER['PHP_SELF'])) . '/coder_format.inc';
 
 if (!empty($_SERVER['argv'])) {
   // Remove self-reference.
@@ -186,7 +186,7 @@ function file_copy(&$source, $dest = 0, 
 
   // If the destination file is not specified then use the filename of the source file.
   $basename = $basename ? $basename : basename($source);
-  $dest = $directory .'/'. $basename;
+  $dest = $directory . '/' . $basename;
 
   // Make sure source and destination filenames are not the same, makes no sense
   // to copy it if they are. In fact copying the file will most likely result in
@@ -286,7 +286,7 @@ function file_move(&$source, $dest = 0, 
  * @return
  */
 function file_create_filename($basename, $directory) {
-  $dest = $directory .'/'. $basename;
+  $dest = $directory . '/' . $basename;
 
   if (file_exists($dest)) {
     // Destination file already exists, generate an alternative.
@@ -295,7 +295,7 @@ function file_create_filename($basename,
 
     $counter = 0;
     do {
-      $dest = $directory .'/'. $name . str_repeat('.coder.orig', $counter++);
+      $dest = $directory . '/' . $name . str_repeat('.coder.orig', $counter++);
     } while (file_exists($dest));
   }
 
Index: scripts/coder_format/tests/CoderTestCase.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/scripts/coder_format/tests/CoderTestCase.php,v
retrieving revision 1.2
diff -u -p -r1.2 CoderTestCase.php
--- scripts/coder_format/tests/CoderTestCase.php	24 Feb 2008 19:40:50 -0000	1.2
+++ scripts/coder_format/tests/CoderTestCase.php	15 Apr 2008 11:25:06 -0000
@@ -1,7 +1,7 @@
 <?php
 // $Id: CoderTestCase.php,v 1.2 2008/02/24 19:40:50 sun Exp $
 
-require_once drupal_get_path('module', 'coder') .'/scripts/coder_format/coder_format.inc';
+require_once drupal_get_path('module', 'coder') . '/scripts/coder_format/coder_format.inc';
 
 class CoderTestCase extends DrupalTestCase {
   function assertFormat($input, $expect) {
Index: scripts/coder_format/tests/CoderTestFile.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/scripts/coder_format/tests/CoderTestFile.php,v
retrieving revision 1.2
diff -u -p -r1.2 CoderTestFile.php
--- scripts/coder_format/tests/CoderTestFile.php	24 Feb 2008 19:40:50 -0000	1.2
+++ scripts/coder_format/tests/CoderTestFile.php	15 Apr 2008 11:25:06 -0000
@@ -75,11 +75,11 @@ class CoderTestFile extends SimpleExpect
           break;
 
         case 'INPUT':
-          $this->input[$unit] .= $line ."\n";
+          $this->input[$unit] .= $line . "\n";
           break;
 
         case 'EXPECT':
-          $this->expect[$unit] .= $line ."\n";
+          $this->expect[$unit] .= $line . "\n";
           break;
         
         case 'ONLY':
@@ -95,9 +95,9 @@ class CoderTestFile extends SimpleExpect
       }
       // If FULL was *not* defined, add a PHP header to contents.
       if (!$this->full) {
-        $prepend             = "<?php\n// $". "Id$\n\n";
-        $this->input[$unit]  = $prepend . rtrim($this->input[$unit], "\n") ."\n\n";
-        $this->expect[$unit] = $prepend . rtrim($this->expect[$unit], "\n") ."\n\n";
+        $prepend             = "<?php\n// $" . "Id$\n\n";
+        $this->input[$unit]  = $prepend . rtrim($this->input[$unit], "\n") . "\n\n";
+        $this->expect[$unit] = $prepend . rtrim($this->expect[$unit], "\n") . "\n\n";
       }
     }
     if (!empty($this->only[$unit])) {
@@ -136,7 +136,7 @@ class CoderTestFile extends SimpleExpect
    * Implements SimpleExpectation::testMessage().
    */
   function testMessage() {
-    $message = $this->test .' test in '. htmlspecialchars(basename($this->filename));
+    $message = $this->test . ' test in ' . htmlspecialchars(basename($this->filename));
     return $message;
   }
 
@@ -144,7 +144,7 @@ class CoderTestFile extends SimpleExpect
    * Renders the test with an HTML diff table.
    */
   function render() {
-    drupal_add_css(drupal_get_path('module', 'coder') .'/scripts/coder_format/tests/coder-diff.css', 'module', 'all', false);
+    drupal_add_css(drupal_get_path('module', 'coder') . '/scripts/coder_format/tests/coder-diff.css', 'module', 'all', false);
     
     foreach ($this->input as $unit => $content) {
       // Do not output passed units.
@@ -153,7 +153,7 @@ class CoderTestFile extends SimpleExpect
       }
       
       $diff     = new Text_Diff('auto', array(explode("\n", $this->expect[$unit]), explode("\n", $this->actual[$unit])));
-      $renderer = new Text_Diff_Renderer_parallel($this->test .' test in '. htmlspecialchars(basename($this->filename)));
+      $renderer = new Text_Diff_Renderer_parallel($this->test . ' test in ' . htmlspecialchars(basename($this->filename)));
       
       $message .= $renderer->render($diff);
     }
@@ -185,7 +185,7 @@ class Text_Diff_Renderer_parallel extend
   function _blockHeader() {}
 
   function _startDiff() {
-    return '<table class="diff"><thead><tr><th colspan="2">'. $this->title .'</th></tr><tr><th>'. $this->original .'</th><th>'. $this->final .'</th></tr></thead><tbody>';
+    return '<table class="diff"><thead><tr><th colspan="2">' . $this->title . '</th></tr><tr><th>' . $this->original . '</th><th>' . $this->final . '</th></tr></thead><tbody>';
   }
 
   function _endDiff() {
@@ -193,25 +193,25 @@ class Text_Diff_Renderer_parallel extend
   }
 
   function _context($lines) {
-    return '<tr><td><pre>'. $this->_renderLines($lines) .'</pre></td>
-          <td><pre>'. $this->_renderLines($lines) .'</pre></td></tr>';
+    return '<tr><td><pre>' . $this->_renderLines($lines) . '</pre></td>
+          <td><pre>' . $this->_renderLines($lines) . '</pre></td></tr>';
   }
 
   function _added($lines) {
-    return '<tr><td>&nbsp;</td><td class="added"><pre>'. $this->_renderLines($lines) .'</pre></td></tr>';
+    return '<tr><td>&nbsp;</td><td class="added"><pre>' . $this->_renderLines($lines) . '</pre></td></tr>';
   }
 
   function _deleted($lines) {
-    return '<tr><td class="deleted"><pre>'. $this->_renderLines($lines) .'</pre></td><td>&nbsp;</td></tr>';
+    return '<tr><td class="deleted"><pre>' . $this->_renderLines($lines) . '</pre></td><td>&nbsp;</td></tr>';
   }
 
   function _changed($orig, $final) {
-    return '<tr class="changed"><td><pre>'. $this->_renderLines($orig) .'</pre></td>
+    return '<tr class="changed"><td><pre>' . $this->_renderLines($orig) . '</pre></td>
         <td><pre>'. $this->_renderLines($final) .'</pre></td></tr>';
   }
   
   function _renderLines($lines) {
-    return str_replace("\n", "<strong>&para;</strong>\n", htmlspecialchars(implode("\n", $lines)."\n"));
+    return str_replace("\n", "<strong>&para;</strong>\n", htmlspecialchars(implode("\n", $lines) . "\n"));
   }
   
 }
Index: tests/coder_style.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/coder/tests/coder_style.inc,v
retrieving revision 1.6
diff -u -p -r1.6 coder_style.inc
--- tests/coder_style.inc	1 Jun 2007 00:47:57 -0000	1.6
+++ tests/coder_style.inc	15 Apr 2008 11:25:06 -0000
@@ -62,11 +62,11 @@ __EOD__;
 }
 
 function coder_dot() {
-  if ($file = file_check_upload($fieldname . '_upload')) { // not ok
+  if ($file = file_check_upload($fieldname .'_upload')) { // not ok
   }
   $v .= 'bugger'; // ok
-  $a = $v .'bugger'; // ok
-  $a = $v ."bugger"; // ok, but will throw performance warning
+  $a = $v . 'bugger'; // ok
+  $a = $v . "bugger"; // ok, but will throw performance warning
   $a = $v.'bugger'; // not ok
   $a = $some_func().'bugger'; // not ok
 }
