comp.lang.ada
 help / color / mirror / Atom feed
* Word counting
@ 2003-12-11 22:01 wave
  2003-12-11 22:45 ` David C. Hoos
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: wave @ 2003-12-11 22:01 UTC (permalink / raw)


Hello, been following this newsgroup for a few months now and I can
tell it's a great place for help judging by some of the threads I've
been reading.

I'm extremely new to ada after coding in a handful of newer languages
such as PHP and the like. I'm having some difficulties with a program
I am trying to design using the various functions available to me.

The program is this:

I'm trying to read a file of which each sentence consists of a line of
words, separated obviously by one or more blank spaces. I'm trying to
get it to read these lines of the file and count the number of words
that have one letter, two letters, and so on, up to a maximum of
fifteen letters.

I'm actually having loads more difficulty than I thought with a 'case'
designed version of the program, although I have now changed that to
loops as, to me, it looks much 'cleaner'.

I've got the following code so far, I'm wondering if anyone could be
of assistance and tell me whats up with it.

   Max_Chars    :          Integer := 100;  
   Max_Words    : constant Integer := 15;  
   Max_Word_Len : constant Integer := 20;  

   Position,  
   Number   : Integer := 1;  
   Length,  
   Counted_Words : Integer := 0;  

   Current_Line : String (1 .. Max_Chars);  

   type Words_Of_Length is array (Integer range 1 .. 10) of Integer; 
   type Word_Count_Line is array (Integer range 1 .. 10) of Integer; 
   Word_Count : Word_Count_Line;  
   Word_Length : Words_Of_Length;  

begin

   while (not End_Of_File) loop

      Position := 1;
      Get_Line(Current_Line,Length);

      for Position in 1..Length loop
         if (Current_Line(Position) = ' ')  then
            Word_Length(Number) := Word_Length(Number) + 1;
            Number := Number + 1;
            Counted_Words := Counted_Words + 1;
         end if;

            Put(Current_Line(Position));

      end loop;
   end loop;

   Put("Counted words: " & Integer'Image(Counted_Words));
   New_Line(5);
      
   for Index in 1..10 loop
      Put(Integer'Image(Index) & " " &
Integer'Image(Word_Length(Index)));
      New_Line;
   end loop;

   New_Line(5);

end;


I appreciate any feedback you could give me on this, as it's really
been annoying me.



Cheers,

Mut.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-11 22:01 wave
@ 2003-12-11 22:45 ` David C. Hoos
  2003-12-12  1:17 ` Jeffrey Carter
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 13+ messages in thread
From: David C. Hoos @ 2003-12-11 22:45 UTC (permalink / raw)
  To: wave, comp.lang.ada@ada.eu.org

Here is some code I originally posted On March 8, 2003 which
does the word parsing using the facilites of the Ada language
standard libraries.

The function "Words" returns an array with an element for
each word in the line.  Each array element contains the first
and last indices of each word.  This would make determination
of the length of each word very easy.

package Word_Parser
is

   type Word_Boundaries is record
      First : Positive;
      Last  : Natural;
   end record;

   type Word_Boundaries_Array is
     array (Positive range <>) of Word_Boundaries;

   -- Limitation: No more than 1024 words per text string.
   function Words (Text : String) return Word_Boundaries_Array;

end Word_Parser;
with Ada.Strings.Fixed;
with Ada.Strings.Maps;
package body Word_Parser is

   Whitespace : constant String := ' ' &
     ASCII.Ht & ASCII.Cr & ASCII.LF;
   Punctuation : constant String := ",./?<>:;'""[]{}!@#$%^&*()_+|-=\~~";
   Delimiters : constant Ada.Strings.Maps.Character_Set :=
     Ada.Strings.Maps.To_Set (Whitespace & Punctuation);

   -----------
   -- Words --
   -----------

   function Words (Text : String) return Word_Boundaries_Array
   is
      Word_Boundaries_List : Word_Boundaries_Array (1 .. 1024);
      Word_Count : Natural := 0;
      First : Positive := Text'First;
   begin
      loop
         Ada.Strings.Fixed.Find_Token
           (Source => Text (First .. Text'Last),
            Set    => Delimiters,
            Test   => Ada.Strings.Outside,
            First  => Word_Boundaries_List (Word_Count + 1).First,
            Last   => Word_Boundaries_List (Word_Count + 1).Last);
         exit when Word_Boundaries_List (Word_Count + 1).Last = 0;
         First := Word_Boundaries_List (Word_Count + 1).Last + 1;
         Word_Count := Word_Count + 1;
      end loop;
      return Word_Boundaries_List (1 .. Word_Count);
   end Words;

end Word_Parser;
with Ada.Command_Line;
with Ada.Text_IO;
with Word_Parser;
procedure Test_Word_Parser
is
   File : Ada.Text_IO.File_Type;
   Line : String (1 .. 10240);
   Last : Natural;
   use type Ada.Text_IO.Count;
begin
   if Ada.Command_Line.Argument_Count /= 1 then
      Ada.Text_IO.Put_Line
        (Ada.Text_IO.Standard_Error,
         "USAGE: " & Ada.Command_Line.Command_Name &
         " <text-file-name>");
      Ada.Command_Line.Set_Exit_Status (0);
      return;
   end if;
   Ada.Text_IO.Open
     (File => File,
      Name => Ada.Command_Line.Argument (1),
      Mode => Ada.Text_IO.In_File);
   while not Ada.Text_IO.End_Of_File (File) loop
      Ada.Text_IO.Get_Line
        (Item => Line,
         File => File,
         Last => Last);
      declare
         Word_Boundary_List :
           constant Word_Parser.Word_Boundaries_Array :=
           Word_Parser.Words (Line (Line'First .. Last));
      begin
         Ada.Text_IO.Put_Line
           ("Words in line" &
            Ada.Text_IO.Count'Image (Ada.Text_IO.Line (File) - 1));
         for W in Word_Boundary_List'Range loop
            Ada.Text_IO.Put_Line
              ("""" & Line
               (Word_Boundary_List (W).First ..
                Word_Boundary_List (W).Last) & """");
         end loop;
      end;
   end loop;
end Test_Word_Parser;

----- Original Message ----- 
From: "wave" <mutilation@bonbon.net>
Newsgroups: comp.lang.ada
To: <comp.lang.ada@ada-france.org>
Sent: Thursday, December 11, 2003 4:01 PM
Subject: Word counting


<snip>




^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: Word counting
@ 2003-12-11 22:47 amado.alves
  0 siblings, 0 replies; 13+ messages in thread
From: amado.alves @ 2003-12-11 22:47 UTC (permalink / raw)
  To: comp.lang.ada

(Sorry if this shows up illformatted. Right now I'm limited to a crappy webmail system.)

	<<Hello, been following this newsgroup for a few months now and I can
	tell it's a great place for help judging by some of the threads I've
	been reading.>>

	

	You bet! 

	<<I'm extremely new to ada after coding in a handful of newer languages
	such as PHP and the like.>>

	Welcome. A warning: there are no ex-Adaists ;-)

	<<I'm trying to read a file of which each sentence consists of a line of
	words, separated obviously by one or more blank spaces. I'm trying to
	get it to read these lines of the file and count the number of words
	that have one letter, two letters, and so on, up to a maximum of
	fifteen letters.>>

	<<...
	   type Words_Of_Length is array (Integer range 1 .. 10) of Integer;
	>>

	Shouldn't the upper bound be Max_Words?

	<<
	   while (not End_Of_File) loop
	
	      Position := 1; -- LOOSE THIS
	      Get_Line(Current_Line,Length);
	
	      for Position in 1..Length loop
	         if (Current_Line(Position) = ' ')  then -- MISSES WORDS AT END OF LINE, WHICH ARE NOT FOLLOWED BY SPACE
	            Word_Length(Number) := Word_Length(Number) + 1;
	            Number := Number + 1;
	            Counted_Words := Counted_Words + 1; -- EQUAL TO Number, NO?
	         end if;
	
	            Put(Current_Line(Position));
	
	      end loop;
	   end loop;
	...>>

	Too many problems so far. Some of logic. Rethink your program. Write in pseudo-code first. Or in Pascal. Assume functions like Get_Next_Word. We'll flesh them out after. Post the pseudo code, and I'll gladly teach you the Ada.




^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: Word counting
@ 2003-12-11 22:53 amado.alves
  0 siblings, 0 replies; 13+ messages in thread
From: amado.alves @ 2003-12-11 22:53 UTC (permalink / raw)
  To: comp.lang.ada@ada.eu.org

<<package Word_Parser is...>>

Good David doesn't have a nose for homework :-)




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-11 22:01 wave
  2003-12-11 22:45 ` David C. Hoos
