Index: sites/all/modules/nodecomment/views/nodecomment.views_default.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodecomment/views/Attic/nodecomment.views_default.inc,v
retrieving revision 1.1.2.2
diff -u -r1.1.2.2 nodecomment.views_default.inc
--- sites/all/modules/nodecomment/views/nodecomment.views_default.inc	3 Oct 2008 16:44:20 -0000	1.1.2.2
+++ sites/all/modules/nodecomment/views/nodecomment.views_default.inc	3 Jun 2009 00:47:32 -0000
@@ -113,9 +113,7 @@
     'perm' => '',
   ));
   $handler->override_option('items_per_page', 0);
-  $handler->override_option('style_options', array(
-    'grouping' => '',
-  ));
+  $handler->override_option('style_plugin', 'nodecomment');
   $handler->override_option('row_plugin', 'node');
   $handler->override_option('row_options', array(
     'teaser' => 0,
Index: sites/all/modules/nodecomment/views/nodecomment_plugin_style_threaded.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodecomment/views/Attic/nodecomment_plugin_style_threaded.inc,v
retrieving revision 1.1.2.1.2.1
diff -u -r1.1.2.1.2.1 nodecomment_plugin_style_threaded.inc
--- sites/all/modules/nodecomment/views/nodecomment_plugin_style_threaded.inc	27 May 2009 22:55:34 -0000	1.1.2.1.2.1
+++ sites/all/modules/nodecomment/views/nodecomment_plugin_style_threaded.inc	3 Jun 2009 00:47:32 -0000
@@ -23,7 +23,7 @@
           $last_depth--;
         }
       }
