From 5bf996f52eed133b56a9488054ec5346bc50f14c Mon Sep 17 00:00:00 2001
From: Peter Philipp <peter.philipp@cando-image.com>
Date: Thu, 11 Aug 2011 18:49:09 +0200
Subject: [PATCH] Fixes for feature enabling on installation and value comparison.

---
 strongarm.admin.inc |    6 +++---
 strongarm.module    |    5 +++--
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/strongarm.admin.inc b/strongarm.admin.inc
index 5481b15..e22aa16 100644
--- a/strongarm.admin.inc
+++ b/strongarm.admin.inc
@@ -21,14 +21,14 @@ function strongarm_admin_form($form_state) {
       else {
         $storage = t('Saved to DB');
       }
-      if ($variable->value != $default->value) {
+      if ($variable->value !== $default->value) {
         $storage = t('Overridden');
       }
       $hardcoded = FALSE;
 
       // If the variable is in the database and differs from its code value,
       // allow administrator to revert its value.
-      if (!$hardcoded && ($variable->export_type & EXPORT_IN_DATABASE) && ($variable->value != $default->value)) {
+      if (!$hardcoded && ($variable->export_type & EXPORT_IN_DATABASE) && ($variable->value !== $default->value)) {
         $form['revert']['#tree'] = TRUE;
         $form['revert'][$name]['revert'] = array('#type' => 'checkbox');
         $form['revert'][$name]['value'] = array('#type' => 'value', '#value' => $default->value);
@@ -42,7 +42,7 @@ function strongarm_admin_form($form_state) {
         $form['name'][$name] = array('#markup' => $info['title'] . '<br/>' . $name);
         $form['storage'][$name] = array('#markup' => $storage);
         $info['value'] = $variable->value;
-        $form['value'][$name] = array('#markup' => variable_format_value($info));        
+        $form['value'][$name] = array('#markup' => variable_format_value($info));
       }
       else {
         $form['name'][$name] = array('#markup' => $name);
diff --git a/strongarm.module b/strongarm.module
index f3daf0e..84930d5 100644
--- a/strongarm.module
+++ b/strongarm.module
@@ -115,7 +115,7 @@ if (!function_exists('variable_features_revert')) {
 
     $vars = strongarm_vars_load(TRUE, TRUE);
     foreach ($defaults as $name => $default) {
-      if (isset($default->in_code_only) || ($default->value != $vars[$name]->value)) {
+      if (isset($default->in_code_only) || ($default->value !== $vars[$name]->value)) {
         variable_set($name, $default->value);
       }
     }
@@ -135,9 +135,10 @@ function variable_features_rebuild($module) {
     return;
   }
 
+
   $vars = strongarm_vars_load(TRUE, TRUE);
   foreach ($defaults as $name => $default) {
-    if (isset($default->in_code_only)) {
+    if (isset($vars[$name]->in_code_only) || (drupal_installation_attempted() && $vars[$name]->export_type & EXPORT_IN_CODE)) {
       variable_set($name, $default->value);
     }
   }
-- 
1.7.3.1.msysgit.0