@ 2003-12-12  1:17 ` Jeffrey Carter
  2003-12-12  3:22 ` Steve
  2003-12-12 14:33 ` Martin Krischik
  3 siblings, 0 replies; 13+ messages in thread
From: Jeffrey Carter @ 2003-12-12  1:17 UTC (permalink / raw)


wave wrote:

> I'm trying to read a file of which each sentence consists of a line of
> words, separated obviously by one or more blank spaces. I'm trying to
> get it to read these lines of the file and count the number of words
> that have one letter, two letters, and so on, up to a maximum of
> fifteen letters.

If this isn't homework, you could use PragmARC.Word_Input, which reads a 
text file a word at a time:

http://home.earthlink.net/~jrcarter010/pragmarc.htm

-- 
Jeff Carter
"Sir Lancelot saves Sir Gallahad from almost certain temptation."
Monty Python & the Holy Grail
69




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
@ 2003-12-12  2:39 ada_wizard
  2003-12-12  9:49 ` wave
  0 siblings, 1 reply; 13+ messages in thread
From: ada_wizard @ 2003-12-12  2:39 UTC (permalink / raw)
  To: comp.lang.ada

MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: Internet Messaging Program (IMP) 3.2.1

mutilation@bonbon.net (wave) writes:

> I'm extremely new to ada after coding in a handful of newer
> languages such as PHP and the like. I'm having some difficulties
> with a program I am trying to design using the various functions
> available to me.