-      $output .= node_view($node);
+      $output .= nodecomment_view($node);
     }
 
     for ($i = 0; $i < $divs; $i++) {
Index: sites/all/modules/nodecomment/views/nodecomment.views.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodecomment/views/Attic/nodecomment.views.inc,v
retrieving revision 1.1.2.1.2.1
diff -u -r1.1.2.1.2.1 nodecomment.views.inc
--- sites/all/modules/nodecomment/views/nodecomment.views.inc	29 May 2009 23:58:34 -0000	1.1.2.1.2.1
+++ sites/all/modules/nodecomment/views/nodecomment.views.inc	3 Jun 2009 00:47:32 -0000
@@ -173,6 +173,16 @@
 function nodecomment_views_plugins() {
   return array(
     'style' => array(
+      'nodecomment_flat' => array(
+        'path' => drupal_get_path('module', 'nodecomment') .'/views',
+        'theme path' => drupal_get_path('module', 'nodecomment') .'/views',
+        'title' => t('Node comments flat'),
+        'help' => t('Display the comment with a flat (non-threaded) comment view.'),
+        'handler' => 'nodecomment_plugin_style_flat',
+        'theme' => 'nodecomment_flat',
+        'uses row plugin' => TRUE,
+        'type' => 'normal',
+      ),
       'nodecomment_threaded' => array(
         'path' => drupal_get_path('module', 'nodecomment') .'/views',
         'theme path' => drupal_get_path('module', 'nodecomment') .'/views',
Index: sites/all/modules/nodecomment/nodecomment-wrapper.tpl.php
===================================================================
RCS file: sites/all/modules/nodecomment/nodecomment-wrapper.tpl.php
diff -N sites/all/modules/nodecomment/nodecomment-wrapper.tpl.php
--- sites/all/modules/nodecomment/nodecomment-wrapper.tpl.php	22 Jul 2008 17:21:23 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1 +0,0 @@
-<div id="comments"><?php print $content ?></div>
\ No newline at end of file
Index: sites/all/modules/nodecomment/node-comment.tpl.php
===================================================================
RCS file: sites/all/modules/nodecomment/node-comment.tpl.php
diff -N sites/all/modules/nodecomment/node-comment.tpl.php
--- sites/all/modules/nodecomment/node-comment.tpl.php	28 May 2009 02:49:06 -0000	1.1.4.1.2.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,34 +0,0 @@
-<?php
-/**
- * For comments as nodes to work, we need to know in advance what node types
- * will be used as comments and theme them differently. In particular, pay
- * attention to the way the title is output. This tpl.php assumes a content
- * type called "comment".
- */
- ?>
-
-<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
-
-<?php print $picture ?>
-
-  <div class="subject"><?php print l($node->title, $_GET['q'], array('fragment' => 'comment-'. $node->nid)) . ' ' . theme('mark', $node->new); ?></div>
-  <?php if ($submitted): ?>
-    <span class="submitted"><?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?></span>
-  <?php endif; ?>
-
-  <div class="content">
-    <?php print $content ?>
-  </div>
-
-  <div class="clear-block clear">
-    <div class="meta">
-    <?php if ($taxonomy): ?>
-      <div class="terms"><?php print $terms ?></div>
-    <?php endif;?>
-    </div>
-
-    <?php if ($links): ?>
-      <div class="links clear-block"><?php print $links; ?></div>
-    <?php endif; ?>
-  </div>
-</div>
\ No newline at end of file
Index: sites/all/modules/nodecomment/nodecomment.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodecomment/nodecomment.module,v
retrieving revision 1.3.2.15.2.17.2.13
diff -u -r1.3.2.15.2.17.2.13 nodecomment.module
--- sites/all/modules/nodecomment/nodecomment.module	2 Jun 2009 23:52:20 -0000	1.3.2.15.2.17.2.13
+++ sites/all/modules/nodecomment/nodecomment.module	3 Jun 2009 00:47:32 -0000
@@ -45,6 +45,10 @@
 function nodecomment_theme() {
   $items = array();
 
+  $items['nodecomment'] = array(
+    'arguments' => array('node' => NULL, 'teaser' => FALSE, 'page' => FALSE),
+    'template' => 'nodecomment',
+  );
   $items['nodecomment_convert_page'] = array(
     'arguments' => array('convert_counts' => NULL, 'form' => NULL),
     'file' => 'nodecomment.convert.inc',
@@ -348,7 +352,7 @@
   switch ($op) {
     case 'load':
       $node->comment_type = nodecomment_get_comment_type($node->type);
-      $comment_data = db_fetch_array(db_query('SELECT * FROM {node_comments} nc WHERE nc.cid = %d', $node->nid));
+      $comment_data = db_fetch_array(db_query('SELECT nc.*, u.signature FROM {node_comments} nc LEFT JOIN {users} u ON nc.uid = u.uid WHERE nc.cid = %d', $node->nid));
       if ($comment_data['cid']) {
         // It's a node comment! Populate commenty stuff.
         $comment_data['comment_target_nid'] = $comment_data['nid'];
@@ -640,8 +644,8 @@
 
     if ($cid && is_numeric($cid)) {
       // Single comment view.
-      if ($comment = node_load($cid)) {
-        $output = theme('node', $comment, TRUE, TRUE);
+      if ($node = node_load($cid)) {
+        $output = nodecomment_view($node);
       }
     }
     else {
@@ -668,6 +672,37 @@
 }
 
 /**
+ * A specialized version of node_view() for comments.
+ */
+function nodecomment_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE) {
+  $node = (object)$node;
+
+  $node = node_build_content($node, $teaser, $page);
+
+  if ($links) {
+    $node->links = module_invoke_all('link', 'node', $node, $teaser);
+    drupal_alter('link', $node->links, $node);
+  }
+
+  // Set the proper node part, then unset unused $node part so that a bad
+  // theme can not open a security hole.
+  $content = drupal_render($node->content);
+  if ($teaser) {
+    $node->teaser = $content;
+    unset($node->body);
+  }
+  else {
+    $node->body = $content;
+    unset($node->teaser);
+  }
+
+  // Allow modules to modify the fully-built node.
+  node_invoke_nodeapi($node, 'alter', $teaser, $page);
+
+  return theme('nodecomment', $node, $teaser, $page);
+}
+
+/**
  * misc functions: helpers, privates, history
  */
 
@@ -760,6 +795,48 @@
   }
 }
 
+/**
+ * Preprocess function for nodecomment.tpl.php.
+ */
+function template_preprocess_nodecomment(&$variables) {
+  // Set the basic variables used by nodes.
+  template_preprocess_node($variables);
+
+  static $first_new = TRUE;
+
+  $node = $variables['node'];
+  $node->timestamp = $node->created;
+  $node->new = node_mark($node->comment_target_nid, $node->timestamp);
+  $parent_node = node_load($node->comment_target_nid);
+
+  // This variable doesn't exist for normal comments, it's intended to
+  // eliminate the need for theme_comment_view().
+  $variables['first_new'] = FALSE;
+  if ($first_new && $node->new != MARK_READ) {
+    // Assign the anchor only for the first new comment. This avoids duplicate
+    // id attributes on a page.
+    $first_new = FALSE;
+    $variables['first_new'] = TRUE;
+  }
+
+  $variables['parent_node'] = $parent_node;
+  $variables['author']    = theme('username', $node);
+  $variables['new']       = $node->new ? t('new') : '';
+  $variables['picture']   = theme_get_setting('toggle_comment_user_picture') ? theme('user_picture', $node) : '';
+  $variables['signature'] = $node->signature;
+  $variables['submitted'] = theme('comment_submitted', $node);
+  $variables['title']     = l(check_plain($node->title), $_GET['q'], array('fragment' => "comment-$node->nid"));
+  $variables['template_files'][] = 'nodecomment-' . $node->type;
+  $variables['template_files'][] = 'node-' . $node->type;
+  // Set status to a string representation of comment->status.
+  if ($node->build_mode == NODE_BUILD_PREVIEW) {
+    $variables['status']  = 'comment-preview';
+  }
+  else {
+    $variables['status']  = ($node->status == 0) ? 'comment-unpublished' : 'comment-published';
+  }
+}
+
 function nodecomment_get_thread($node) {
   // Here we are building the thread field. See the documentation for
   // comment_render().
Index: sites/all/modules/nodecomment/views/nodecomment_plugin_style_flat.inc
===================================================================
RCS file: sites/all/modules/nodecomment/views/nodecomment_plugin_style_flat.inc
diff -N sites/all/modules/nodecomment/views/nodecomment_plugin_style_flat.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sites/all/modules/nodecomment/views/nodecomment_plugin_style_flat.inc	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,17 @@
+<?php
+
+class nodecomment_plugin_style_flat extends views_plugin_style {
+  function render() {
+    $divs = 0;
+    $last_depth = 0;
+    $output = '';
+    drupal_add_css(drupal_get_path('module', 'comment') .'/comment.css');
+
+    foreach ($this->view->result as $n) {
+      $node = node_load($n->nid);
+      $output .= nodecomment_view($node);
+    }
+
+    return $output;
+  }
+}
Index: sites/all/modules/nodecomment/nodecomment.tpl.php
===================================================================
RCS file: sites/all/modules/nodecomment/nodecomment.tpl.php
diff -N sites/all/modules/nodecomment/nodecomment.tpl.php
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sites/all/modules/nodecomment/nodecomment.tpl.php	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,64 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * Default theme implementation for comments.
+ *
+ * Available variables:
+ * - $author: Comment author. Can be link or plain text.
+ * - $content: Body of the post.
+ * - $date: Date and time of posting.
+ * - $first_new: Set to TRUE if this is the first new comment on the page.
+ * - $links: Various operational links.
+ * - $new: New comment marker.
+ * - $picture: Authors picture.
+ * - $signature: Authors signature.
+ * - $status: Comment status. Possible values are:
+ *   comment-unpublished, comment-published or comment-preview.
+ * - $submitted: By line with date and time.
+ * - $title: Linked title.
+ *
+ * These two variables are provided for context:
+ * - $node: Full node comment object.
+ * - $parent_node: Node object the comments are attached to.
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * @see template_preprocess_nodecomment()
+ */
+?>
+<?php if ($first_new): ?>
+<a id="new"></a>
+<?php endif; ?>
+<a id="comment-<?php print $node->nid ?>"></a>
+<div class="comment<?php print ($node->new) ? ' comment-new' : ''; print ' '. $status ?> clear-block">
+  <?php print $picture ?>
+
+  <?php if ($node->new): ?>
+    <span class="new"><?php print $new ?></span>
+  <?php endif; ?>
+
+  <h3><?php print $title ?></h3>
+
+  <div class="submitted">
+    <?php print $submitted ?>
+  </div>
+
+  <?php if ($terms): ?>
+    <div class="terms terms-inline"><?php print $terms ?></div>
+  <?php endif;?>
+
+  <div class="content">
+    <?php print $content ?>
+    <?php if ($signature): ?>
+    <div class="user-signature clear-block">
+      <?php print $signature ?>
+    </div>
+    <?php endif; ?>
+  </div>
+
+  <?php print $links ?>
+</div>
