This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] gcc/*.[ch]: Fix comment typos.


Hi,

Attached is a patch to fix comment typos.  Committed as obvious.

Kazu Hirata

2002-12-12  Kazu Hirata  <kazu@cs.umass.edu>

	* c-decl.c: Fix a comment typo.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfglayout.c: Likewise.
	* cfgrtl.c: Likewise.
	* c-typeck.c: Likewise.
	* dominance.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarfout.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* flow.c: Likewise.
	* function.c: Likewise.
	* gcc.c: Likewise.
	* genautomata.c: Likewise.
	* integrate.c: Likewise.
	* loop.c: Likewise.
	* loop.h: Likewise.
	* output.h: Likewise.
	* profile.c: Likewise.
	* ra.h: Likewise.
	* reload1.c: Likewise.
	* reload.c: Likewise.
	* sched-rgn.c: Likewise.
	* stmt.c: Likewise.
	* tree.h: Likewise.
	* vmsdbgout.c: Likewise.

Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.355
diff -u -r1.355 c-decl.c
--- c-decl.c	26 Nov 2002 17:36:14 -0000	1.355
+++ c-decl.c	12 Dec 2002 23:02:00 -0000
@@ -1726,7 +1726,7 @@
 	}
 
       /* If we are processing a typedef statement, generate a whole new
-	 ..._TYPE node (which will be just an variant of the existing
+	 ..._TYPE node (which will be just a variant of the existing
 	 ..._TYPE node with identical properties) and then install the
 	 TYPE_DECL node generated to represent the typedef name as the
 	 TYPE_NAME of this brand new (duplicate) ..._TYPE node.
Index: cfg.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfg.c,v
retrieving revision 1.36
diff -u -r1.36 cfg.c
--- cfg.c	1 Dec 2002 03:52:04 -0000	1.36
+++ cfg.c	12 Dec 2002 23:02:01 -0000
@@ -684,7 +684,7 @@
 static struct obstack edge_aux_obstack;
 static void *first_edge_aux_obj = 0;
 
-/* Allocate an memory block of SIZE as BB->aux.  The obstack must
+/* Allocate a memory block of SIZE as BB->aux.  The obstack must
    be first initialized by alloc_aux_for_blocks.  */
 
 inline void
@@ -752,7 +752,7 @@
   clear_aux_for_blocks ();
 }
 
-/* Allocate an memory edge of SIZE as BB->aux.  The obstack must
+/* Allocate a memory edge of SIZE as BB->aux.  The obstack must
    be first initialized by alloc_aux_for_edges.  */
 
 inline void
Index: cfgcleanup.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgcleanup.c,v
retrieving revision 1.67
diff -u -r1.67 cfgcleanup.c
--- cfgcleanup.c	11 Oct 2002 20:26:50 -0000	1.67
+++ cfgcleanup.c	12 Dec 2002 23:02:04 -0000
@@ -1246,7 +1246,7 @@
       return match;
     }
 
-  /* Generic case - we are seeing an computed jump, table jump or trapping
+  /* Generic case - we are seeing a computed jump, table jump or trapping
      instruction.  */
 
   /* First ensure that the instructions match.  There may be many outgoing
Index: cfglayout.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfglayout.c,v
retrieving revision 1.22
diff -u -r1.22 cfglayout.c
--- cfglayout.c	8 Sep 2002 12:47:26 -0000	1.22
+++ cfglayout.c	12 Dec 2002 23:02:06 -0000
@@ -708,7 +708,7 @@
   if (bb == EXIT_BLOCK_PTR || bb == ENTRY_BLOCK_PTR)
     return false;
 
-  /* Duplicating fallthru block to exit would require adding an jump
+  /* Duplicating fallthru block to exit would require adding a jump
      and splitting the real last BB.  */
   for (s = bb->succ; s; s = s->succ_next)
     if (s->dest == EXIT_BLOCK_PTR && s->flags & EDGE_FALLTHRU)
@@ -862,7 +862,7 @@
   src->next_bb = old_next_bb;
 }
 
-/* Create an duplicate of the basic block BB and redirect edge E into it.  */
+/* Create a duplicate of the basic block BB and redirect edge E into it.  */
 
 basic_block
 cfg_layout_duplicate_bb (bb, e)
