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]

More java dir patches, part 3/5


	This is part 3/5, okay to install?

		--Kaveh


Tue Mar  9 15:10:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* Makefile.in (jcf-dump.o): Depend on $(CONFIG_H)
	$(srcdir)/../system.h and $(JAVA_TREE_H).
	(jcf-io.o): Depend on $(JAVA_TREE_H).
	(mangle.o): Likewise.

	* java-tree.h (make_class, build_constants_constructor,
	java_set_exception_lang_code, pop_labeled_block, emit_handlers,
	init_outgoing_cpool, register_class, emit_register_classes,
	java_layout_seen_class_methods): Prototype.
	(unicode_mangling_length): Const-ify.
	(append_gpp_mangled_name, append_gpp_mangled_classtype,
	emit_unicode_mangled_name, format_int, format_uint,
	jcf_trim_old_input, jcf_print_utf8, jcf_print_char,
	jcf_print_utf8_replace, open_class): Prototype.

	* jcf.h (find_classfile): Const-ify.

	* jcf-dump.c: Include "config.h", not <config.h>.  Don't include
	<stdio.h>.  Include tree.h/java-tree.h.
	(utf8_equal_string usage, process_class): Add static prototype.
	(open_class): Don't prototype this here.
	(utf8_equal_string): Match arguments to format specifiers.
	(HANDLE_CODE_ATTRIBUTE, BRANCH, JSR, RET, LOOKUP_SWITCH,
	TABLE_SWITCH, disassemble_method): Likewise.

	* jcf-io.c: Include tree.h/java-tree.h.
	(open_class, find_classfile, jcf_print_utf8,
	jcf_print_utf8_replace): Const-ify.

	* mangle.c Include tree.h/java-tree.h.
	(unicode_mangling_length, emit_unicode_mangled_name,
	append_gpp_mangled_name, append_gpp_mangled_classtype): Const-ify.

	* zipfile.h (opendir_in_zip, open_in_zip): Prototype.
	
	
diff -rup orig/egcs-CVS19990307/gcc/java/Makefile.in egcs-CVS19990307/gcc/java/Makefile.in
--- orig/egcs-CVS19990307/gcc/java/Makefile.in	Sat Mar  6 10:58:05 1999
+++ egcs-CVS19990307/gcc/java/Makefile.in	Tue Mar  9 12:47:16 1999
@@ -274,7 +274,8 @@ clean:  mostlyclean
 force:
 
 parse.o : $(PARSE_C) jcf-reader.c $(CONFIG_H) $(srcdir)/../system.h
-jcf-dump.o : jcf-dump.c jcf-reader.c jcf.h javaop.h javaop.def
+jcf-dump.o : $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H) jcf-dump.c \
+  jcf-reader.c jcf.h javaop.h javaop.def
 gjavah.o : $(CONFIG_H) $(srcdir)/../system.h gjavah.c \
   jcf-reader.c jcf.h javaop.h
 buffer.o : buffer.c $(CONFIG_H) buffer.h $(srcdir)/../gansidecl.h \
@@ -297,7 +298,7 @@ expr.o : expr.c $(CONFIG_H) $(JAVA_TREE_
   java-except.h java-except.h parse.h $(srcdir)/../toplev.h \
   $(srcdir)/../system.h
 jcf-depend.o : jcf-depend.c $(CONFIG_H) $(srcdir)/../system.h jcf.h
-jcf-io.o : jcf-io.c $(CONFIG_H) $(srcdir)/../system.h
+jcf-io.o : jcf-io.c $(CONFIG_H) $(srcdir)/../system.h $(JAVA_TREE_H)
 jcf-parse.o : jcf-parse.c $(CONFIG_H) $(JAVA_TREE_H) $(srcdir)/../flags.h \
   $(srcdir)/../input.h java-except.h $(srcdir)/../system.h \
   $(srcdir)/../toplev.h $(PARSE_H)
@@ -307,7 +308,7 @@ jv-scan.o : jv-scan.c $(CONFIG_H) $(srcd
 jvgenmain.o : jvgenmain.c $(CONFIG_H) $(srcdir)/../system.h
 lang.o : lang.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h $(srcdir)/../input.h \
   $(srcdir)/../toplev.h $(srcdir)/../system.h
-mangle.o : mangle.c $(CONFIG_H) jcf.h $(srcdir)/../system.h \
+mangle.o : mangle.c $(CONFIG_H) jcf.h $(JAVA_TREE_H) $(srcdir)/../system.h \
   $(srcdir)/../toplev.h
 parse-scan.o : $(CONFIG_H) $(srcdir)/../system.h $(srcdir)/../toplev.h
 typeck.o : typeck.c $(CONFIG_H) $(JAVA_TREE_H) jcf.h convert.h \
diff -rup orig/egcs-CVS19990307/gcc/java/java-tree.h egcs-CVS19990307/gcc/java/java-tree.h
--- orig/egcs-CVS19990307/gcc/java/java-tree.h	Sat Mar  6 10:58:52 1999
+++ egcs-CVS19990307/gcc/java/java-tree.h	Tue Mar  9 12:35:02 1999
@@ -483,7 +483,7 @@ extern void jcf_parse PROTO ((struct JCF
 extern tree add_field PROTO ((tree, tree, tree, int));
 extern tree add_method PROTO ((tree, int, tree, tree));
 extern tree add_method_1 PROTO ((tree, int, tree, tree));
-extern tree make_class ();
+extern tree make_class PROTO ((void));
 extern tree push_class PROTO ((tree, tree));
 extern tree unmangle_classname PROTO ((const char *name, int name_length));
 extern tree parse_signature_string PROTO ((const unsigned char *, int));
@@ -491,11 +491,10 @@ extern tree get_type_from_signature PROT
 extern void layout_class PROTO ((tree));
 extern tree layout_class_method PROTO ((tree, tree, tree, tree));
 extern void layout_class_methods PROTO ((tree));
-extern tree make_class ();
 extern tree build_class_ref PROTO ((tree));
 extern tree build_dtable_decl PROTO ((tree));
 extern tree build_internal_class_name PROTO ((tree));
-extern tree build_constants_constructor ();
+extern tree build_constants_constructor PROTO ((void));
 extern tree build_ref_from_constant_pool PROTO ((int));
 extern tree build_utf8_ref PROTO ((tree));
 extern tree ident_subst PROTO ((const char*, int,
@@ -542,9 +541,9 @@ extern tree build_java_arraynull_check P
 extern tree create_label_decl PROTO ((tree));
 extern void push_labeled_block PROTO ((tree));
 extern tree prepare_eh_table_type PROTO ((tree));
-extern void java_set_exception_lang_code PROTO (());
+extern void java_set_exception_lang_code PROTO ((void));
 extern tree generate_name PROTO ((void));
-extern void pop_labeled_block PROTO (());
+extern void pop_labeled_block PROTO ((void));
 extern char *lang_printable_name PROTO ((tree, int));
 extern tree maybe_add_interface PROTO ((tree, tree));
 extern void set_super_info PROTO ((int, tree, tree, int));
@@ -553,12 +552,12 @@ extern int interface_of_p PROTO ((tree, 
 extern int inherits_from_p PROTO ((tree, tree));
 extern void complete_start_java_method PROTO ((tree));
 extern tree build_result_decl PROTO ((tree));
-extern void emit_handlers PROTO (());
-extern void init_outgoing_cpool PROTO (());
+extern void emit_handlers PROTO ((void));
+extern void init_outgoing_cpool PROTO ((void));
 extern void make_class_data PROTO ((tree));
-extern void register_class PROTO (());
+extern void register_class PROTO ((void));
 extern int alloc_name_constant PROTO ((int, tree));
-extern void emit_register_classes PROTO (());
+extern void emit_register_classes PROTO ((void));
 extern void lang_init_source PROTO ((int));
 extern void write_classfile PROTO ((tree));
 extern char *print_int_node PROTO ((tree));
@@ -567,12 +566,12 @@ extern void parse_error_context PVPROTO 
 extern tree build_primtype_type_ref PROTO ((char *));
 extern tree java_get_real_method_name PROTO ((tree));
 extern void finish_class PROTO ((tree));
-extern void java_layout_seen_class_methods PROTO (());
+extern void java_layout_seen_class_methods PROTO ((void));
 extern void check_for_initialization PROTO ((tree));
 
 extern tree pushdecl_top_level PROTO ((tree));
 extern int alloc_class_constant PROTO ((tree));
-extern int unicode_mangling_length PROTO ((char *, int));
+extern int unicode_mangling_length PROTO ((const char *, int));
 extern void init_expr_processing PROTO ((void));
 extern void push_super_field PROTO ((tree, tree));
 extern void init_class_processing PROTO ((void));
@@ -587,8 +586,9 @@ extern int merge_type_state PROTO ((tree
 extern void push_type PROTO ((tree));
 extern void load_type_state PROTO ((tree));
 extern void add_interface PROTO ((tree, tree));
-extern void append_gpp_mangled_classtype PROTO ((struct obstack *, char *));
-extern void emit_unicode_mangled_name PROTO ((struct obstack *, char *, int));
+extern void append_gpp_mangled_name PROTO ((struct obstack *, const char *, int));
+extern void append_gpp_mangled_classtype PROTO ((struct obstack *, const char *));
+extern void emit_unicode_mangled_name PROTO ((struct obstack *, const char *, int));
 extern tree force_evaluation_order PROTO ((tree));
 extern int verify_constant_pool PROTO ((struct JCF *));
 extern void start_java_method PROTO ((tree));
@@ -609,6 +609,22 @@ extern int find_methodref_index PROTO ((
 extern void write_constant_pool PROTO ((struct CPool *, unsigned char *, int));
 extern int count_constant_pool_bytes PROTO ((struct CPool *));
 extern int encode_newarray_type PROTO ((tree));
+#ifdef uint64
+extern void format_int PROTO ((char *, jlong, int));
+extern void format_uint PROTO ((char *, uint64, int));
+#endif
+extern void jcf_trim_old_input PROTO ((struct JCF *));
+#ifdef BUFSIZ
+extern void jcf_print_utf8 PROTO ((FILE *, const unsigned char *, int));
+extern void jcf_print_char PROTO ((FILE *, int));
+extern void jcf_print_utf8_replace PROTO ((FILE *, const unsigned char *,
+					   int, int, int));
+# if JCF_USE_STDIO
+extern char* open_class PROTO ((char *, struct JCF *, FILE *, const char *));
+# else
+extern char* open_class PROTO ((char *, struct JCF *, int, const char *));
+# endif /* JCF_USE_STDIO */
+#endif
 
 /* Access flags etc for a method (a FUNCTION_DECL): */
 
diff -rup orig/egcs-CVS19990307/gcc/java/jcf.h egcs-CVS19990307/gcc/java/jcf.h
--- orig/egcs-CVS19990307/gcc/java/jcf.h	Mon Feb 22 16:44:28 1999
+++ egcs-CVS19990307/gcc/java/jcf.h	Tue Mar  9 10:46:53 1999
@@ -224,7 +224,7 @@ typedef struct JCF {
 #define DEFAULT_CLASS_PATH "."
 
 extern char *find_class PROTO ((const char *, int, JCF*, int));
-extern char *find_classfile PROTO ((char *, JCF*, char *));
+extern char *find_classfile PROTO ((char *, JCF*, const char *));
 extern int jcf_filbuf_from_stdio PROTO ((JCF *jcf, int count));
 extern void jcf_out_of_synch PROTO((JCF *));
 extern int jcf_unexpected_eof PROTO ((JCF*, int));
diff -rup orig/egcs-CVS19990307/gcc/java/jcf-dump.c egcs-CVS19990307/gcc/java/jcf-dump.c
--- orig/egcs-CVS19990307/gcc/java/jcf-dump.c	Tue Mar  9 11:40:43 1999
+++ egcs-CVS19990307/gcc/java/jcf-dump.c	Tue Mar  9 12:38:00 1999
@@ -46,11 +46,12 @@ The Free Software Foundation is independ
  */
     
 
-#include <config.h>
+#include "config.h"
 #include "system.h"
 
-#include <stdio.h>
 #include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
 
 /* Outout file. */
 FILE *out;
@@ -84,15 +85,16 @@ static void print_constant_ref PROTO ((F
 static void disassemble_method PROTO ((JCF*, unsigned char *, int));
 static void print_name PROTO ((FILE*, JCF*, int));
 static void print_signature PROTO ((FILE*, JCF*, int, int));
+static int utf8_equal_string PROTO ((struct JCF*, int, const char *));
+static int usage PROTO ((void));
+static void process_class PROTO ((struct JCF *));
 
 #define PRINT_SIGNATURE_RESULT_ONLY 1
 #define PRINT_SIGNATURE_ARGS_ONLY 2
 
-extern char* open_class();
-
-int
+static int
 DEFUN(utf8_equal_string, (jcf, index, value),
-      JCF *jcf AND int index AND char * value)
+      JCF *jcf AND int index AND const char * value)
 {
   if (CPOOL_INDEX_IN_RANGE (&jcf->cpool, index)
       && JPOOL_TAG (jcf, index) == CONSTANT_Utf8)
@@ -109,8 +111,8 @@ DEFUN(utf8_equal_string, (jcf, index, va
   this_class_index = 0; \
   if (flag_print_class_info) \
     fprintf (out, \
-             "Magic number: 0x%0x, minor_version: %d, major_version: %d.\n", \
-	     MAGIC, MINOR, MAJOR)
+             "Magic number: 0x%0lx, minor_version: %ld, major_version: %ld.\n",\
+	     (long) MAGIC, (long) MINOR, (long) MAJOR)
 
 #define HANDLE_START_CONSTANT_POOL(COUNT) \
   if (flag_print_constant_pool) \
@@ -238,8 +240,8 @@ DEFUN(utf8_equal_string, (jcf, index, va
 
 #define HANDLE_CODE_ATTRIBUTE(MAX_STACK, MAX_LOCALS, CODE_LENGTH) \
 { COMMON_HANDLE_ATTRIBUTE(JCF, attribute_name, attribute_length); \
-  fprintf (out, ", max_stack:%d, max_locals:%d, code_length:%d\n", \
-    MAX_STACK, MAX_LOCALS, CODE_LENGTH); \
+  fprintf (out, ", max_stack:%ld, max_locals:%ld, code_length:%ld\n", \
+    (long) MAX_STACK, (long) MAX_LOCALS, (long) CODE_LENGTH); \
   disassemble_method (jcf, jcf->read_ptr, CODE_LENGTH); }
 
 #define HANDLE_EXCEPTION_TABLE(ENTRIES, COUNT) \
@@ -337,7 +339,7 @@ DEFUN(print_name, (stream, jcf, name_ind
 /* If the type of the constant at INDEX matches EXPECTED,
    print it tersely, otherwise more verbosely. */
 
-void
+static void
 DEFUN(print_constant_terse, (out, jcf, index, expected),
       FILE *out AND JCF *jcf AND int index AND int expected)
 {
@@ -648,14 +650,14 @@ DEFUN(print_exception_table, (jcf, entri
 
 #include "jcf-reader.c"
 
-int
+static int
 DEFUN (usage, (), )
 {
   fprintf (stderr, "Usage: jcf-dump [-o outputfile] [-c] classname\n");
   exit(1);
 }
 
-void
+static void
 DEFUN(process_class, (jcf),
       JCF *jcf)
 {
@@ -1013,24 +1015,24 @@ DEFUN(disassemble_method, (jcf, byte_ops
 
 #define BRANCH(OPERAND_TYPE, OPERAND_VALUE) \
   saw_index = 0, INT_temp = (OPERAND_VALUE); \
-  fprintf (out, " %d", saw_index ? INT_temp : oldpc + INT_temp)
+  fprintf (out, " %ld", (long) (saw_index ? INT_temp : oldpc + INT_temp))
 
 #define JSR(OPERAND_TYPE, OPERAND_VALUE) \
   saw_index = 0, INT_temp = (OPERAND_VALUE); \
-  fprintf (out, " %d", saw_index ? INT_temp : oldpc + INT_temp)
+  fprintf (out, " %ld", (long) (saw_index ? INT_temp : oldpc + INT_temp))
 
 #undef RET /* Defined by config/i386/i386.h */
 #define RET(OPERAND_TYPE, OPERAND_VALUE) \
   INT_temp = saw_wide ? IMMEDIATE_u2 : (OPERAND_VALUE); \
   saw_wide = 0; \
-  fprintf (out, " %d", INT_temp);
+  fprintf (out, " %ld", (long) INT_temp);
 
 #define SWITCH(OPERAND_TYPE, TABLE_OR_LOOKUP) \
   PC = (PC + 3) / 4 * 4; TABLE_OR_LOOKUP##_SWITCH
 
 #define LOOKUP_SWITCH \
   { jint default_offset = IMMEDIATE_s4;  jint npairs = IMMEDIATE_s4; \
-    fprintf (out, " npairs=%d, default=%d", npairs, default_offset+oldpc); \
+    fprintf (out, " npairs=%ld, default=%ld", (long) npairs, (long) default_offset+oldpc); \
     while (--npairs >= 0) { \
      jint match = IMMEDIATE_s4; jint offset = IMMEDIATE_s4; \
      fprintf (out, "\n%10ld: %ld", (long)match, (long)(offset+oldpc)); } \
@@ -1039,8 +1041,8 @@ DEFUN(disassemble_method, (jcf, byte_ops
 #define TABLE_SWITCH \
   { jint default_offset = IMMEDIATE_s4; \
     jint low = IMMEDIATE_s4; jint high = IMMEDIATE_s4; \
-    fprintf (out, " low=%d, high=%d, default=%d", \
-      low, high, default_offset+oldpc); \
+    fprintf (out, " low=%ld, high=%ld, default=%ld", \
+      (long) low, (long) high, (long) default_offset+oldpc); \
     for (; low <= high; low++) { \
      jint offset = IMMEDIATE_s4; \
      fprintf (out, "\n%10ld: %ld", (long)low, (long)(offset+oldpc)); } \
@@ -1077,7 +1079,7 @@ DEFUN(disassemble_method, (jcf, byte_ops
 	  else
 	    {
 	      saw_wide = 0;
-	      fprintf (out, " %d", INT_temp);
+	      fprintf (out, " %ld", (long) INT_temp);
 	    }
 	  fputc ('\n', out);
 	  break;
diff -rup orig/egcs-CVS19990307/gcc/java/jcf-io.c egcs-CVS19990307/gcc/java/jcf-io.c
--- orig/egcs-CVS19990307/gcc/java/jcf-io.c	Tue Feb  2 13:53:29 1999
+++ egcs-CVS19990307/gcc/java/jcf-io.c	Tue Mar  9 12:47:48 1999
@@ -26,6 +26,8 @@ The Free Software Foundation is independ
 #include "system.h"
 
 #include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
 
 /* DOS brain-damage */
 #ifndef O_BINARY
@@ -182,7 +184,7 @@ DEFUN(open_in_zip, (jcf, zipfile, zipmem
 #if JCF_USE_STDIO
 char*
 DEFUN(open_class, (filename, jcf, stream, dep_name),
-      char *filename AND JCF *jcf AND FILE* stream AND char *dep_name)
+      char *filename AND JCF *jcf AND FILE* stream AND const char *dep_name)
 {
   if (jcf)
     {
@@ -203,7 +205,7 @@ DEFUN(open_class, (filename, jcf, stream
 #else
 char*
 DEFUN(open_class, (filename, jcf, fd, dep_name),
-      char *filename AND JCF *jcf AND int fd AND char *dep_name)
+      char *filename AND JCF *jcf AND int fd AND const char *dep_name)
 {
   if (jcf)
     {
@@ -240,7 +242,7 @@ DEFUN(open_class, (filename, jcf, fd, de
 
 char *
 DEFUN(find_classfile, (filename, jcf, dep_name),
-      char *filename AND JCF *jcf AND char *dep_name)
+      char *filename AND JCF *jcf AND const char *dep_name)
 {
 #if JCF_USE_STDIO
   FILE *stream = fopen (filename, "rb");
@@ -458,9 +460,9 @@ DEFUN(jcf_print_char, (stream, ch),
 
 void
 DEFUN(jcf_print_utf8, (stream, str, length),
-      FILE *stream AND register unsigned char *str AND int length)
+      FILE *stream AND register const unsigned char *str AND int length)
 {
-  unsigned char* limit = str + length;
+  const unsigned char * limit = str + length;
   while (str < limit)
     {
       int ch = UTF8_GET (str, limit);
@@ -477,7 +479,7 @@ DEFUN(jcf_print_utf8, (stream, str, leng
 
 void
 DEFUN(jcf_print_utf8_replace, (stream, str, length, in_char, out_char),
-      FILE *stream AND unsigned char *str AND int length
+      FILE *stream AND const unsigned char *str AND int length
       AND int in_char AND int out_char)
 {
 
diff -rup orig/egcs-CVS19990307/gcc/java/mangle.c egcs-CVS19990307/gcc/java/mangle.c
--- orig/egcs-CVS19990307/gcc/java/mangle.c	Sat Jan 23 16:49:51 1999
+++ egcs-CVS19990307/gcc/java/mangle.c	Tue Mar  9 11:12:03 1999
@@ -28,6 +28,8 @@ The Free Software Foundation is independ
 #include "config.h"
 #include "system.h"
 #include "jcf.h"
+#include "tree.h"
+#include "java-tree.h"
 #include "obstack.h"
 #include "toplev.h"
 
@@ -37,15 +39,15 @@ The Free Software Foundation is independ
 
 int
 unicode_mangling_length (name, len)
-     char *name; 
+     const char *name; 
      int len; 
 {
-  unsigned char *ptr;
-  unsigned char *limit = (unsigned char *)name + len;
+  const unsigned char *ptr;
+  const unsigned char *limit = (const unsigned char *)name + len;
   int need_escapes = 0;
   int num_chars = 0;
   int underscores = 0;
-  for (ptr = (unsigned char *) name;  ptr < limit;  )
+  for (ptr = (const unsigned char *) name;  ptr < limit;  )
     {
       int ch = UTF8_GET(ptr, limit);
       if (ch < 0)
@@ -70,12 +72,12 @@ unicode_mangling_length (name, len)
 void
 emit_unicode_mangled_name (obstack, name, len)
      struct obstack *obstack;
-     char *name;
+     const char *name;
      int len;
 {
-  unsigned char *ptr;
-  unsigned char *limit = (unsigned char *)name + len;
-  for (ptr = (unsigned char *) name;  ptr < limit;  )
+  const unsigned char *ptr;
+  const unsigned char *limit = (const unsigned char *)name + len;
+  for (ptr = (const unsigned char *) name;  ptr < limit;  )
     {
       int ch = UTF8_GET(ptr, limit);
       int emit_escape;
@@ -107,7 +109,7 @@ emit_unicode_mangled_name (obstack, name
 void
 append_gpp_mangled_name (obstack, name, len)
      struct obstack *obstack;
-     char *name;
+     const char *name;
      int len;
 {
   int encoded_len = unicode_mangling_length (name, len);
@@ -132,9 +134,9 @@ append_gpp_mangled_name (obstack, name, 
 void
 append_gpp_mangled_classtype (obstack, class_name)
      struct obstack *obstack;
-     char *class_name;
+     const char *class_name;
 {
-  char *ptr;
+  const char *ptr;
   int qualifications = 0;
 
   for (ptr = class_name; *ptr != '\0'; ptr++)
diff -rup orig/egcs-CVS19990307/gcc/java/zipfile.h egcs-CVS19990307/gcc/java/zipfile.h
--- orig/egcs-CVS19990307/gcc/java/zipfile.h	Sat Jan 23 16:49:56 1999
+++ egcs-CVS19990307/gcc/java/zipfile.h	Tue Mar  9 13:41:31 1999
@@ -57,5 +57,9 @@ extern struct ZipFileCache *SeenZipFiles
    ((ZipDirectory*)((char*)(ZIPD)+(ZIPD)->direntry_size))
 #define ZIPMAGIC 0x504b0304	
 
-extern ZipFile * opendir_in_zip ();
+extern ZipFile * opendir_in_zip PROTO ((const char *, int));
 extern int read_zip_archive PROTO ((ZipFile *));
+#ifdef JCF_ZIP
+extern int open_in_zip PROTO ((struct JCF *, const char *,
+			       const char *, int));
+#endif


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