Author: obnox
Date: 2007-06-08 14:29:30 +0000 (Fri, 08 Jun 2007)
New Revision: 23388

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23388

Log:
Start merging the newer registry code.

I found some checkins that apply almost seamlessly: 
r19837, r19838, r19839
There is not much flesh to these. - Inteded do reduce 
the diff for subsequent merges.

* reformat some long lines 
* in regdb_store_keys(), delete value record too when deleting 
  old keys, otherwise the old values will pop up again when
  re-creating the key.

Michael


Modified:
   branches/SAMBA_3_0_26/source/registry/reg_db.c


Changeset:
Modified: branches/SAMBA_3_0_26/source/registry/reg_db.c
===================================================================
--- branches/SAMBA_3_0_26/source/registry/reg_db.c      2007-06-08 12:32:13 UTC 
(rev 23387)
+++ branches/SAMBA_3_0_26/source/registry/reg_db.c      2007-06-08 14:29:30 UTC 
(rev 23388)
@@ -396,7 +396,8 @@
        REGSUBKEY_CTR *subkeys, *old_subkeys;
        char *oldkeyname;
        
-       /* fetch a list of the old subkeys so we can determine if any were 
deleted */
+       /* fetch a list of the old subkeys so we can determine if any were
+        * deleted */
        
        if ( !(old_subkeys = TALLOC_ZERO_P( ctr, REGSUBKEY_CTR )) ) {
                DEBUG(0,("regdb_store_keys: talloc() failure!\n"));
@@ -408,7 +409,8 @@
        /* store the subkey list for the parent */
        
        if ( !regdb_store_keys_internal( key, ctr ) ) {
-               DEBUG(0,("regdb_store_keys: Failed to store new subkey list for 
parent [%s}\n", key ));
+               DEBUG(0,("regdb_store_keys: Failed to store new subkey list "
+                        "for parent [%s]\n", key ));
                return False;
        }
        
@@ -421,6 +423,10 @@
                        pstr_sprintf( path, "%s%c%s", key, '/', oldkeyname );
                        normalize_reg_path( path );
                        tdb_delete_bystring( tdb_reg, path );
+                       pstr_sprintf( path, "%s/%s/%s", VALUE_PREFIX, key,
+                                     oldkeyname );
+                       normalize_reg_path( path );
+                       tdb_delete_bystring( tdb_reg, path );
                }
        }
 
@@ -430,7 +436,8 @@
        
        num_subkeys = regsubkey_ctr_numkeys( ctr );
        for ( i=0; i<num_subkeys; i++ ) {
-               pstr_sprintf( path, "%s%c%s", key, '/', 
regsubkey_ctr_specific_key( ctr, i ) );
+               pstr_sprintf( path, "%s%c%s", key, '/',
+                             regsubkey_ctr_specific_key( ctr, i ) );
 
                if ( !(subkeys = TALLOC_ZERO_P( ctr, REGSUBKEY_CTR )) ) {
                        DEBUG(0,("regdb_store_keys: talloc() failure!\n"));
@@ -440,7 +447,8 @@
                if ( regdb_fetch_keys( path, subkeys ) == -1 ) {
                        /* create a record with 0 subkeys */
                        if ( !regdb_store_keys_internal( path, subkeys ) ) {
-                               DEBUG(0,("regdb_store_keys: Failed to store new 
record for key [%s}\n", path ));
+                               DEBUG(0,("regdb_store_keys: Failed to store "
+                                        "new record for key [%s]\n", path ));
                                TALLOC_FREE( subkeys );
                                return False;
                        }

Reply via email to