Index: cfgrtl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgrtl.c,v
retrieving revision 1.60
diff -u -r1.60 cfgrtl.c
--- cfgrtl.c	4 Dec 2002 14:21:58 -0000	1.60
+++ cfgrtl.c	12 Dec 2002 23:02:10 -0000
@@ -793,7 +793,7 @@
 /* Return last loop_beg note appearing after INSN, before start of next
    basic block.  Return INSN if there are no such notes.
 
-   When emitting jump to redirect an fallthru edge, it should always appear
+   When emitting jump to redirect a fallthru edge, it should always appear
    after the LOOP_BEG notes, as loop optimizer expect loop to either start by
    fallthru edge or jump following the LOOP_BEG note jumping to the loop exit
    test.  */
Index: c-typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
retrieving revision 1.212
diff -u -r1.212 c-typeck.c
--- c-typeck.c	4 Nov 2002 00:22:57 -0000	1.212
+++ c-typeck.c	12 Dec 2002 23:02:24 -0000
@@ -5214,7 +5214,7 @@
 	    constructor_max_index = build_int_2 (-1, -1);
 
 	  /* constructor_max_index needs to be an INTEGER_CST.  Attempts
-	     to initialize VLAs will cause an proper error; avoid tree
+	     to initialize VLAs will cause a proper error; avoid tree
 	     checking errors as well by setting a safe value.  */
 	  if (constructor_max_index
 	      && TREE_CODE (constructor_max_index) != INTEGER_CST)
@@ -5404,7 +5404,7 @@
 	    constructor_max_index = build_int_2 (-1, -1);
 
 	  /* constructor_max_index needs to be an INTEGER_CST.  Attempts
-	     to initialize VLAs will cause an proper error; avoid tree
+	     to initialize VLAs will cause a proper error; avoid tree
 	     checking errors as well by setting a safe value.  */
 	  if (constructor_max_index
 	      && TREE_CODE (constructor_max_index) != INTEGER_CST)
Index: dominance.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/dominance.c,v
retrieving revision 1.13
diff -u -r1.13 dominance.c
--- dominance.c	14 Sep 2002 15:51:42 -0000	1.13
+++ dominance.c	12 Dec 2002 23:02:25 -0000
@@ -101,7 +101,7 @@
      number of that node in DFS order counted from 1.  This is an index
      into most of the other arrays in this structure.  */
   TBB *dfs_order;
-  /* If x is the DFS-index of a node which corresponds with an basic block,
+  /* If x is the DFS-index of a node which corresponds with a basic block,
      dfs_to_bb[x] is that basic block.  Note, that in our structure there are
      more nodes that basic blocks, so only dfs_to_bb[dfs_order[bb->index]]==bb
      is true for every basic block bb, but not the opposite.  */
Index: dwarf2asm.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/dwarf2asm.c,v
retrieving revision 1.28
diff -u -r1.28 dwarf2asm.c
--- dwarf2asm.c	13 Sep 2002 03:44:53 -0000	1.28
+++ dwarf2asm.c	12 Dec 2002 23:02:29 -0000
@@ -564,7 +564,7 @@
   VA_CLOSE (ap);
 }
 
-/* Output an signed LEB128 quantity.  */
+/* Output a signed LEB128 quantity.  */
 
 void
 dw2_asm_output_data_sleb128 VPARAMS ((HOST_WIDE_INT value,
Index: dwarfout.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/dwarfout.c,v
retrieving revision 1.117
diff -u -r1.117 dwarfout.c
--- dwarfout.c	22 Sep 2002 14:09:31 -0000	1.117
+++ dwarfout.c	12 Dec 2002 23:02:42 -0000
@@ -162,7 +162,7 @@
  is required by the current DWARF draft specification.
 
  Specifically, the current DWARF draft specification seems to require that
- the type of an non-unsigned integral bit-field member of a struct or union
+ the type of a non-unsigned integral bit-field member of a struct or union
  type be represented as either a "signed" type or as a "plain" type,
  depending upon the exact set of keywords that were used in the
  type specification for the given bit-field member.  It was felt (by the
Index: expmed.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expmed.c,v
retrieving revision 1.127
diff -u -r1.127 expmed.c
--- expmed.c	9 Dec 2002 17:54:05 -0000	1.127
+++ expmed.c	12 Dec 2002 23:02:52 -0000
@@ -2922,7 +2922,7 @@
    the result is exact for inputs up to 0x1fffffff.
    The input range can be reduced by using cross-sum rules.
    For odd divisors >= 3, the following table gives right shift counts
-   so that if an number is shifted by an integer multiple of the given
+   so that if a number is shifted by an integer multiple of the given
    amount, the remainder stays the same:
    2, 4, 3, 6, 10, 12, 4, 8, 18, 6, 11, 20, 18, 0, 5, 10, 12, 0, 12, 20,
    14, 12, 23, 21, 8, 0, 20, 18, 0, 0, 6, 12, 0, 22, 0, 18, 20, 30, 0, 0,
Index: expr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expr.c,v
retrieving revision 1.497
diff -u -r1.497 expr.c
--- expr.c	9 Dec 2002 23:53:58 -0000	1.497
+++ expr.c	12 Dec 2002 23:03:15 -0000
@@ -4358,7 +4358,7 @@
       dont_return_target = 1;
     }
   else if (GET_CODE (target) == SUBREG && SUBREG_PROMOTED_VAR_P (target))
-    /* If this is an scalar in a register that is stored in a wider mode
+    /* If this is a scalar in a register that is stored in a wider mode
        than the declared mode, compute the result into its declared mode
        and then convert to the wider mode.  Our value is the computed
        expression.  */
Index: final.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/final.c,v
retrieving revision 1.270
diff -u -r1.270 final.c
--- final.c	15 Oct 2002 08:24:34 -0000	1.270
+++ final.c	12 Dec 2002 23:03:22 -0000
@@ -994,7 +994,7 @@
 	    }
 	}
       /* In case block is frequent and reached mostly by non-fallthru edge,
-	 align it.  It is most likely an first block of loop.  */
+	 align it.  It is most likely a first block of loop.  */
       if (has_fallthru
 	  && branch_frequency + fallthru_frequency > BB_FREQ_MAX / 10
 	  && branch_frequency > fallthru_frequency * 2)
