+++ /dev/null
-/*
- * Copyright © 2006 Carl Worth
- *
- * This program is free software; you can redistribute it and\/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
- */
-
-#ifndef _DICT_IMPL_H_
-#define _DICT_IMPL_H_
-
-#include <stdint.h>
-
-#ifndef FALSE
-# define FALSE 0
-#endif
-
-#ifndef TRUE
-# define TRUE 1
-#endif
-
-typedef int bool_t;
-
-typedef struct _string {
-    size_t size;
-    char *s;
-    size_t len;
-} string_t;
-
-void
-string_init (string_t *string);
-
-void
-string_fini (string_t *string);
-
-void
-string_append_char (string_t *string, char c);
-
-void
-string_chop (string_t *string);
-
-void
-chomp (char *s);
-
-#define TRIE_FLAGS_IS_WORD     (1<<0)
-
-typedef struct _trie {
-    uint32_t flags;
-    struct _trie *next[26];
-} trie_t;
-
-typedef bool_t
-(*trie_predicate_t) (trie_t *trie);
-
-#define TRIE_CHAR_TO_INDEX(c)  (tolower (c) - 'a')
-#define TRIE_INDEX_TO_CHAR(i)  (i + 'a')
-
-trie_t *
-trie_create (void);
-
-void
-trie_add (trie_t       *trie,
-         const char    *word_chunk);
-
-trie_t *
-trie_find (trie_t      *trie,
-          const char   *word_chunk);
-
-#endif /* _DICT_IMPL_H_ */
 
 
 #include "dict.h"
 
+typedef struct _string {
+    size_t size;
+    char *s;
+    size_t len;
+} string_t;
+
+#define TRIE_FLAGS_IS_WORD     (1<<0)
+
+typedef bool_t
+(*trie_predicate_t) (trie_t *trie);
+
+#define TRIE_CHAR_TO_INDEX(c)  (tolower (c) - 'a')
+#define TRIE_INDEX_TO_CHAR(i)  (i + 'a')
+
 void *
 xmalloc (size_t size)
 {
 chomp (char *s)
 {
     int len = strlen (s);
+    if (len == 0)
+       return;
     if (s[len - 1] == '\n')
        s[len - 1] = '\0';
 }
 
        sprintf (prompt, "%02d:%02d ", minutes, seconds);
        response = readline (prompt);
        add_history (response);
-       chomp (response);
        if (strlen (response) == 0) {
            board_print (&board);
        } else {
            dict_entry_t *entry;
+           if (response[strlen (response) - 1] == '\n')
+               response[strlen (response) - 1] = '\0';
            entry = dict_lookup (&solution, response);
            if (DICT_ENTRY_IS_WORD (entry)) {
                if (*entry & GRID_WORD_SEEN)