I'm wondering how useful the hashing system can be ibn GLIB I tried this code, and it seems that instead of copying strings, it just copies the pointer value resulting in making it impossible to look through input and assigning it to key values, unless I'm doing something worng. This is just about useless
#include <stdio.h> #include <string.h> #include <glib.h> GHashTable * hTable; guint HashFunction(gpointer key){ char *sKey; guint giHashValue = 0; int nIndex; sKey = key; if(key == NULL) return(0); for (nIndex = 0; nIndex < strlen(sKey); nIndex++){ giHashValue = (giHashValue << 4) + (giHashValue ^(guint) sKey[nIndex]); } return (giHashValue); } gint HashCompare( gpointer sName1, gpointer sName2){ return (!strcmp((char *)sName1, (char *) sName2)); } void print_hash(gpointer key, gpointer value, gpointer otherdata){ g_print ("Key: %s ==> Value: %s\n", (gchar *) key, (gchar *) value); } int main(int argc, char *argv[]){ gchar buff_key[255]; gchar buff_val[255]; hTable = g_hash_table_new(HashFunction, HashCompare); while(1){ if(scanf("%255s", buff_key) < 1 ) break; if(scanf("%255s", buff_val)< 1) break; g_print("%s %s\n", buff_key, buff_val); g_hash_table_insert(hTable, buff_key, buff_val); } g_hash_table_foreach(hTable, (GHFunc) print_hash, NULL); exit(1); } ruben@www2:~/gtk > ./hash One Two One Two Three Four Three Four Five Six Five Six <CTR d> Key: Five ==> Value: Six Key: Five ==> Value: Six Key: Five ==> Value: Six If it doesn't work like strcpy, it doesn't do much. -- __________________________ Brooklyn Linux Solutions __________________________ http://www.mrbrklyn.com - Consulting http://www.brooklynonline.com - For the love of Brooklyn http://www.nylxs.com - Leadership Development in Free Software http://www.nyfairuse.org - The foundation of Democracy http://www2.mrbrklyn.com/resources - Unpublished Archive or stories and articles from around the net http://www2.mrbrklyn.com/mp3/dr.mp3 - Imagine my surprise when I saw you... http://www2.mrbrklyn.com/downtown.html - See the New Downtown Brooklyn.... 1-718-382-5752 _______________________________________________ gtk-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-list