@@ -4011,7 +4011,7 @@
   return 1;
 }
 
-/* Return 1 if branch is an forward branch.
+/* Return 1 if branch is a forward branch.
    Uses insn_shuid array, so it works only in the final pass.  May be used by
    output templates to customary add branch prediction hints.
  */
Index: flow.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/flow.c,v
retrieving revision 1.540
diff -u -r1.540 flow.c
--- flow.c	4 Nov 2002 16:57:00 -0000	1.540
+++ flow.c	12 Dec 2002 23:03:31 -0000
@@ -1380,7 +1380,7 @@
 }
 
 
-/* This structure is used to pass parameters to an from the
+/* This structure is used to pass parameters to and from the
    the function find_regno_partial(). It is used to pass in the
    register number we are looking, as well as to return any rtx
    we find.  */
Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.388
diff -u -r1.388 function.c
--- function.c	27 Nov 2002 02:29:12 -0000	1.388
+++ function.c	12 Dec 2002 23:03:46 -0000
@@ -2380,7 +2380,7 @@
 	       copy SET_SRC (x) to SET_DEST (x) in some way.  So
 	       we generate the move and see whether it requires more
 	       than one insn.  If it does, we emit those insns and
-	       delete INSN.  Otherwise, we an just replace the pattern
+	       delete INSN.  Otherwise, we can just replace the pattern
 	       of INSN; we have already verified above that INSN has
 	       no other function that to do X.  */
 
Index: gcc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/gcc.c,v
retrieving revision 1.349
diff -u -r1.349 gcc.c
--- gcc.c	26 Nov 2002 07:03:48 -0000	1.349
+++ gcc.c	12 Dec 2002 23:03:59 -0000
@@ -420,7 +420,7 @@
 	and substitute the full name found.
  %eSTR  Print STR as an error message.  STR is terminated by a newline.
         Use this when inconsistent options are detected.
- %nSTR  Print STR as an notice.  STR is terminated by a newline.
+ %nSTR  Print STR as a notice.  STR is terminated by a newline.
  %x{OPTION}	Accumulate an option for %X.
  %X	Output the accumulated linker options specified by compilations.
  %Y	Output the accumulated assembler options specified by compilations.
@@ -4399,7 +4399,7 @@
 	    }
 	    break;
 	  case 'n':
-	    /* %nfoo means report an notice with `foo' on stderr.  */
+	    /* %nfoo means report a notice with `foo' on stderr.  */
 	    {
 	      const char *q = p;
 	      char *buf;
Index: genautomata.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genautomata.c,v
retrieving revision 1.26
diff -u -r1.26 genautomata.c
--- genautomata.c	11 Oct 2002 21:09:59 -0000	1.26
+++ genautomata.c	12 Dec 2002 23:04:20 -0000
@@ -2492,7 +2492,7 @@
     }
 }
 
-/* Checking NAMES in an presence clause vector and returning formed
+/* Checking NAMES in a presence clause vector and returning formed
    unit_set_el_list.  The function is called only after processing all
    exclusion sets.  */
 static unit_set_el_t
