[70423] branches/gsoc10-configfiles/base/src

and.damore at macports.org and.damore at macports.org
Mon Aug 9 03:28:53 PDT 2010


Revision: 70423
          http://trac.macports.org/changeset/70423
Author:   and.damore at macports.org
Date:     2010-08-09 03:28:49 -0700 (Mon, 09 Aug 2010)
Log Message:
-----------
working md5 storage, code is full of DBG printf()

Modified Paths:
--------------
    branches/gsoc10-configfiles/base/src/cregistry/entry.c
    branches/gsoc10-configfiles/base/src/port1.0/portinstall.tcl
    branches/gsoc10-configfiles/base/src/registry2.0/entryobj.c

Modified: branches/gsoc10-configfiles/base/src/cregistry/entry.c
===================================================================
--- branches/gsoc10-configfiles/base/src/cregistry/entry.c	2010-08-09 09:16:39 UTC (rev 70422)
+++ branches/gsoc10-configfiles/base/src/cregistry/entry.c	2010-08-09 10:28:49 UTC (rev 70423)
@@ -872,26 +872,39 @@
  * @param [out] errPtr    on error, a description of the error that occurred
  * @return                true if success; false if failure
  */
-int reg_entry_map_with_md5(reg_entry* entry, char** files, char** md5sums, int arg_count,
-        reg_error* errPtr) {
+int reg_entry_map_with_md5(reg_entry* entry, char** files, char** md5sums,
+        int arg_count, reg_error* errPtr) {
     reg_registry* reg = entry->reg;
     int result = 1;
     sqlite3_stmt* stmt = NULL;
-    char* insert = "INSERT INTO registry.files (id, path, mtime, active, md5sum) "
-        "VALUES (?, ?, 0, 0, ?)";
-    /*  sqlite3_prepare() is documented as legacy, http://www.sqlite.org/c3ref/step.html
-        use sqlite3_prepare_v2() should be used instead */
+    char* insert = "INSERT INTO registry.files "
+        "(id, path, mtime, active, md5sum) VALUES (?, ?, 0, 0, ?)";
+        
+    printf("GSOCDBG: \tentered reg_entry_map_with_md5\n");
+    printf("GSOCDBG: \t\targ_count:%d\n",arg_count);
+    /*  sqlite3_prepare() is documented as legacy, 
+        cf. http://www.sqlite.org/c3ref/step.html
+        sqlite3_prepare_v2() should be used instead */
     if ((sqlite3_prepare(reg->db, insert, -1, &stmt, NULL) == SQLITE_OK)
             && (sqlite3_bind_int64(stmt, 1, entry->id) == SQLITE_OK)) {
         int i;
-        for (i=0; i<(arg_count/2) && result; i++) {
+        printf("GSOCDBG: \tlet's print files[] and md5sums[]\n");
+        for (i=0; i<arg_count; i++) {
+            printf("GSOCDBG: \t\tfiles[%d]:\"%s\"\n",i,files[i]);
+            printf("GSOCDBG: \t\tmd5sums[%d]:\"%s\"\n",i,md5sums[i]);
+        }
+        printf("GSOCDBG: \t\tentering the for loop\n");
+            for (i=0; (i<arg_count) && result; i++) {
+            printf("GSOCDBG: \t\tloop iteration:%d\n",i);
             /*  cycles through files[] array of strings,
                 the if argument parse a file from the array and put in into
                 the SQL statement */
             if (sqlite3_bind_text(stmt, 2, files[i], -1, SQLITE_STATIC)
                     == SQLITE_OK) {
+                printf("GSOCDBG: \t\t\tinside first if branch\n");
                 if (sqlite3_bind_text(stmt, 3, md5sums[i], -1, SQLITE_STATIC)
                         == SQLITE_OK) {
+                    printf("GSOCDBG: \t\t\tinside second if branch\n");
                     int r;
                     do {
                         r = sqlite3_step(stmt);
@@ -917,6 +930,7 @@
         reg_sqlite_error(reg->db, errPtr, insert);
         result = 0;
     }
+    printf("GSOCDBG: \texiting reg_entry_map_with_md5\n");
     if (stmt) {
         sqlite3_finalize(stmt);
     }

Modified: branches/gsoc10-configfiles/base/src/port1.0/portinstall.tcl
===================================================================
--- branches/gsoc10-configfiles/base/src/port1.0/portinstall.tcl	2010-08-09 09:16:39 UTC (rev 70422)
+++ branches/gsoc10-configfiles/base/src/port1.0/portinstall.tcl	2010-08-09 10:28:49 UTC (rev 70423)
@@ -198,7 +198,16 @@
             
             if {[info exists installPlist]} {
                 # register files
-                $regref map_with_md5 $installPlist
+                set installPlistWithMD5 [list]
+                foreach file $installPlist {
+                    lappend installPlistWithMD5 $file
+                    if {[catch {md5 file "$imagedir$file"} md5sum] == 0} {
+                        lappend installPlistWithMD5 $md5sum
+                    }
+                }    
+                #puts "installPlist:$installPlist"
+                puts "installPlistWithMD5:$installPlistWithMD5"
+                $regref map_with_md5 "$installPlistWithMD5"
             }
             
             # store portfile

Modified: branches/gsoc10-configfiles/base/src/registry2.0/entryobj.c
===================================================================
--- branches/gsoc10-configfiles/base/src/registry2.0/entryobj.c	2010-08-09 09:16:39 UTC (rev 70422)
+++ branches/gsoc10-configfiles/base/src/registry2.0/entryobj.c	2010-08-09 10:28:49 UTC (rev 70423)
@@ -159,7 +159,7 @@
 static int entry_obj_filemap_with_md5(Tcl_Interp* interp, reg_entry* entry, int objc,
         Tcl_Obj* CONST objv[]) {
     reg_registry* reg = registry_for(interp, reg_attached);
-    printf("GSOCDBG: we're into entry_obj_filemap_with_md5\n");
+    printf("GSOCDBG: entering entry_obj_filemap_with_md5\n");
     if (objc != 3) {
         Tcl_WrongNumArgs(interp, 2, objv, "map {file md5checksum}-list");
         return TCL_ERROR;
@@ -174,33 +174,46 @@
         int listc;
         int result = TCL_ERROR;
         int i;
+        int list_counter;
 
         if (Tcl_ListObjGetElements(interp, objv[2], &listc, &listv) != TCL_OK) {
             return TCL_ERROR;
         }
-        files=malloc(listc*sizeof(char *));
-        md5sums=malloc(listc*sizeof(char*));
+        
+        printf("GSOCDBG: size of list %d\n", listc);
         /*  remember to add check for malloc return values */
-        for (i = 0; i < listc; i++) { 
+        files=malloc((listc/2)*sizeof(char *));
+        md5sums=malloc((listc/2)*sizeof(char*));
+        
+        printf("GSOCDBG: for loop\n");
+        /*  fill in files[] and md5sums[] */
+        for (i=0; i<listc; i+=2) { 
+            list_counter=i/2;
+            /*if (Tcl_ListObjLength(interp, listv[i], &length) != TCL_OK) {
+                free(files); free(md5sums); return TCL_ERROR; } */
+            printf("GSOCDBG: \titem %d\n", list_counter); 
+            element=NULL;
             if (Tcl_ListObjIndex(interp, listv[i], 0, &element) != TCL_OK) {
                 free(files); free(md5sums); return TCL_ERROR; } 
-            else if(element != NULL)
-                files[i] = Tcl_GetString(element);
+            else if (element == NULL) {
+                Tcl_SetErrorCode(interp, "illegal input", NULL); return TCL_ERROR; }
             else {
+                files[list_counter] = Tcl_GetString(element);
+                printf("GSOCDBG: \t\tfiles[%d]=\"%s\"\n", list_counter, files[list_counter]); }
+            element=NULL;
+            if (Tcl_ListObjIndex(interp, listv[i+1], 0, &element) != TCL_OK) {
+                free(files); free(md5sums); return TCL_ERROR; } 
+            else if (element == NULL) {
                 Tcl_SetErrorCode(interp, "illegal input", NULL); return TCL_ERROR; }
-
-            if (Tcl_ListObjIndex(interp, listv[i], 1, &element) != TCL_OK) {
-                free(files); free(md5sums); return TCL_ERROR; } 
-            else if(element != NULL)
-                md5sums[i] = Tcl_GetString(element); 
             else {
-                Tcl_SetErrorCode(interp, "illegal input", NULL); return TCL_ERROR; }
+                md5sums[list_counter] = Tcl_GetString(element);
+                printf("GSOCDBG: \t\tmd5sums[%d]=\"%s\"\n", list_counter, md5sums[list_counter]); }
         }
         
         /*  change the condition, */
         /*  it used to be list_obj_to_string() but now we're filling arrays by hand  */
         if ( 1 ) {
-            if (reg_entry_map_with_md5(entry, files, md5sums, listc, &error)) {
+            if (reg_entry_map_with_md5(entry, files, md5sums, listc/2, &error)) {
                 result = TCL_OK;
             } else {
                 result = registry_failed(interp, &error);
@@ -214,6 +227,7 @@
             result = registry_failed(interp, &error);
         }
         */
+        printf("GSOCDBG: exiting entry_obj_filemap_with_md5\n");
         return result;
     }
 }
@@ -469,6 +483,7 @@
 int entry_obj_cmd(ClientData clientData, Tcl_Interp* interp, int objc,
         Tcl_Obj* CONST objv[]) {
     int cmd_index;
+    int len=0;
     if (objc < 2) {
         Tcl_WrongNumArgs(interp, 1, objv, "cmd ?arg ...?");
         return TCL_ERROR;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100809/dcb55d03/attachment-0001.html>


More information about the macports-changes mailing list