Welcome to the One True Language :).

> I'm trying to read a file of which each sentence consists of a line of
> words, separated obviously by one or more blank spaces. I'm trying to
> get it to read these lines of the file and count the number of words
> that have one letter, two letters, and so on, up to a maximum of
> fifteen letters.
> 
>    Max_Chars    :          Integer := 100;  
>    Max_Words    : constant Integer := 15;  
>    Max_Word_Len : constant Integer := 20;  

These make sense.

>    Position,  
>    Number   : Integer := 1;  
>    Length,  
>    Counted_Words : Integer := 0;  

These too.

>    Current_Line : String (1 .. Max_Chars);  
> 
>    type Words_Of_Length is array (Integer range 1 .. 10) of Integer; 
>    type Word_Count_Line is array (Integer range 1 .. 10) of Integer; 
>    Word_Count : Word_Count_Line;  
>    Word_Length : Words_Of_Length;  

Now you've lost me. What is stored in Word_Length (1)? the number of
words of length one? It will help you (as well as me) to say that in a
clear comment.

> begin
> 
>    while (not End_Of_File) loop

the parens are not necessary, and give away that you are used to C :).

>       Position := 1;
>       Get_Line(Current_Line,Length);
> 
>       for Position in 1..Length loop
>          if (Current_Line(Position) = ' ')  then
>             Word_Length(Number) := Word_Length(Number) + 1;

Since this logic does not depend on Position, I can't see that it does
anything useful. 

> <snip rest of program>
> 
> I appreciate any feedback you could give me on this, as it's really
> been annoying me.

What does it do that you did not expect? I know "it doesn't work", but
can you be more specific?

Show an example input, and say what output you expected. 

Process the example input yourself, following your code. That will
help you figure out what it should do, and why it isn't doing it.

In general, your code is fairly good style.

Hope to hear more from you,

-- 
-- Stephe

___________________________________________________________
This mail sent using ToadMail -- Web based e-mail @ ToadNet



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-11 22:01 wave
  2003-12-11 22:45 ` David C. Hoos
  2003-12-12  1:17 ` Jeffrey Carter