@@ -4531,7 +4531,7 @@
 /* The page contains abstract data for work with presence/absence sets
    (see presence_set/absence_set in file rtl.def).  */
 
-/* The following variables refer to correspondingly an presence and an
+/* The following variables refer to correspondingly a presence and an
    absence set returned by get_presence_absence_set.  This is bit
    string of length equal to cpu units number.  */
 static reserv_sets_t presence_set, absence_set;
Index: integrate.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/integrate.c,v
retrieving revision 1.205
diff -u -r1.205 integrate.c
--- integrate.c	4 Dec 2002 20:12:59 -0000	1.205
+++ integrate.c	12 Dec 2002 23:04:27 -0000
@@ -861,7 +861,7 @@
 
      ??? These numbers are quite arbitrary and were obtained by
      experimentation.  At some point, we should try to allocate the
-     table after all the parameters are set up so we an more accurately
+     table after all the parameters are set up so we can more accurately
      estimate the number of pseudos we will need.  */
 
   VARRAY_CONST_EQUIV_INIT (map->const_equiv_varray,
Index: loop.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/loop.c,v
retrieving revision 1.432
diff -u -r1.432 loop.c
--- loop.c	20 Nov 2002 06:14:53 -0000	1.432
+++ loop.c	12 Dec 2002 23:04:49 -0000
@@ -2884,7 +2884,7 @@
 
 			/* If no suitable BARRIER was found, create a suitable
 			   one before TARGET.  Since TARGET is a fall through
-			   path, we'll need to insert an jump around our block
+			   path, we'll need to insert a jump around our block
 			   and add a BARRIER before TARGET.
 
 			   This creates an extra unconditional jump outside
Index: loop.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/loop.h,v
retrieving revision 1.64
diff -u -r1.64 loop.h
--- loop.h	22 Sep 2002 14:09:34 -0000	1.64
+++ loop.h	12 Dec 2002 23:04:50 -0000
@@ -248,7 +248,7 @@
      During code motion, a negative value indicates a reg that has
      been made a candidate; in particular -2 means that it is an
      candidate that we know is equal to a constant and -1 means that
-     it is an candidate not known equal to a constant.  After code
+     it is a candidate not known equal to a constant.  After code
      motion, regs moved have 0 (which is accurate now) while the
      failed candidates have the original number of times set.
 
Index: output.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/output.h,v
retrieving revision 1.115
diff -u -r1.115 output.h
--- output.h	27 Nov 2002 06:13:21 -0000	1.115
+++ output.h	12 Dec 2002 23:04:51 -0000
@@ -118,7 +118,7 @@
 /* Return nonzero if this function has no function calls.  */
 extern int leaf_function_p	PARAMS ((void));
 
-/* Return 1 if branch is an forward branch.
+/* Return 1 if branch is a forward branch.
    Uses insn_shuid array, so it works only in the final pass.  May be used by
    output templates to add branch prediction hints, for example.  */
 extern int final_forward_branch_p PARAMS ((rtx));
Index: profile.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/profile.c,v
retrieving revision 1.101
diff -u -r1.101 profile.c
--- profile.c	21 Oct 2002 20:24:57 -0000	1.101
+++ profile.c	12 Dec 2002 23:04:54 -0000
@@ -1109,7 +1109,7 @@
 /* This function searches all of the edges in the program flow graph, and puts
    as many bad edges as possible onto the spanning tree.  Bad edges include
    abnormals edges, which can't be instrumented at the moment.  Since it is
-   possible for fake edges to form an cycle, we will have to develop some
+   possible for fake edges to form a cycle, we will have to develop some
    better way in the future.  Also put critical edges to the tree, since they
    are more expensive to instrument.  */
 
@@ -1128,7 +1128,7 @@
   /* Add fake edge exit to entry we can't instrument.  */
   union_groups (EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR);
 
-  /* First add all abnormal edges to the tree unless they form an cycle. Also
+  /* First add all abnormal edges to the tree unless they form a cycle. Also
      add all edges to EXIT_BLOCK_PTR to avoid inserting profiling code behind
      setting return value from function.  */
   for (i = 0; i < num_edges; i++)
@@ -1148,7 +1148,7 @@
 	}
     }
 
-  /* Now insert all critical edges to the tree unless they form an cycle.  */
+  /* Now insert all critical edges to the tree unless they form a cycle.  */
   for (i = 0; i < num_edges; i++)
     {
       edge e = INDEX_EDGE (el, i);
Index: ra.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ra.h,v
retrieving revision 1.2
diff -u -r1.2 ra.h
--- ra.h	15 Jul 2002 14:07:05 -0000	1.2
+++ ra.h	12 Dec 2002 23:04:56 -0000
@@ -303,7 +303,7 @@
   struct web *web;
 };
 
-/* A subconflict is part of an conflict edge to track precisely,
+/* A subconflict is part of a conflict edge to track precisely,
    which parts of two webs conflict, in case not all of both webs do.  */
 struct sub_conflict
 {
Index: reload1.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/reload1.c,v
retrieving revision 1.365
diff -u -r1.365 reload1.c
--- reload1.c	9 Dec 2002 23:53:58 -0000	1.365
+++ reload1.c	12 Dec 2002 23:05:17 -0000
@@ -9464,7 +9464,7 @@
     {
       edge e;
 
-      /* Look for cases we are interested in - an calls or instructions causing
+      /* Look for cases we are interested in - calls or instructions causing
          exceptions.  */
       for (e = bb->succ; e; e = e->succ_next)
 	{
Index: reload.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/reload.c,v
retrieving revision 1.198
diff -u -r1.198 reload.c
--- reload.c	20 Nov 2002 17:05:08 -0000	1.198
+++ reload.c	12 Dec 2002 23:05:32 -0000
@@ -2143,13 +2143,13 @@
   /* If two operands must match, because they are really a single
      operand of an assembler insn, then two postincrements are invalid
      because the assembler insn would increment only once.
-     On the other hand, an postincrement matches ordinary indexing
+     On the other hand, a postincrement matches ordinary indexing
      if the postincrement is the output operand.  */
   if (code == POST_DEC || code == POST_INC || code == POST_MODIFY)
     return operands_match_p (XEXP (x, 0), y);
   /* Two preincrements are invalid
      because the assembler insn would increment only once.
-     On the other hand, an preincrement matches ordinary indexing
+     On the other hand, a preincrement matches ordinary indexing
      if the preincrement is the input operand.
      In this case, return 2, since some callers need to do special
      things when this happens.  */
Index: sched-rgn.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/sched-rgn.c,v
retrieving revision 1.49
diff -u -r1.49 sched-rgn.c
--- sched-rgn.c	27 Sep 2002 12:48:02 -0000	1.49
+++ sched-rgn.c	12 Dec 2002 23:05:39 -0000
@@ -637,7 +637,7 @@
   /* Note if a block is a natural loop header.  */
   sbitmap header;
 
-  /* Note if a block is an natural inner loop header.  */
+  /* Note if a block is a natural inner loop header.  */
   sbitmap inner;
 
   /* Note if a block is in the block queue.  */
Index: stmt.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stmt.c,v
retrieving revision 1.275
diff -u -r1.275 stmt.c
--- stmt.c	9 Dec 2002 17:54:04 -0000	1.275
+++ stmt.c	12 Dec 2002 23:05:50 -0000
@@ -5244,7 +5244,7 @@
 
   do_pending_stack_adjust ();
 
-  /* This might get an spurious warning in the presence of a syntax error;
+  /* This might get a spurious warning in the presence of a syntax error;
      it could be fixed by moving the call to check_seenlabel after the
      check for error_mark_node, and copying the code of check_seenlabel that
      deals with case_stack->data.case_stmt.line_number_status /
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.366
diff -u -r1.366 tree.h
--- tree.h	11 Dec 2002 18:28:26 -0000	1.366
+++ tree.h	12 Dec 2002 23:05:59 -0000
@@ -457,7 +457,7 @@
    is sufficient to check bounds at the time the reference is seated,
    and assume that all future uses of the reference are safe, since
    the address of references cannot change.  (2) When a reference
-   supertype is seated to an subtype object.  The bounds "remember"
+   supertype is seated to a subtype object.  The bounds "remember"
    the true size of the complete object, so that subsequent upcasts of
    the address of the reference will be checked properly (is such a
    thing valid C++?).  */
Index: vmsdbgout.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/vmsdbgout.c,v
retrieving revision 1.20
diff -u -r1.20 vmsdbgout.c
--- vmsdbgout.c	27 Sep 2002 12:48:06 -0000	1.20
+++ vmsdbgout.c	12 Dec 2002 23:06:02 -0000
@@ -84,7 +84,7 @@
 #define PTR_SIZE 4 /* Must be 32 bits for VMS debug info */
 #endif
 
-/* Pointer to an structure of filenames referenced by this compilation unit.  */
+/* Pointer to a structure of filenames referenced by this compilation unit.  */
 static dst_file_info_ref file_info_table;
 
 /* Total number of entries in the table (i.e. array) pointed to by


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]