@ 2003-12-12  3:22 ` Steve
  2003-12-12 14:33 ` Martin Krischik
  3 siblings, 0 replies; 13+ messages in thread
From: Steve @ 2003-12-12  3:22 UTC (permalink / raw)


The code does not handle a few cases.
Ask yourself:
  What happens if the first character in a line is a space?
  What happens if the last character in the line is not a space?
  What happens when two consecutive characters are spaces?

There is one other thing that might catch you as well.  The Text_Io package
in Ada likes to have lines terminated properly.  If the last line isn't
terminated properly you'll get an End_Error exception.  When this happens
you'll need to do something to handle the text even though an exception
occurred.

BTW: Is this a homework assignment?

I hope this helps,
Steve
(The Duck)

"wave" <mutilation@bonbon.net> wrote in message
news:4d01ad29.0312111401.32ec5297@posting.google.com...
[snip]
> I'm trying to read a file of which each sentence consists of a line of
> words, separated obviously by one or more blank spaces. I'm trying to
> get it to read these lines of the file and count the number of words
> that have one letter, two letters, and so on, up to a maximum of
> fifteen letters.
>
[snip]
>
>    Max_Chars    :          Integer := 100;
>    Max_Words    : constant Integer := 15;
>    Max_Word_Len : constant Integer := 20;
>
>    Position,
>    Number   : Integer := 1;
>    Length,
>    Counted_Words : Integer := 0;
>
>    Current_Line : String (1 .. Max_Chars);
>
>    type Words_Of_Length is array (Integer range 1 .. 10) of Integer;
>    type Word_Count_Line is array (Integer range 1 .. 10) of Integer;
>    Word_Count : Word_Count_Line;
>    Word_Length : Words_Of_Length;
>
> begin
>
>    while (not End_Of_File) loop
>
>       Position := 1;
>       Get_Line(Current_Line,Length);
>
>       for Position in 1..Length loop
>          if (Current_Line(Position) = ' ')  then
>             Word_Length(Number) := Word_Length(Number) + 1;
>             Number := Number + 1;
>             Counted_Words := Counted_Words + 1;
>          end if;
>
>             Put(Current_Line(Position));
>
>       end loop;
>    end loop;
>
>    Put("Counted words: " & Integer'Image(Counted_Words));
>    New_Line(5);
>
>    for Index in 1..10 loop
>       Put(Integer'Image(Index) & " " &
> Integer'Image(Word_Length(Index)));
>       New_Line;
>    end loop;
>
>    New_Line(5);
>
> end;
>
>
> I appreciate any feedback you could give me on this, as it's really
> been annoying me.
>
>
>
> Cheers,
>
> Mut.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-12  2:39 ada_wizard
@ 2003-12-12  9:49 ` wave
  2003-12-12 18:26   ` Jeffrey Carter
  2003-12-13  3:40   ` Steve
  0 siblings, 2 replies; 13+ messages in thread
From: wave @ 2003-12-12  9:49 UTC (permalink / raw)


Hello again, christ six replies already :)

I appreciate the feedback so far, and realise that the program I gave
was a pretty poor attempt at the problem at hand. After a while
though, of messing about with it, I got tired and just decided to post
the result I had so far.

I'll try and respond to all your questions rather than quoting you
all, bear with me though if I miss someone. All of your help is
appreciated.

Regarding the case if this is homework or not, I understand you
people's stance on this. But you can rest, it is not, but an exercise
in reading from files. I've been attempting similar programs such as
extracting specific text from programs separated by comma values and
other such spaces.

It's not going very well, if you can tell :)
I'm missing my fopen commands and tokenize functions from PHP!


Anyway, I've taken most of your advice and I've rethought the pseudo
code for the program.

While not the end of the file
	Read the next line from the file
	Move the cursor one place and if character is within a..Z boundaries
that character is stored in an array word_length(number) for that word
length
	if the chracter is a space, then we've hit the end of that word
length so increment our word length to search for by 1 (number). we've
also hit the end of a word to increment our word count.
End of loop;

Loop through our array elements and hopefully we'll have the words
with each corresponding length and their numbers.

This coded correctly, with the input:

This is an example input file 
it should hopefully work correctly 
but we'll see in a minute.

should hopefully give us something like:
(minus the formatting)

ie words of length 1 / 2 / 3 / 4 / 5 / 6
				:  1 / 4 / 2 / 3 / 1 / 2


I realise this is a complete mess and I'm thinking about scrapping the
whole thing and starting again. For some reason I'm not managing to
get my head around it and I'm unsure why.

I appreciate your patience up to this far.

Cheers again,
Mut.



^ permalink raw reply	[flat|nested] 13+ messages in thread

* RE: Word counting
@ 2003-12-12 12:56 amado.alves
  0 siblings, 0 replies; 13+ messages in thread
From: amado.alves @ 2003-12-12 12:56 UTC (permalink / raw)
  To: comp.lang.ada

<<
While not the end of the file
        Read the next line from the file
        Move the cursor one place and if character is within a..Z boundaries
that character is stored in an array word_length(number) for that word
length
        if the chracter is a space, then we've hit the end of that word
length so increment our word length to search for by 1 (number). we've
also hit the end of a word to increment our word count.
End of loop;
>>
 
This logic still has faults. Consider:
 
LET WORD_COUNT BE AN ARRAY OF MAX_LENGTH INTEGERS, ALL SET TO ZERO
While not the end of the file
        Read the next line from the file
        LOOP
             GET NEXT WORD
             IF NONE, EXIT LOOP
             INCREMENT WORD_COUNT (LENGTH OF WORD) BY 1
        END OF LOOP
End of loop;

When you see the prior faults and how they were solved here call back.
 



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-11 22:01 wave
                   ` (2 preceding siblings ...)
  2003-12-12  3:22 ` Steve
@ 2003-12-12 14:33 ` Martin Krischik
  3 siblings, 0 replies; 13+ messages in thread
From: Martin Krischik @ 2003-12-12 14:33 UTC (permalink / raw)


wave wrote:

>       Get_Line(Current_Line,Length);

http://adacl.sourceforge.net/html/______Include__AdaCL-Strings-IO__adb.htm

If it is homework read very carfuly,  your teacher might ask you how it
works ;-).

With Regards

Martin

-- 
mailto://krischik@users.sourceforge.net
http://adacl.sourceforge.net




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-12  9:49 ` wave
@ 2003-12-12 18:26   ` Jeffrey Carter
  2003-12-13  3:40   ` Steve
  1 sibling, 0 replies; 13+ messages in thread
From: Jeffrey Carter @ 2003-12-12 18:26 UTC (permalink / raw)


wave wrote:

> It's not going very well, if you can tell :)
> I'm missing my fopen commands and tokenize functions from PHP!

Have you looked at operations such as Find_Token, Count, and Index in 
Ada.Strings.Fixed?

Looking at your example I see the following words (non-whitespace 
surrounded by whitespace):

a

1 word of length 1

is
an
it
in

4 words of length 2

but
see

2 words of length 3

This
file
work

3 words of length 4

input
we'll

2 words of length 5

should

1 word of length 6

example
minute.

2 words of length 7

0 words of length 8

hopefully
correctly

2 words of length 9

This doesn't agree with your expected results of 1 / 4 / 2 / 3 / 1 / 2. 
Perhaps if you can decide what your requirements are, you'll find it 
easier to fulfill them.

-- 
Jeff Carter
"C++ is like giving an AK-47 to a monk, shooting him
full of crack and letting him loose in a mall and
expecting him to balance your checking account
'when he has the time.'"
Drew Olbrich
52




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-12  9:49 ` wave
  2003-12-12 18:26   ` Jeffrey Carter
@ 2003-12-13  3:40   ` Steve
  2003-12-13  6:09     ` tmoran
  1 sibling, 1 reply; 13+ messages in thread
From: Steve @ 2003-12-13  3:40 UTC (permalink / raw)


"wave" <mutilation@bonbon.net> wrote in message
news:4d01ad29.0312120149.ddda940@posting.google.com...
> Hello again, christ six replies already :)
>
> Anyway, I've taken most of your advice and I've rethought the pseudo
> code for the program.
>
> While not the end of the file
> Read the next line from the file
> Move the cursor one place and if character is within a..Z boundaries
> that character is stored in an array word_length(number) for that word
> length
> if the chracter is a space, then we've hit the end of that word
> length so increment our word length to search for by 1 (number). we've
> also hit the end of a word to increment our word count.
> End of loop;
>
Here's the way I would pseudo code this (I don't think yours quite works).

  While its not the end of the file
    Read a line from the file
    Initialize "current number of characters in word" to 0
    For each character in the line loop
    If a character is a space
      If the current number of characters in word is > 0
        Increment the length count using the current number of characters in
word
        Set the current number of characters in word to 0
      End If
    else
      Increment the current number of characters in word
    end if
    End Loop
    If the current number of characters in word is > 0
      Increment the length count using the current number of characeter in
word
    End If
  End While

I coded this logic in Ada and it appears to work.
Your original code didn't initialize the array of counts (GNAT warned about
this).

BTW: This was more of an algorithm question than an Ada question.  I'll
leave the coding up to you.

Steve
(The Duck)

>
> I realise this is a complete mess and I'm thinking about scrapping the
> whole thing and starting again. For some reason I'm not managing to
> get my head around it and I'm unsure why.
>
> I appreciate your patience up to this far.
>
> Cheers again,
> Mut.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Word counting
  2003-12-13  3:40   ` Steve
@ 2003-12-13  6:09     ` tmoran
  0 siblings, 0 replies; 13+ messages in thread
From: tmoran @ 2003-12-13  6:09 UTC (permalink / raw)


You need to read in a line.
You want to scan the line, including just off both ends,
looking for word/non-word transitions.
On the non-word => word transitions, you want to note the start of the word.
On the word => non-word transitions, you want to see how long it's been
since the last non-word => word transition,
and increment a counter for that length.

--You need to read in a line.
  Line : String(1 .. 80);
  Last : Natural;
  --You want to scan the line, including just off both ends,
  --looking for word/non-word transitions.
  Currently_In_Word: Boolean;
  --On the non-word => word transitions, you want to note the start of the word.
  Start_Index: Positive;
  --On the word => non-word transitions, you want to see how long it's been
  --since the last non-word => word transition,
  Length  : Integer range Line'range;
  --and increment a counter for that length.
  Counter : array (Line'range) of Natural := (others => 0);
begin
  while not Ada.Text_Io.End_Of_File loop
    --You need to read in a line.
    Ada.Text_Io.Get_Line(Line, Last);
    Currently_In_Word := False;
    --You want to scan the line
    for I in 0 .. Last + 1 loop
      --looking for word/non-word transitions.
      if (I in 1 .. Last and then Line(I) /= ' ') then
        if not Currently_In_Word then
          --On the non-word => word transitions,
          Currently_In_Word := True;
          --you want to note the start of the word.
          Start_Index := I;
        end if;
      else
        if Currently_In_Word then
          --On the word => non-word transitions,
          Currently_In_Word := False;
          --you want to see how long it's been since the last non-word => word
          --transition,
          Length := I - Start_Index;
          --and increment a counter for that length.
          Counter(Length) := Counter(Length) + 1;
        end if;
      end if;
    end loop;
  end loop;



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2003-12-13  6:09 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-11 22:47 Word counting amado.alves
  -- strict thread matches above, loose matches on Subject: below --
2003-12-12 12:56 amado.alves
2003-12-12  2:39 ada_wizard
2003-12-12  9:49 ` wave
2003-12-12 18:26   ` Jeffrey Carter
2003-12-13  3:40   ` Steve
2003-12-13  6:09     ` tmoran
2003-12-11 22:53 amado.alves
2003-12-11 22:01 wave
2003-12-11 22:45 ` David C. Hoos
2003-12-12  1:17 ` Jeffrey Carter
2003-12-12  3:22 ` Steve
2003-12-12 14:33 ` Martin Krischik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox