Kaynağa Gözat

updated devel

Bachir Soussi Chiadmi 4 yıl önce
ebeveyn
işleme
5b116d4733
100 değiştirilmiş dosya ile 5313 ekleme ve 4729 silme
  1. 0 0
      sites/all/modules/contrib/dev/devel/LICENSE.txt
  2. 81 33
      sites/all/modules/contrib/dev/devel/README.txt
  3. 6 1
      sites/all/modules/contrib/dev/devel/devel-rtl.css
  4. 59 46
      sites/all/modules/contrib/dev/devel/devel.admin.inc
  5. 5 0
      sites/all/modules/contrib/dev/devel/devel.css
  6. 8 7
      sites/all/modules/contrib/dev/devel/devel.drush.inc
  7. 3 4
      sites/all/modules/contrib/dev/devel/devel.info
  8. 28 7
      sites/all/modules/contrib/dev/devel/devel.install
  9. 20 3
      sites/all/modules/contrib/dev/devel/devel.js
  10. 45 5
      sites/all/modules/contrib/dev/devel/devel.mail.inc
  11. 272 115
      sites/all/modules/contrib/dev/devel/devel.module
  12. 158 39
      sites/all/modules/contrib/dev/devel/devel.pages.inc
  13. 5 0
      sites/all/modules/contrib/dev/devel/devel.rules.inc
  14. 6 0
      sites/all/modules/contrib/dev/devel/devel.test
  15. 18 5
      sites/all/modules/contrib/dev/devel/develDrushTest.php
  16. 13 26
      sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.inc
  17. 3 4
      sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.info
  18. 11 6
      sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.module
  19. 11 11
      sites/all/modules/contrib/dev/devel/devel_generate/devel_generate_batch.inc
  20. 14 7
      sites/all/modules/contrib/dev/devel/devel_generate/file.devel_generate.inc
  21. 14 8
      sites/all/modules/contrib/dev/devel/devel_generate/image.devel_generate.inc
  22. 4 3
      sites/all/modules/contrib/dev/devel/devel_generate/text.devel_generate.inc
  23. 11 0
      sites/all/modules/contrib/dev/devel/devel_krumo.css
  24. 28 7
      sites/all/modules/contrib/dev/devel/devel_krumo.js
  25. 8 8
      sites/all/modules/contrib/dev/devel/devel_node_access.api.php
  26. 3 4
      sites/all/modules/contrib/dev/devel/devel_node_access.info
  27. 5 0
      sites/all/modules/contrib/dev/devel/devel_node_access.install
  28. 5 2
      sites/all/modules/contrib/dev/devel/devel_node_access.js
  29. 135 63
      sites/all/modules/contrib/dev/devel/devel_node_access.module
  30. 32 32
      sites/all/modules/contrib/dev/devel/krumo/INSTALL
  31. 504 504
      sites/all/modules/contrib/dev/devel/krumo/LICENSE
  32. 103 103
      sites/all/modules/contrib/dev/devel/krumo/README
  33. 24 24
      sites/all/modules/contrib/dev/devel/krumo/TODO
  34. 0 0
      sites/all/modules/contrib/dev/devel/krumo/VERSION
  35. 42 36
      sites/all/modules/contrib/dev/devel/krumo/class.krumo.php
  36. 268 267
      sites/all/modules/contrib/dev/devel/krumo/docs/Krumo/_class.krumo.php.html
  37. 901 900
      sites/all/modules/contrib/dev/devel/krumo/docs/Krumo/krumo.html
  38. 13 13
      sites/all/modules/contrib/dev/devel/krumo/docs/blank.html
  39. 22 21
      sites/all/modules/contrib/dev/devel/krumo/docs/classtrees_Krumo.html
  40. 394 392
      sites/all/modules/contrib/dev/devel/krumo/docs/elementindex.html
  41. 391 389
      sites/all/modules/contrib/dev/devel/krumo/docs/elementindex_Krumo.html
  42. 16 15
      sites/all/modules/contrib/dev/devel/krumo/docs/errors.html
  43. 24 24
      sites/all/modules/contrib/dev/devel/krumo/docs/index.html
  44. 156 155
      sites/all/modules/contrib/dev/devel/krumo/docs/li_Krumo.html
  45. 32 32
      sites/all/modules/contrib/dev/devel/krumo/docs/media/banner.css
  46. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractClass.png
  47. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractClass_logo.png
  48. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractMethod.png
  49. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractPrivateClass.png
  50. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractPrivateClass_logo.png
  51. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractPrivateMethod.png
  52. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Class.png
  53. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Class_logo.png
  54. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Constant.png
  55. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Constructor.png
  56. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Destructor.png
  57. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Function.png
  58. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Global.png
  59. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/I.png
  60. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Index.png
  61. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Interface.png
  62. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/L.png
  63. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Lminus.png
  64. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Lplus.png
  65. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Method.png
  66. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Page.png
  67. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Page_logo.png
  68. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateClass.png
  69. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateClass_logo.png
  70. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateMethod.png
  71. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateVariable.png
  72. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/T.png
  73. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Tminus.png
  74. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Tplus.png
  75. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Variable.png
  76. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/blank.png
  77. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/class_folder.png
  78. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/empty.png
  79. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/file.png
  80. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/folder.png
  81. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/function_folder.png
  82. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/minus.gif
  83. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/next_button.png
  84. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/next_button_disabled.png
  85. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/package.png
  86. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/package_folder.png
  87. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/plus.gif
  88. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/previous_button.png
  89. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/previous_button_disabled.png
  90. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/private_class_logo.png
  91. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/tutorial.png
  92. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/tutorial_folder.png
  93. 0 0
      sites/all/modules/contrib/dev/devel/krumo/docs/media/images/up_button.png
  94. 454 454
      sites/all/modules/contrib/dev/devel/krumo/docs/media/lib/classTree.js
  95. 181 181
      sites/all/modules/contrib/dev/devel/krumo/docs/media/stylesheet.css
  96. 40 40
      sites/all/modules/contrib/dev/devel/krumo/docs/packages.html
  97. 50 49
      sites/all/modules/contrib/dev/devel/krumo/docs/ric_INSTALL.html
  98. 523 522
      sites/all/modules/contrib/dev/devel/krumo/docs/ric_LICENSE.html
  99. 122 121
      sites/all/modules/contrib/dev/devel/krumo/docs/ric_README.html
  100. 42 41
      sites/all/modules/contrib/dev/devel/krumo/docs/ric_TODO.html

+ 0 - 0
sites/all/modules/contrib/dev/devel/LICENSE.txt


+ 81 - 33
sites/all/modules/contrib/dev/devel/README.txt

@@ -1,13 +1,32 @@
-README.txt
-==========
+README.txt for Devel module
+---------------------------
 
-A module containing helper functions for Drupal developers and
-inquisitive admins. This module can print a log of
-all database queries for each page request at the bottom of each page. The
-summary includes how many times each query was executed on a page, and how long
-each query took.
+CONTENTS OF THIS FILE
+---------------------
 
- It also offers
+ * Introduction
+ * Requirements
+ * Included Modules and Features
+ * Recommended Modules
+ * Installation
+ * Compatibility Notes
+ * Maintainers
+
+INTRODUCTION
+------------
+
+A module containing helper functions for Drupal developers and inquisitive
+admins. This module can print a log of all database queries for each page
+request at the bottom of each page. The summary includes how many times each
+query was executed on a page, and how long each query took.
+
+ - For a full description of the module visit:
+   https://www.drupal.org/project/devel
+
+ - To submit bug reports and feature suggestions, or to track changes visit:
+   https://www.drupal.org/project/issues/devel
+
+It also offers
  - a block for running custom PHP on a page
  - a block for quickly accessing devel pages
  - a block for masquerading as other users (useful for testing)
@@ -15,45 +34,74 @@ each query took.
  - A mail-system class which redirects outbound email to files
  - more
 
- This module is safe to use on a production site. Just be sure to only grant
- 'access development information' permission to developers.
+This module is safe to use on a production site. Just be sure to only grant
+'access development information' permission to developers.
 
 Also a dpr() function is provided, which pretty prints arrays and strings.
 Useful during development. Many other nice functions like dpm(), dvm().
 
 AJAX developers in particular ought to install FirePHP Core from
-http://www.firephp.org/ and put it in the devel directory. You may
-use the devel-download drush command to download the library. If downloading by hand,
-your path to fb.php should look like devel/FirePHPCore/lib/FirePHPCore/fb.php.
-You can use svn checkout http://firephp.googlecode.com/svn/trunk/trunk/Libraries/FirePHPCore.
+http://www.firephp.org/ and put it in the devel directory. You may use the
+devel-download drush command to download the library. If downloading by hand,
+your path to fb.php should look like
+devel/FirePHPCore/lib/FirePHPCore/fb.php. You can use svn checkout
+http://firephp.googlecode.com/svn/trunk/trunk/Libraries/FirePHPCore.
 Then you can log php variables to the Firebug console. Is quite useful.
 
+
+REQUIREMENTS
+------------
+
+This module requires no modules outside of Drupal core.
+
+
+INCLUDED MODULES AND FEATURES
+-----------------------------
+
 Included in this package is also:
 
-- devel_node_access module which prints out the node_access records for a given node. Also offers hook_node_access_explain for all node access modules to implement. Handy.
-- devel_generate.module which bulk creates nodes, users, comment, terms for development.
+ - Devel Node Access module - Prints out the node_access records for a given
+   node. Also offers hook_node_access_explain for all node access modules to
+   implement. Handy.
+ - Devel Generate module - Bulk creates nodes, users, comment, terms for
+   development.
 
-Some nifty drush integration ships with devel and devel_generate. See drush help for details.
+Some nifty drush integration ships with Devel and Devel Generate. See drush help
+for details.
+
+DRUSH UNIT TEST - See develDrushTest.php for an example of unit testing of the
+Drush integration. This uses Drush's own test framework, based on PHPUnit. To
+run the tests, use
+phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc. Note that we must
+name a file under /tests there.
+
+
+RECOMMENDED MODULE
+------------------
+
+Devel Generate Extensions - Devel Images Provider allows to configure external
+providers for images.
+
+ - http://drupal.org/project/devel_image_provider
+
+
+INSTALLATION
+------------
+
+ - Install the Devel module as you would normally install a contributed Drupal
+   module. Visit https://www.drupal.org/node/895232 for further information.
 
-DEVEL GENERATE EXTENSIONS
-=========================
-Devel Images Provider [http://drupal.org/project/devel_image_provider] allows to configure external providers for images.
 
 COMPATIBILITY NOTES
-==================
+-------------------
+
 - Modules that use AHAH may have incompatibility with the query log and other
-  footer info. Consider setting $GLOBALS['devel_shutdown'] = FALSE if you run into
-  any issues.
+  footer info. Consider setting $GLOBALS['devel_shutdown'] = FALSE if you run
+  into any issues.
 
-DRUSH UNIT TEST
-==================
-See develDrushTest.php for an example of unit testing of the Drush integration.
-This uses Drush's own test framework, based on PHPUnit. To run the tests, use
-phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc. Note that we must name a file
-under /tests there.
 
 AUTHOR/MAINTAINER
-======================
--moshe weitzman <weitzman at tejasa DOT com>
-http://cyrve.com
-Hans Salvisberg <drupal at salvisberg DOT com>
+-----------------
+
+ - Moshe Weitzman (moshe weitzman) - https://www.drupal.org/u/moshe-weitzman
+ - Hans Salvisberg (salvis) - https://www.drupal.org/u/salvis

+ 6 - 1
sites/all/modules/contrib/dev/devel/devel-rtl.css

@@ -1,3 +1,8 @@
+/**
+ * @file
+ * Right-to-left styles for Devel.
+ */
+
 .dev-query, .dev-timer, .dev-memory-usage {
   align: left;
   direction: ltr;
@@ -5,4 +10,4 @@
 }
 .dev-query, .dev-timer, .dev-memory-usage table {
   direction: ltr;
-}
+}

+ 59 - 46
sites/all/modules/contrib/dev/devel/devel.admin.inc

@@ -1,6 +1,18 @@
 <?php
 
+/**
+ * @file
+ * Functions for Devel administrative pages.
+ */
+
+/**
+ * Form constructor for the settings form.
+ *
+ * @ingroup forms
+ */
 function devel_admin_settings() {
+  _devel_display_block_help_message();
+
   $form['queries'] = array('#type' => 'fieldset', '#title' => t('Query log'));
 
   $description = t('Display a log of the database queries needed to generate the current page, and the execution time for each. Also, queries which are repeated during a single page view are summed in the # column, and printed in red since they are candidates for caching.');
@@ -22,6 +34,12 @@ function devel_admin_settings() {
         ),
       ),
   );
+  $form['queries']['settings']['devel_show_query_args_first'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Show query arguments'),
+    '#default_value' => variable_get('devel_show_query_args_first', FALSE),
+    '#description' => t('Show arguments rather than the query placeholders in the logged query.'),
+  );
   $form['queries']['settings']['devel_query_sort'] = array('#type' => 'radios',
     '#title' => t('Sort query log'),
     '#default_value' =>   variable_get('devel_query_sort', DEVEL_QUERY_SORT_BY_SOURCE),
@@ -36,57 +54,13 @@ function devel_admin_settings() {
     '#description' => t('Enter an integer in milliseconds. Any query which takes longer than this many milliseconds will be highlighted in the query log. This indicates a possibly inefficient query, or a candidate for caching.'),
   );
 
-  $form['xhprof'] = array(
-    '#type' => 'fieldset',
-    '#title' => 'XHProf',
-    '#description' => t('XHProf is a php extension which is essential for profiling your Drupal site. It pinpoints slow functions, and also memory hogging functions.'),
-  );
-  $description = extension_loaded('xhprof') ? t('Profile requests with the xhprof php extension.') : '<span class="warning">' . t('You must enable the <a href="!url">xhprof php extension</a> to use this feature.', array('!url' => url('http://techportal.ibuildings.com/2009/12/01/profiling-with-xhprof/'))) . '</span>';
-  $form['xhprof']['devel_xhprof_enabled'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Enable profiling of all page views and <a href="!drush">drush</a> requests.', array('!drush' => url('http://drush.ws'))),
-    '#default_value' => variable_get('devel_xhprof_enabled', FALSE),
-    '#description' => $description,
-    '#disabled' => !extension_loaded('xhprof'),
-  );
-  $form['xhprof']['settings'] = array(
-    '#type' => 'container',
-    '#states' => array(
-      'invisible' => array(
-        'input[name="devel_xhprof_enabled"]' => array('checked' => FALSE),
-      ),
-    ),
-  );
-  $form['xhprof']['settings']['devel_xhprof_directory'] = array(
-    '#type' => 'textfield',
-    '#title' => 'xhprof directory',
-    '#description' => t('Location of the xhprof source code on your system, where the directory "xhprof_lib" can be found, usually somewhere in /usr/local/share or /usr/share, include the leading forward slash.'),
-    '#default_value' => variable_get('devel_xhprof_directory', ''),
-    '#states' => array(
-      'invisible' => array(
-        'input[name="devel_xhprof_enabled"]' => array('checked' => FALSE),
-      ),
-    ),
-  );
-  $form['xhprof']['settings']['devel_xhprof_url'] = array(
-    '#type' => 'textfield',
-    '#title' => 'XHProf URL',
-    '#description' => t('Path to the publically accessible xhprof_html - required to display profiler reports. You will need to set this up outside Drupal, for example at http://xhprof.localhost/xhprof_html'),
-    '#default_value' => variable_get('devel_xhprof_url', ''),
-    '#states' => array(
-      'invisible' => array(
-        'input[name="devel_xhprof_enabled"]' => array('checked' => FALSE),
-      ),
-    ),
-  );
-
   $form['devel_api_url'] = array('#type' => 'textfield',
     '#title' => t('API Site'),
     '#default_value' => variable_get('devel_api_url', 'api.drupal.org'),
     '#description' => t('The base URL for your developer documentation links. You might change this if you run <a href="!url">api.module</a> locally.', array('!url' => url('http://drupal.org/project/api'))));
-  $form['dev_timer'] = array('#type' => 'checkbox',
+  $form['devel_timer'] = array('#type' => 'checkbox',
     '#title' => t('Display page timer'),
-    '#default_value' => variable_get('dev_timer', 0),
+    '#default_value' => variable_get('devel_timer', 0),
     '#description' => t('Display page execution time in the query log box.'),
   );
 
@@ -161,6 +135,45 @@ function devel_admin_settings() {
   return system_settings_form($form);
 }
 
+/**
+ * Displays a helpful message if Menu module is not installed.
+ */
+function _devel_display_block_help_message() {
+  if (!module_exists('menu')) {
+    $devel_block_alert = t('Devel block alert: The Devel block requires the Core Menu module. The Devel block will become available once you <a href="!url">enable Menu</a>.',
+      array('!url' => url('admin/modules'))
+    );
+    $variables = array(
+      '!admin_menu_url' => url('https://drupal.org/project/admin_menu', array('external' => TRUE)),
+      '!admin_menu_name' => 'Administration Menu',
+      '!admin_menu_config_url' => url('admin/config/administration/admin_menu'),
+      '!icon_menu' => t('Icon menu'),
+    );
+    if (!module_exists('admin_menu')) {
+      $devel_block_alert .= '<br />' . t('Alternatively, you can install <a href="!admin_menu_url">!admin_menu_name</a> which supports displaying the Devel menu items in its !icon_menu.', $variables);
+    }
+    else {
+      $admin_menu_components = variable_get('admin_menu_components', array());
+      if (empty($admin_menu_components['admin_menu.icon']) || !user_access('access administration menu')) {
+        $devel_block_alert .= '<br />' . t("Alternatively, if you <a href='!admin_menu_config_url'>enable !admin_menu_name's !icon_menu</a> you will find the Devel menu items there.", $variables);
+      } else {
+        // Don't bother with a message in the 'normal' case.
+        return;
+      }
+    }
+    drupal_set_message($devel_block_alert, 'warning');
+  }
+}
+
+/**
+ * Demonstrates the active error handler.
+ *
+ * Generates some warnings or errors so that the reaction of the current error
+ * handler can be observed.
+ *
+ * @param $severity
+ *   The severity level that the error handler should demonstrate.
+ */
 function devel_demonstrate_error_handlers($severity) {
   switch ($severity) {
     case 'warning':

+ 5 - 0
sites/all/modules/contrib/dev/devel/devel.css

@@ -1,3 +1,8 @@
+/**
+ * @file
+ * Styles for elements created by Devel.
+ */
+
 .dev-query, .dev-timer, .dev-memory-usage {
   padding: 1em;
 }

+ 8 - 7
sites/all/modules/contrib/dev/devel/devel.drush.inc

@@ -64,7 +64,9 @@ function devel_drush_command() {
 }
 
 /**
- * A command callback. This is faster than 3 separate bootstraps.
+ * A command callback for reinstalling one or more projects.
+ *
+ * This is faster than 3 separate bootstraps.
  */
 function drush_devel_reinstall() {
   $projects = func_get_args();
@@ -80,7 +82,7 @@ function drush_devel_reinstall() {
 }
 
 /**
- * A command callback.
+ * A command callback for downloading a project.
  */
 function drush_devel_download($path = NULL) {
   // If no path is provided by the user, set our default path.
@@ -112,7 +114,7 @@ function drush_devel_download($path = NULL) {
 }
 
 /**
- * Command handler. Show hook implementations.
+ * A command handler for showing hook implementations.
  */
 function drush_devel_fn_hook($hook) {
   // Get implementations in the .install files as well.
@@ -130,7 +132,7 @@ function drush_devel_fn_hook($hook) {
 }
 
 /**
- * Command handler.  Show source code of specified function or method.
+ * A command handler for showing source code of a function or method.
  */
 function drush_devel_fn_view($function_name) {
   // Get implementations in the .install files as well.
@@ -159,7 +161,7 @@ function drush_devel_fn_view($function_name) {
 }
 
 /**
- * Command callback. List available tokens.
+ * A command callback for listing available tokens.
  */
 function drush_devel_token() {
   $rows[] = array(dt('Group'), dt('Token'), dt('Name'));
@@ -174,8 +176,7 @@ function drush_devel_token() {
 
 
 /**
- * Print the specified function, including any
- * doxygen-style comments that come before it.
+ * Prints a function including any Doxygen-style comments preceding it.
  */
 function _drush_devel_print_function($file, $start_line, $end_line) {
   $line_num = 0;

+ 3 - 4
sites/all/modules/contrib/dev/devel/devel.info

@@ -7,9 +7,8 @@ tags[] = developer
 files[] = devel.test
 files[] = devel.mail.inc
 
-; Information added by Drupal.org packaging script on 2014-05-01
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2019-02-22
+version = "7.x-1.7"
 core = "7.x"
 project = "devel"
-datestamp = "1398963366"
-
+datestamp = "1550852892"

+ 28 - 7
sites/all/modules/contrib/dev/devel/devel.install

@@ -32,7 +32,7 @@ function devel_enable() {
  */
 function devel_uninstall() {
   variable_del('devel_execution');
-  variable_del('dev_timer');
+  variable_del('devel_timer');
   variable_del('devel_query_display');
   variable_del('devel_redirect_page');
   variable_del('devel_api_url');
@@ -47,9 +47,6 @@ function devel_uninstall() {
   variable_del('devel_query_sort');
   variable_del('devel_rebuild_theme_registry');
   variable_del('devel_use_uncompressed_jquery');
-  variable_del('devel_xhprof_directory');
-  variable_del('devel_xhprof_enabled');
-  variable_del('devel_xhprof_url');
   variable_del('devel_debug_mail_file_format');
   variable_del('devel_debug_mail_directory');
 
@@ -62,7 +59,9 @@ function devel_uninstall() {
 }
 
 /**
- * Remove feature for storing queries. Cleanup deprecated tables and variables.
+ * Remove feature for storing queries.
+ *
+ * Cleanup deprecated tables and variables.
  */
 function devel_update_7000() {
   db_drop_table('devel_queries');
@@ -81,7 +80,7 @@ function devel_update_7001() {
 }
 
 /**
- * Remove deprecated variables - dev_query, devel_code_coverage
+ * Remove deprecated variables: dev_query, devel_code_coverage.
  */
 function devel_update_7002() {
   variable_del('dev_query'); // Sad trombone. http://drupalcode.org/viewvc/drupal/drupal/includes/database.mysql.inc?revision=1.2&view=markup
@@ -117,7 +116,9 @@ function devel_update_7004() {
 }
 
 /**
- * Delete variable 'devel_form_weights' from database as it was removed from code.
+ * Delete variable 'devel_form_weights'.
+ *
+ * 'devel_form_weights' was removed from code.
  */
 function devel_update_7005() {
   variable_del('devel_form_weights');
@@ -133,3 +134,23 @@ function devel_update_7006() {
 
   variable_del('dev_mem');
 }
+
+/**
+ * Delete 'devel_xhprof_*' variables as they were removed from code.
+ */
+function devel_update_7007() {
+  variable_del('devel_xhprof_directory');
+  variable_del('devel_xhprof_enabled');
+  variable_del('devel_xhprof_url');
+}
+
+/**
+ * Change variable "dev_timer" to "devel_timer".
+ */
+function devel_update_7008() {
+  if (variable_get('dev_timer') !== NULL) {
+    variable_set('devel_timer', variable_get('dev_timer'));
+  }
+
+  variable_del('dev_timer');
+}

+ 20 - 3
sites/all/modules/contrib/dev/devel/devel.js

@@ -1,6 +1,15 @@
+/**
+ * @file
+ * Behaviors for Devel.
+ */
+
 (function ($) {
 
-// Explain link in query log
+/**
+ * Explain link in query log.
+ *
+ * @type {Drupal~behavior}
+ */
 Drupal.behaviors.devel_explain = {
   attach: function(context, settings) {
     $('a.dev-explain').click(function () {
@@ -14,7 +23,11 @@ Drupal.behaviors.devel_explain = {
   }
 }
 
-// Arguments link in query log
+/**
+ * Arguments link in query log.
+ *
+ * @type {Drupal~behavior}
+ */
 Drupal.behaviors.devel_arguments = {
   attach: function(context, settings) {
     $('a.dev-arguments').click(function () {
@@ -28,7 +41,11 @@ Drupal.behaviors.devel_arguments = {
   }
 }
 
-// Placeholders link in query log
+/**
+ * Placeholders link in query log.
+ *
+ * @type {Drupal~behavior}
+ */
 Drupal.behaviors.devel_placeholders = {
   attach: function(context, settings) {
     $('a.dev-placeholders').click(function () {

+ 45 - 5
sites/all/modules/contrib/dev/devel/devel.mail.inc

@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @file
  * MailSystemInterface for logging mails to the filesystem.
@@ -16,8 +17,20 @@
  *
  */
 
+/**
+ * Logs mail messages to the filesystem.
+ */
 class DevelMailLog extends DefaultMailSystem {
 
+  /**
+   * Converts a message array to a string.
+   *
+   * @param $message
+   *   The message array containing the body and headers.
+   *
+   * @return
+   *   The message as it will be printed in the file.
+   */
   public function composeMessage($message) {
     $mimeheaders = array();
     $message['headers']['To'] = $message['to'];
@@ -35,6 +48,15 @@ class DevelMailLog extends DefaultMailSystem {
     return $output;
   }
 
+  /**
+   * Gets a filename for a message using tokens.
+   *
+   * @param $message
+   *   The message that will supply values for token replacement.
+   *
+   * @return
+   *   The full path and filename after token replacement.
+   */
   public function getFileName($message) {
     $output_directory = $this->getOutputDirectory();
     $this->makeOutputDirectory($output_directory);
@@ -48,19 +70,26 @@ class DevelMailLog extends DefaultMailSystem {
     return $output_directory . '/' . $this->dirify(str_replace(array_keys($tokens), array_values($tokens), $output_file_format));
   }
 
+  /**
+   * Convert a string to a valid directory name.
+   *
+   * @return
+   *   The sanitized string, replacing any characters not whitelisted with "_".
+   */
   private function dirify($string) {
     return preg_replace('/[^a-zA-Z0-9_\-\.@]/', '_', $string);
   }
+
   /**
-   * Save an e-mail message to a file, using Drupal variables and default settings.
-   *
-   * @see http://php.net/manual/en/function.mail.php
-   * @see drupal_mail()
+   * Save a mail message to a file using Drupal variables and default settings.
    *
    * @param $message
    *   A message array, as described in hook_mail_alter().
    * @return
    *   TRUE if the mail was successfully accepted, otherwise FALSE.
+   *
+   * @see http://php.net/manual/en/function.mail.php
+   * @see drupal_mail()
    */
   public function mail(array $message) {
     $output = $this->composeMessage($message);
@@ -69,14 +98,25 @@ class DevelMailLog extends DefaultMailSystem {
     return file_put_contents($output_file, $output);
   }
 
+  /**
+   * Creates the directory to contain the message file if necessary.
+   *
+   * @throws Exception
+   *   Exception thrown when unable to create the destination directory.
+   */
   protected function makeOutputDirectory($output_directory) {
     if (!file_prepare_directory($output_directory, FILE_CREATE_DIRECTORY)) {
       throw new Exception("Unable to continue sending mail, $output_directory is not writable");
     }
   }
 
+  /**
+   * Retrieves the directory that contains message files.
+   *
+   * @return
+   *   The path to mail messages, possibly using a file URI scheme.
+   */
   public function getOutputDirectory() {
     return variable_get('devel_debug_mail_directory', 'temporary://devel-mails');
   }
 }
-?>

+ 272 - 115
sites/all/modules/contrib/dev/devel/devel.module

@@ -3,6 +3,7 @@
 /**
  * @file
  * This module holds functions useful for Drupal development.
+ *
  * Please contribute!
  */
 
@@ -212,7 +213,7 @@ function devel_menu() {
   // Duplicate path in 2 different menus. See http://drupal.org/node/601788.
   $items['devel/settings'] = array(
     'title' => 'Devel settings',
-    'description' => 'Helper functions, pages, and blocks to assist Drupal developers. The devel blocks can be managed via the <a href="' . url('admin/structure/block') . '">block administration</a> page.',
+    'description' => 'Helper functions, pages, and blocks to assist Drupal developers. The devel blocks can be managed via the <a href="/admin/structure/block">block administration</a> page.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('devel_admin_settings'),
     'access arguments' => array('administer site configuration'),
@@ -221,7 +222,7 @@ function devel_menu() {
   );
   $items['admin/config/development/devel'] = array(
     'title' => 'Devel settings',
-    'description' => 'Helper functions, pages, and blocks to assist Drupal developers. The devel blocks can be managed via the <a href="' . url('admin/structure/block') . '">block administration</a> page.',
+    'description' => 'Helper functions, pages, and blocks to assist Drupal developers. The devel blocks can be managed via the <a href="/admin/structure/block">block administration</a> page.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('devel_admin_settings'),
     'file' => 'devel.admin.inc',
@@ -321,11 +322,11 @@ function devel_menu() {
 }
 
 /**
- * Menu item access callback - check permission and token for Switch User.
+ * Menu item access callback: checks permission and token for Switch User.
  */
 function _devel_switch_user_access($name) {
   // Suppress notices when on other pages when menu system still checks access.
-  return user_access('switch users') && drupal_valid_token(@$_GET['token'], "devel/switch/$name|" . @$_GET['destination'], TRUE);
+  return user_access('switch users') && drupal_valid_token(@$_GET['token'], "devel/switch/$name", TRUE);
 }
 
 /**
@@ -347,23 +348,38 @@ function devel_admin_paths() {
 }
 
 /**
- * Returns destinations.
+ * Returns paths that need a destination.
  */
 function devel_menu_need_destination() {
   return array('devel/cache/clear', 'devel/reinstall', 'devel/menu/reset',
     'devel/variable', 'admin/reports/status/run-cron');
 }
 
+/**
+ * Returns list of paths which need CSRF token protection.
+ *
+ * @return array
+ *   An associative array in which every item is composed in the following way:
+ *   - key: path which need token protection.
+ *   - value: additional value used for generate the token.
+ */
+function devel_menu_need_token_protection() {
+  return array(
+    'devel/cache/clear' => 'devel-cache-clear',
+    'devel/run-cron' => 'run-cron',
+  );
+}
+
 /**
  * Implements hook_menu_link_alter().
  *
  * Flag this link as needing alter at display time.
  * This is more robust than setting alter in hook_menu().
- * @see devel_translated_menu_link_alter()
  *
- **/
+ * @see devel_translated_menu_link_alter()
+ */
 function devel_menu_link_alter(&$item) {
-  if (in_array($item['link_path'], devel_menu_need_destination()) || $item['link_path'] == 'devel/menu/item') {
+  if (in_array($item['link_path'], devel_menu_need_destination()) || array_key_exists($item['link_path'], devel_menu_need_token_protection()) || $item['link_path'] == 'devel/menu/item') {
     $item['options']['alter'] = TRUE;
   }
 }
@@ -371,11 +387,22 @@ function devel_menu_link_alter(&$item) {
 /**
  * Implements hook_translated_menu_item_alter().
  *
- * Append dynamic querystring 'destination' to several of our own menu items.
- **/
+ * Append dynamic querystring 'destination' or 'token' (csfr protection) to
+ * several of our own menu items.
+ */
 function devel_translated_menu_link_alter(&$item) {
-  if (in_array($item['href'], devel_menu_need_destination())) {
-    $item['localized_options']['query'] = drupal_get_destination();
+  $need_destination = in_array($item['href'], devel_menu_need_destination());
+
+  $token_protection = devel_menu_need_token_protection();
+  $need_token = array_key_exists($item['href'], $token_protection);
+
+  if ($need_destination || $need_token) {
+    if ($need_destination) {
+      $item['localized_options']['query'] = drupal_get_destination();
+    }
+    if ($need_token) {
+      $item['localized_options']['query']['token'] = drupal_get_token($token_protection[$item['href']]);
+    }
   }
   elseif ($item['href'] == 'devel/menu/item') {
     $item['localized_options']['query'] = array('path' => $_GET['q']);
@@ -447,27 +474,41 @@ function devel_init() {
     if (flood_is_allowed('devel_rebuild_registry_warning', 1)) {
       flood_register_event('devel_rebuild_registry_warning');
       if (!devel_silent() && user_access('access devel information')) {
-        drupal_set_message(t('The theme registry is being rebuilt on every request. Remember to <a href="!url">turn off</a> this feature on production websites.', array("!url" => url('admin/config/development/devel'))));
+        drupal_set_message(t('The theme registry is being rebuilt on every request. Remember to <a href="!url">turn off</a> this feature on production websites.', array(
+          "!url" => url('admin/config/development/devel', array(
+            'fragment' => 'edit-devel-rebuild-theme-registry',
+          )),
+        )));
       }
     }
   }
 }
 
 /**
- * Sets message.
+ * Sets a message.
  */
 function devel_set_message($msg, $type = NULL) {
   $function  = function_exists('drush_log') ? 'drush_log' : 'drupal_set_message';
   $function($msg, $type);
-  }
+}
 
 /**
- * Returns boolean. No need for cache here.
+ * Determines if Krumo is available.
+ *
+ * No need for cache here.
+ *
+ * @return boolean
+ *   TRUE if Krumo is available, FALSE otherwise.
  */
 function has_krumo() {
   @include_once DRUPAL_ROOT . '/' . drupal_get_path('module', 'devel') . '/krumo/class.krumo.php';
   if (function_exists('krumo') && !drupal_is_cli()) {
-    drupal_add_js(drupal_get_path('module', 'devel') . '/devel_krumo_path.js');
+    drupal_add_js(drupal_get_path('module', 'devel') . '/devel_krumo.js');
+    drupal_add_css(drupal_get_path('module', 'devel') . '/devel_krumo.css');
+    // If dpm() is called after status messages have been rendered they will
+    // instead appear on the next page load, so ensure the krumo CSS and
+    // Javascript files are included.
+    krumo::addCssJs();
     return TRUE;
   }
   return FALSE;
@@ -480,13 +521,17 @@ function has_krumo() {
  *   The value to check.
  *
  * @return boolean
+ *   TRUE if the input complex enough and Krumo is available and not disabled,
+ *   FALSE otherwise.
  */
 function merits_krumo($input) {
   return (is_object($input) || is_array($input)) && has_krumo() && variable_get('devel_krumo_skin', '') != 'disabled';
 }
 
 /**
- * Calls the http://www.firephp.org/ fb() function if it is found.
+ * Calls the fb() function if it is found.
+ *
+ * @see http://www.firephp.org/
  */
 function dfb() {
   if (function_exists('fb') && user_access('access devel information') && !headers_sent()) {
@@ -555,6 +600,8 @@ function devel_watchdog(array $log_entry) {
 
 /**
  * Gets error handlers.
+ *
+ * @return array
  */
 function devel_get_handlers() {
   $error_handlers = variable_get('devel_error_handlers', array(DEVEL_ERROR_HANDLER_STANDARD => DEVEL_ERROR_HANDLER_STANDARD));
@@ -566,6 +613,10 @@ function devel_get_handlers() {
 
 /**
  * Sets a new error handler or restores the prior one.
+ *
+ * @param array $handlers
+ *   An array of error handlers to set.  Use an empty array to restore the
+ *   previous one.
  */
 function devel_set_handler($handlers) {
   if (empty($handlers)) {
@@ -583,6 +634,8 @@ function devel_set_handler($handlers) {
 
 /**
  * Checks whether Devel may be active.
+ *
+ * @return boolean
  */
 function devel_silent() {
   // isset($_GET['q']) is needed when calling the front page. q is not set.
@@ -601,36 +654,12 @@ function devel_silent() {
     );
 }
 
-/**
- * Enables xhprof.
- */
-function devel_xhprof_enable() {
-  if (devel_xhprof_is_enabled()) {
-    if ($path = variable_get('devel_xhprof_directory', '')) {
-      include_once $path . '/xhprof_lib/utils/xhprof_lib.php';
-      include_once $path . '/xhprof_lib/utils/xhprof_runs.php';
-      // @todo: consider a variable per-flag instead.
-      xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
-    }
-  }
-}
-
-/**
- * Checks if xhprof is enabled.
- */
-function devel_xhprof_is_enabled() {
-  return extension_loaded('xhprof') && variable_get('devel_xhprof_enabled', FALSE);
-}
-
 /**
  * Implements hook_boot().
  *
  * Runs even for cached pages.
  */
 function devel_boot() {
-  // Initialize XHProf.
-  devel_xhprof_enable();
-
   if (!devel_silent()) {
     if (variable_get('devel_memory', 0)) {
       global $memory_init;
@@ -847,6 +876,9 @@ function devel_block_view($delta) {
 
 /**
  * Provides the Switch user block.
+ *
+ * @return array
+ *   A render array containing the Switch user block.
  */
 function devel_block_switch_user() {
   $links = devel_switch_user_list();
@@ -864,6 +896,9 @@ function devel_block_switch_user() {
 
 /**
  * Provides the Switch user list.
+ *
+ * @return array
+ *   An array of links, each of which can be used to switch to a user.
  */
 function devel_switch_user_list() {
   global $user;
@@ -905,7 +940,7 @@ function devel_switch_user_list() {
       $links[$account->uid] = array(
         'title' => drupal_placeholder(format_username($account)),
         'href' => $path,
-        'query' => $dest + array('token' => drupal_get_token($path . '|' . $dest['destination'])),
+        'query' => $dest + array('token' => drupal_get_token($path)),
         'attributes' => array('title' => t('This user can switch back.')),
         'html' => TRUE,
         'last_access' => $account->access,
@@ -921,7 +956,7 @@ function devel_switch_user_list() {
         $links[$account->uid] = array(
           'title' => format_username($account),
           'href' => $path,
-          'query' => $dest + array('token' => drupal_get_token($path . '|' . $dest['destination'])),
+          'query' => array('token' => drupal_get_token($path)),
           'attributes' => array('title' => t('Caution: this user will be unable to switch back.')),
           'last_access' => $account->access,
         );
@@ -933,7 +968,7 @@ function devel_switch_user_list() {
       $link = array(
         'title' => format_username(drupal_anonymous_user()),
         'href' => $path,
-        'query' => $dest + array('token' => drupal_get_token($path . '/|' . $dest['destination'])),
+        'query' => $dest + array('token' => drupal_get_token($path)),
         'attributes' => array('title' => t('Caution: the anonymous user will be unable to switch back.')),
       );
       if (user_access('switch users', drupal_anonymous_user())) {
@@ -970,7 +1005,8 @@ function devel_switch_user_form() {
     '#maxlength' => USERNAME_MAX_LENGTH,
     '#size' => 16,
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Switch'),
   );
@@ -990,7 +1026,8 @@ function devel_doc_function_form() {
     '#maxlength' => 255,
   );
   $form['version'] = array('#type' => 'value', '#value' => $version);
-  $form['submit_button'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Submit'),
   );
@@ -1026,8 +1063,10 @@ function devel_switch_user_form_submit($form, &$form_state) {
     array(
       'query' => array(
         'destination' => '',
-        'token' => drupal_get_token($path . '|'),
-    )));
+        'token' => drupal_get_token($path),
+      ),
+    ),
+  );
 }
 
 /**
@@ -1085,12 +1124,6 @@ function devel_shutdown() {
   // Register the real shutdown function so it runs after other shutdown
   // functions.
   drupal_register_shutdown_function('devel_shutdown_real');
-
-  global $devel_run_id;
-  $devel_run_id = devel_xhprof_is_enabled() ? devel_shutdown_xhprof() : NULL;
-  if ($devel_run_id && function_exists('drush_log')) {
-    drush_log('xhprof link: ' . devel_xhprof_link($devel_run_id, 'url'), 'notice');
-  }
 }
 
 /**
@@ -1126,7 +1159,7 @@ function devel_shutdown_real() {
   // Set $GLOBALS['devel_shutdown'] = FALSE in order to supress the
   // devel footer for a page.  Not necessary if your page outputs any
   // of the Content-type http headers tested below (e.g. text/xml,
-  // text/javascript, etc).  This is is advised where applicable.
+  // text/javascript, etc).  This is advised where applicable.
   if (!devel_silent() && !isset($GLOBALS['devel_shutdown']) && !isset($GLOBALS['devel_redirecting'])) {
     // Try not to break non html pages.
     if (function_exists('drupal_get_http_header')) {
@@ -1144,6 +1177,12 @@ function devel_shutdown_real() {
 
     if (isset($user) && user_access('access devel information')) {
       $queries = (devel_query_enabled() ? Database::getLog('devel', 'default') : NULL);
+      if (!empty($queries)) {
+        // Remove caller args to avoid recursion.
+        foreach ($queries as &$query) {
+          unset($query['caller']['args']);
+        }
+      }
       $output .= devel_shutdown_summary($queries);
       $output .= devel_shutdown_query($queries);
     }
@@ -1160,6 +1199,8 @@ function devel_shutdown_real() {
 
 /**
  * Returns the rendered shutdown summary.
+ *
+ * @return string
  */
 function devel_shutdown_summary($queries) {
   $sum = 0;
@@ -1172,14 +1213,10 @@ function devel_shutdown_summary($queries) {
     $output .= t_safe(' Queries exceeding @threshold ms are <span class="marker">highlighted</span>.', array('@threshold' => variable_get('devel_execution', 5)));
   }
 
-  if (variable_get('dev_timer', 0)) {
+  if (variable_get('devel_timer', 0)) {
     $output .= devel_timer();
   }
 
-  if (devel_xhprof_is_enabled()) {
-    $output .= ' ' . devel_xhprof_link($GLOBALS['devel_run_id']);
-  }
-
   $output .= devel_shutdown_memory();
 
   if ($output) {
@@ -1187,33 +1224,10 @@ function devel_shutdown_summary($queries) {
   }
 }
 
-/**
- * Returns the XHProf run ID.
- */
-function devel_shutdown_xhprof() {
-  // Namespace for your application.
-  $namespace = variable_get('site_name', '');
-  $xhprof_data = xhprof_disable();
-  $xhprof_runs = new XHProfRuns_Default();
-  return $xhprof_runs->save_run($xhprof_data, $namespace);
-}
-
-/**
- * Returns the XHProf link.
- */
-function devel_xhprof_link($run_id, $type = 'link') {
-  // @todo: render results from within Drupal.
-  $xhprof_url = variable_get('devel_xhprof_url', '');
-  // Namespace for your application.
-  $namespace = variable_get('site_name', '');
-  if ($xhprof_url) {
-    $url = $xhprof_url . '/index.php?run=' . urlencode($run_id) . '&source=' . urlencode($namespace);
-    return $type == 'url' ? $url : t('<a href="@xhprof">XHProf output</a>. ', array('@xhprof' => $url));
-  }
-}
-
 /**
  * Returns the rendered memory usage.
+ *
+ * @return string
  */
 function devel_shutdown_memory() {
   global $memory_init;
@@ -1233,6 +1247,8 @@ function devel_shutdown_memory() {
 
 /**
  * Returns the rendered query log.
+ *
+ * @return string
  */
 function devel_shutdown_query($queries) {
   if (!empty($queries)) {
@@ -1282,6 +1298,9 @@ function devel_query_put_contents($queries) {
 
 /**
  * Returns whether query logging is enabled.
+ *
+ * @return boolean
+ *   TRUE if the query log is enabled, FALSE otherwise.
  */
 function devel_query_enabled() {
   return method_exists('Database', 'getLog') && variable_get('devel_query_display', FALSE);
@@ -1289,6 +1308,14 @@ function devel_query_enabled() {
 
 /**
  * Returns the query summary.
+ *
+ * @return array
+ *   An index array containing:
+ *   0: The an associative array where the keys are the queries and the values
+ *      are number of times that query was executes.
+ *   1: The summary.
+ *   2: An associative array of substitution variables to be applied in the
+ *      previous element.
  */
 function devel_query_summary($queries) {
   if (variable_get('devel_query_display', FALSE) && is_array($queries)) {
@@ -1307,7 +1334,7 @@ function devel_query_summary($queries) {
 }
 
 /**
- * Devel's t_safe() function.
+ * Gets the t() function if available, uses strtr() as a fallback.
  */
 function t_safe($string, $args) {
   // get_t() caused problems here with the theme registry after changing on
@@ -1317,12 +1344,18 @@ function t_safe($string, $args) {
     return t($string, $args);
   }
   else {
-    strtr($string, $args);
+    return strtr($string, $args);
   }
 }
 
 /**
  * Returns the core version.
+ *
+ * @param string
+ *   The version string to parse.
+ *
+ * @return string
+ *   MAJOR.MINOR for versions before 5, MAJOR for subsequent versions.
  */
 function devel_get_core_version($version) {
   $version_parts = explode('.', $version);
@@ -1338,6 +1371,9 @@ function devel_get_core_version($version) {
 
 /**
  * Returns whether the optimizer is compatible.
+ *
+ * @return boolean
+ *   TRUE if compatible, FALSE otherwise.
  */
 function devel_is_compatible_optimizer() {
   // See http://drupal.org/node/126098.
@@ -1399,7 +1435,11 @@ function devel_execute_form() {
     '#default_value' => (isset($_SESSION['devel_execute_code']) ? $_SESSION['devel_execute_code'] : ''),
     '#rows' => 20,
   );
-  $form['execute']['op'] = array('#type' => 'submit', '#value' => t('Execute'));
+  $form['execute']['actions'] = array('#type' => 'actions');
+  $form['execute']['actions']['op'] = array(
+    '#type' => 'submit',
+    '#value' => t('Execute'),
+  );
   $form['#redirect'] = FALSE;
   if (isset($_SESSION['devel_execute_code'])) {
     unset($_SESSION['devel_execute_code']);
@@ -1456,6 +1496,9 @@ function devel_switch_user($name = NULL) {
  *   An array or object to print.
  * @param string $prefix
  *   Prefix for output items.
+ *
+ * @return
+ *   The results from krumo_ob() or devel_print_object().
  */
 function kdevel_print_object($object, $prefix = NULL) {
   return has_krumo() ? krumo_ob($object) : devel_print_object($object, $prefix);
@@ -1481,6 +1524,8 @@ function krumo_ob($object) {
  *   Prefix for the output items (example "$node->", "$user->", "$").
  * @param boolean $header
  *   Set to FALSE to suppress the output of the h3 tag.
+ *
+ * @return string
  */
 function devel_print_object($object, $prefix = NULL, $header = TRUE) {
   drupal_add_css(drupal_get_path('module', 'devel') . '/devel.css');
@@ -1516,7 +1561,7 @@ function devel_print_object($object, $prefix = NULL, $header = TRUE) {
  *   Formatted html.
  *
  * @todo
- *   currently there are problems sending an array with a varname
+ *   Currently there are problems sending an array with a varname.
  */
 function _devel_print_object($obj, $prefix = NULL, $parents = NULL, $object = FALSE) {
   static $root_type, $out_format;
@@ -1623,12 +1668,16 @@ function _devel_print_object($obj, $prefix = NULL, $parents = NULL, $object = FA
  *
  * Adds a table at the bottom of the page cataloguing data on all the database
  * queries that were made to generate the page.
+ *
+ * @return string
+ *   Queries themed using devel_querylog.
  */
 function devel_query_table($queries, $counts) {
   $version = devel_get_core_version(VERSION);
   $header = array('ms', '#', 'where', 'ops', 'query', 'target');
   $i = 0;
   $api = variable_get('devel_api_url', 'api.drupal.org');
+  $conn = Database::getconnection();
   foreach ($queries as $query) {
     $function = !empty($query['caller']['class']) ? $query['caller']['class'] . '::' : '';
     $function .= $query['caller']['function'];
@@ -1666,8 +1715,19 @@ function devel_query_table($queries, $counts) {
     }
     $cell[$i][] = implode(' ', $ops);
     // 3 divs for each variation of the query. Last 2 are hidden by default.
-    $placeholders = '<div class="dev-placeholders">' . check_plain($query['query']) . "</div>\n";
-    $args = '<div class="dev-arguments" style="display: none;"></div>' . "\n";
+    if (variable_get('devel_show_query_args_first', FALSE)) {
+      $placeholders = '<div class="dev-placeholders" style="display: none;">' . check_plain($query['query']) . "</div>\n";
+      $quoted = array();
+      foreach ($query['args'] as $key => $val) {
+        $quoted[$key] = $conn->quote($val);
+      }
+      $output = strtr($query['query'], $quoted);
+      $args = '<div class="dev-arguments">' . $output . '</div>' . "\n";
+    }
+    else {
+      $placeholders = '<div class="dev-placeholders">' . check_plain($query['query']) . "</div>\n";
+      $args = '<div class="dev-arguments" style="display: none;"></div>' . "\n";
+    }
     $explain = '<div class="dev-explain" style="display: none;"></div>' . "\n";
     $cell[$i][] = array(
       'id' => "devel-query-$i",
@@ -1684,7 +1744,16 @@ function devel_query_table($queries, $counts) {
 }
 
 /**
- * Themes devel's querylog row.
+ * Returns HTML for a  Devel querylog row.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - row: An array of cells in which each cell is either a string or an
+ *     associative array containing:
+ *     - data: The data to render.
+ *     - Any attributes to be applied to the cell.
+ *
+ * @ingroup themeable
  */
 function theme_devel_querylog_row($variables) {
   $row = $variables['row'];
@@ -1717,7 +1786,14 @@ function theme_devel_querylog_row($variables) {
 }
 
 /**
- * Themes devel's querylog.
+ * Returns HTML for the Devel querylog.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - header: An array suitable for rendering with devel_querylog_row.
+ *   - rows: An array of rows suitable for rendering with devel_querylog_row.
+ *
+ * @ingroup themeable
  */
 function theme_devel_querylog($variables) {
   $header = $variables['header'];
@@ -1758,17 +1834,24 @@ function _devel_table_sort($a, $b) {
 
 /**
  * Displays page execution time at the bottom of the page.
+ *
+ * @return string
+ *   A message indicating how long it took to execute the page.
  */
 function devel_timer() {
   $time = timer_read('page');
   return t_safe(' Page execution time was @time ms.', array('@time' => $time));
 }
 
-/**
- * An alias for drupal_debug().
- */
-function dd($data, $label = NULL) {
-  return drupal_debug($data, $label);
+if (!function_exists('dd')) {
+  /**
+   * An alias for drupal_debug().
+   *
+   * @see drupal_debug()
+   */
+  function dd($data, $label = NULL) {
+    return drupal_debug($data, $label);
+  }
 }
 
 /**
@@ -1809,7 +1892,7 @@ function dargs($always = TRUE) {
 }
 
 /**
- * Prints a SQL string from a DBTNG Select object. Includes quoted arguments.
+ * Prints a SQL string from a DBTNG Select object.
  *
  * Includes quoted arguments.
  *
@@ -1820,6 +1903,7 @@ function dargs($always = TRUE) {
  *   and return $query instead.
  * @param string $name
  *   Optional name for identifying the output.
+ *
  * @return object|string
  *   The $query object, or the query string if $return was TRUE.
  */
@@ -1857,6 +1941,8 @@ function dpq($query, $return = FALSE, $name = NULL) {
  *
  * @return input
  *   The unaltered input value.
+ *
+ * @see drupal_set_message()
  */
 function dpm($input, $name = NULL, $type = 'status') {
   if (user_access('access devel information')) {
@@ -1878,6 +1964,9 @@ function dpm($input, $name = NULL, $type = 'status') {
  *
  * @return input
  *   The unaltered input value.
+ *
+ * @see drupal_set_message()
+ * @see drupal_var_export()
  */
 function dvm($input, $name = NULL) {
   if (user_access('access devel information')) {
@@ -1890,21 +1979,31 @@ function dvm($input, $name = NULL) {
 /**
  * Legacy function that was poorly named.
  *
- * Use dpm() instead, since the 'p' maps to 'print_r'.
+ * @deprecated Use dpm() instead, since the 'p' maps to 'print_r'.
+ *
+ * @see dpm()
  */
 function dsm($input, $name = NULL) {
   return dpm($input, $name);
 }
 
 /**
- * An alias for dprint_r(). Saves carpal tunnel syndrome.
+ * An alias for dprint_r().
+ *
+ * Saves carpal tunnel syndrome.
+ *
+ * @see dprint_r()
  */
 function dpr($input, $return = FALSE, $name = NULL) {
   return dprint_r($input, $return, $name);
 }
 
 /**
- * An alias for kprint_r(). Saves carpal tunnel syndrome.
+ * An alias for kprint_r().
+ *
+ * Saves carpal tunnel syndrome.
+ *
+ * @see kprint_r()
  */
 function kpr($input, $return = FALSE, $name = NULL) {
   return kprint_r($input, $return, $name);
@@ -1912,13 +2011,32 @@ function kpr($input, $return = FALSE, $name = NULL) {
 
 /**
  * Like dpr(), but uses drupal_var_export() instead.
+ *
+ * @see dprint_r()
+ * @see drupal_var_export()
  */
 function dvr($input, $return = FALSE, $name = NULL) {
   return dprint_r($input, $return, $name, 'drupal_var_export', FALSE);
 }
 
 /**
- * Krumo print.
+ * Returns a message using Krumo.
+ *
+ * Uses dprint_r() as a fallback.
+ *
+ * @param mixed $input
+ *   The thing to print.
+ * @param boolean $return
+ *   (optional) Indicates if the output should be returned.  The default is
+ *   FALSE.
+ * @param string $name
+ *   (optional) The label to apply.
+ * @param string $function
+ *   (optional) The function to use for output in the case where dprint_r() is
+ *   used.  The defualt is print_r().
+ *
+ * @return
+ *   The output if $return is TRUE.
  */
 function kprint_r($input, $return = FALSE, $name = NULL, $function = 'print_r') {
   // We do not want to krumo() strings and integers and such.
@@ -1935,10 +2053,26 @@ function kprint_r($input, $return = FALSE, $name = NULL, $function = 'print_r')
 /**
  * Pretty-print a variable to the browser (no krumo).
  *
- * Displays only for users with proper permissions. If
- * you want a string returned instead of a print, use the 2nd param.
+ * Displays only for users with proper permissions. If you want a string
+ * returned instead of a print, use the 2nd param.
+ *
+ * @param mixed $input
+ *   The input that should be printed or returned.
+ * @param boolean $return
+ *   (optional) Indicates of the result should be returned instead of printed.
+ *   The default is to print it.
+ * @param string $name
+ *   (optional) The label to apply.
+ * @param string $function
+ *   (optional) The function to use for output.  The defualt is print_r().
+ * @param boolean $check
+ *   (optional) Indicates if the output should be run through check_plain().
+ *   The default is TRUE.
+ *
+ * @return
+ *   The formatted output if $return is TRUE.
  */
-function dprint_r($input, $return = FALSE, $name = NULL, $function = 'print_r', $check= TRUE) {
+function dprint_r($input, $return = FALSE, $name = NULL, $function = 'print_r', $check = TRUE) {
   if (user_access('access devel information')) {
     if ($name) {
       $name .= ' => ';
@@ -1956,7 +2090,7 @@ function dprint_r($input, $return = FALSE, $name = NULL, $function = 'print_r',
     if ($check) {
       $output = check_plain($output);
     }
-    if (count($input, COUNT_RECURSIVE) > DEVEL_MIN_TEXTAREA) {
+    if (is_array($input) && count($input, COUNT_RECURSIVE) > DEVEL_MIN_TEXTAREA) {
       // Don't use fapi here because sometimes fapi will not be loaded.
       $printed_value = "<textarea rows=30 style=\"width: 100%;\">\n" . $name . $output . '</textarea>';
     }
@@ -2014,9 +2148,11 @@ function ddebug_backtrace($return = FALSE, $pop = 0, $options = TRUE) {
       array_shift($backtrace);
     }
     $counter = count($backtrace);
-    $path = $backtrace[$counter - 1]['file'];
-    $path = substr($path, 0, strlen($path) - 10);
-    $paths[$path] = strlen($path) + 1;
+    if (!empty($backtrace[$counter - 1]['file'])) {
+      $path = $backtrace[$counter - 1]['file'];
+      $path = substr($path, 0, strlen($path) - 10);
+      $paths[$path] = strlen($path) + 1;
+    }
     $paths[DRUPAL_ROOT] = strlen(DRUPAL_ROOT) + 1;
     $nbsp = "\xC2\xA0";
 
@@ -2078,9 +2214,8 @@ function devel_empty_dir($dir) {
 
 /**
  * Regenerates the data in node_comment_statistics table.
- * Technique - http://www.artfulsoftware.com/infotree/queries.php?&bw=1280#101
  *
- * @return void
+ * Technique - http://www.artfulsoftware.com/infotree/queries.php?&bw=1280#101
  */
 function devel_rebuild_node_comment_statistics() {
   // Empty table.
@@ -2115,8 +2250,8 @@ function devel_rebuild_node_comment_statistics() {
 /**
  * Implements hook_form_alter().
  *
- * Adds mouse-over hints on the Permissions page to display
- * language-independent machine names and module base names.
+ * Adds mouse-over hints on the Permissions page to display language-independent
+ * machine names and module base names.
  */
 function devel_form_user_admin_permissions_alter(&$form, &$form_state) {
   if (user_access('access devel information') && variable_get('devel_raw_names', FALSE)) {
@@ -2152,3 +2287,25 @@ function devel_form_system_modules_alter(&$form, &$form_state) {
     }
   }
 }
+
+/**
+ * Implements hook_query_TAG_alter() for the devel tag.
+ *
+ * Makes debugging EntityFieldQuery much easier.
+ *
+ * Example usage:
+ * @code
+ *   $q = new EntityFieldQuery;
+ *   $q->entityCondition('entity_type', 'node')
+ *     ->addTag('debug')
+ *     ->execute();
+ * @endcode
+ *
+ * @param QueryAlterableInterface $query
+ */
+function devel_query_debug_alter(QueryAlterableInterface $query) {
+  if (!$query->hasTag('debug-semaphore')) {
+    $query->addTag('debug-semaphore');
+    dpq($query);
+  }
+}

+ 158 - 39
sites/all/modules/contrib/dev/devel/devel.pages.inc

@@ -1,14 +1,23 @@
 <?php
 
-// Menu callback that shows menu item.
+/**
+ * @file
+ * Page callbacks for Devel.
+ */
+
+/**
+ * Page callback: Shows a menu item.
+ */
 function devel_menu_item() {
   $item = menu_get_item($_GET['path']);
   return kdevel_print_object($item);
 }
 
 /**
- * Returns a list of all currently defined user functions in the current
- * request lifecycle, with links their documentation.
+ * Page callback: Returns a list of all currently defined user functions.
+ *
+ * Returns a list of all currently defined user functions in the current request
+ * lifecycle, with links their documentation.
  */
 function devel_function_reference() {
   $functions = get_defined_functions();
@@ -23,9 +32,13 @@ function devel_function_reference() {
 }
 
 /**
- * Menu callback; clears all caches, then redirects to the previous page.
+ * Page callback: Clears all caches, then redirects to the previous page.
  */
 function devel_cache_clear() {
+  if (!isset($_GET['token']) || !drupal_valid_token($_GET['token'], 'devel-cache-clear')) {
+    return MENU_ACCESS_DENIED;
+  }
+
   drupal_flush_all_caches();
 
   drupal_set_message('Cache cleared.');
@@ -33,7 +46,9 @@ function devel_cache_clear() {
   drupal_goto();
 }
 
-// A menu callback. Called by the AJAX link in query log.
+/**
+ * Page callback: Called by the AJAX link in query log.
+ */
 function devel_querylog_explain($request_id, $qid) {
   if (!is_numeric($request_id)) {
     return MENU_ACCESS_DENIED;
@@ -41,25 +56,39 @@ function devel_querylog_explain($request_id, $qid) {
 
   $path = "temporary://devel_querylog/$request_id.txt";
   $path = file_stream_wrapper_uri_normalize($path);
-  $queries = json_decode(file_get_contents($path));
-  $query = $queries[$qid];
-  $result = db_query('EXPLAIN ' . $query->query, (array)$query->args)->fetchAllAssoc('table');
-  $i = 1;
-  foreach ($result as $row) {
-    $row = (array)$row;
-    if ($i == 1) {
-      $header = array_keys($row);
+
+  $output = t('No explain log found.');
+
+  if (file_exists($path)) {
+    $queries = json_decode(file_get_contents($path));
+
+    if ($queries !== FALSE && isset($queries[$qid])) {
+      $header = $rows = array();
+
+      $query = $queries[$qid];
+      $result = db_query('EXPLAIN ' . $query->query, (array)$query->args)->fetchAllAssoc('table');
+      $i = 1;
+      foreach ($result as $row) {
+        $row = (array)$row;
+        if ($i == 1) {
+          $header = array_keys($row);
+        }
+        $rows[] = array_values($row);
+        $i++;
+      }
+
+      $output = theme('table', array('header' => $header, 'rows' => $rows));
     }
-    $rows[] = array_values($row);
-    $i++;
   }
+
   // Print and return nothing thus avoiding page wrapper.
-  $output = theme('table', array('header' => $header, 'rows' => $rows));
   print $output;
   $GLOBALS['devel_shutdown'] = FALSE;
 }
 
-// A menu callback. Called by the AJAX link in query log.
+/**
+ * Page callback: Called by the AJAX link in query log.
+ */
 function devel_querylog_arguments($request_id, $qid) {
   if (!is_numeric($request_id)) {
     return MENU_ACCESS_DENIED;
@@ -67,22 +96,30 @@ function devel_querylog_arguments($request_id, $qid) {
 
   $path = "temporary://devel_querylog/$request_id.txt";
   $path = file_stream_wrapper_uri_normalize($path);
-  $queries = json_decode(file_get_contents($path));
-  $query = $queries[$qid];
-  $conn = Database::getConnection();
-  $quoted = array();
-  foreach ((array)$query->args as $key => $val) {
-    $quoted[$key] = $conn->quote($val);
+
+  $output = t('No arguments log found.');
+
+  if (file_exists($path)) {
+    $queries = json_decode(file_get_contents($path));
+
+    if ($queries !== FALSE && isset($queries[$qid])) {
+      $query = $queries[$qid];
+      $conn = Database::getConnection();
+      $quoted = array();
+      foreach ((array)$query->args as $key => $val) {
+        $quoted[$key] = $conn->quote($val);
+      }
+      $output = strtr($query->query, $quoted);
+    }
   }
-  $output = strtr($query->query, $quoted);
 
-  // print and return nothing thus avoiding page wrapper.
+  // Print and return nothing thus avoiding page wrapper.
   print $output;
   $GLOBALS['devel_shutdown'] = FALSE;
 }
 
 /**
- * Menu callback; clear the database, resetting the menu to factory defaults.
+ * Page callback: Clears the database, resetting the menu to factory defaults.
  */
 function devel_menu_rebuild() {
   menu_rebuild();
@@ -91,7 +128,11 @@ function devel_menu_rebuild() {
 }
 
 /**
- * Display a dropdown of installed modules with the option to reinstall them.
+ * Form constructor for reinstalling any module from a dropdown.
+ *
+ * @see devel_reinstall_submit()
+ *
+ * @ingroup forms
  */
 function devel_reinstall($form, &$form_state) {
   $output = '';
@@ -103,7 +144,8 @@ function devel_reinstall($form, &$form_state) {
     '#options' => $options,
     '#description' => t('Uninstall and then install the selected modules. <code>hook_uninstall()</code> and <code>hook_install()</code> will be executed and the schema version number will be set to the most recent update number. You may have to manually clear out any existing tables first if the module doesn\'t implement <code>hook_uninstall()</code>.'),
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#value' => t('Reinstall'),
     '#type' => 'submit',
   );
@@ -111,7 +153,7 @@ function devel_reinstall($form, &$form_state) {
 }
 
 /**
- * Process reinstall menu form submissions.
+ * Form submission callback for devel_reinstall().
  */
 function devel_reinstall_submit($form, &$form_state) {
   // require_once './includes/install.inc';
@@ -122,7 +164,9 @@ function devel_reinstall_submit($form, &$form_state) {
   drupal_set_message(t('Uninstalled and installed: %names.', array('%names' => implode(', ', $modules))));
 }
 
-// Menu callback.
+/**
+ * Page callback: Rebuilds the theme registry.
+ */
 function devel_theme_registry() {
   drupal_theme_initialize();
   $hooks = theme_get_registry();
@@ -130,14 +174,26 @@ function devel_theme_registry() {
   return kprint_r($hooks, TRUE);
 }
 
-// Menu callback. $entity_type argument not currently used in the UI.
+/**
+ * Page callback: Returns information from hook_entity_info().
+ *
+ * @param string $entity_type
+ *   (optional) Limit results to the specified entity type.  The default is to
+ *   return information about all entity types. The $entity_type argument is not
+ *   currently used in the UI.
+ *
+ * @return
+ *   The results from kprint_r().
+ */
 function devel_entity_info_page($entity_type = NULL) {
   $info = entity_get_info($entity_type);
   ksort($info);
   return kprint_r($info, TRUE);
 }
 
-// Menu callback.
+/**
+ * Page callback: Returns information about fields.
+ */
 function devel_field_info_page() {
   $info = field_info_fields();
   $output = kprint_r($info, TRUE, t('Fields'));
@@ -156,6 +212,13 @@ function devel_field_info_page() {
   return $output;
 }
 
+/**
+ * Form constructor for displaying and editing variables.
+ *
+ * @see devel_variable_form_submit()
+ *
+ * @ingroup forms.
+ */
 function devel_variable_form() {
   $header = array(
     'name' => array('data' => t('Name'), 'field' => 'name', 'sort' => 'asc'),
@@ -163,7 +226,9 @@ function devel_variable_form() {
     'length' => array('data' => t('Length'), 'field' => 'length'),
     'edit' => array('data' => t('Operations')),
   );
-  // TODO: we could get variables out of $conf but that would include hard coded ones too. ideally i would highlight overrridden/hard coded variables
+  // @todo: We could get variables out of $conf but that would include
+  // hard-coded ones too. Ideally I would highlight overridden/hard-coded
+  // variables.
   $query = db_select('variable', 'v')->extend('TableSort');
   $query->fields('v', array('name', 'value'));
   switch (db_driver()) {
@@ -202,15 +267,20 @@ function devel_variable_form() {
     '#options' => $options,
     '#empty' => t('No variables.'),
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Delete'),
   );
+  $form['#after_build'][] = 'devel_variable_form_after_build';
 
     // krumo($form);
   return $form;
 }
 
+/**
+ * Form submission handler for devel_variable_form().
+ */
 function devel_variable_form_submit($form, &$form_state) {
   $deletes = array_filter($form_state['values']['variables']);
   array_walk($deletes, 'variable_del');
@@ -219,6 +289,25 @@ function devel_variable_form_submit($form, &$form_state) {
   }
 }
 
+/**
+ * After build callback for devel_variable_form().
+ *
+ * Wrap each variable name in a <label> element.
+ */
+function devel_variable_form_after_build($form, &$form_state) {
+  foreach ($form['variables']['#options'] as $variable => $element) {
+    $form['variables']['#options'][$variable]['name'] = '<label for="' . $form['variables'][$variable]['#id'] . '">' . $element['name'] . '</label>';
+  }
+  return $form;
+}
+
+/**
+ * Form constructor for editing a variable.
+ *
+ * @see devel_variable_edit_submit()
+ *
+ * @ingroup forms
+ */
 function devel_variable_edit($form, &$form_state, $name) {
   $value = variable_get($name, 'not found');
   $form['name'] = array(
@@ -236,7 +325,8 @@ function devel_variable_edit($form, &$form_state, $name) {
       '#title' => t('New value'),
       '#default_value' => $value
     );
-    $form['submit'] = array(
+    $form['actions'] = array('#type' => 'actions');
+    $form['actions']['submit'] = array(
       '#type' => 'submit',
       '#value' => t('Submit'),
     );
@@ -253,6 +343,9 @@ function devel_variable_edit($form, &$form_state, $name) {
   return $form;
 }
 
+/**
+ * Form submission handler for devel_variable_edit().
+ */
 function devel_variable_edit_submit($form, &$form_state) {
   variable_set($form_state['values']['name'], $form_state['values']['new']);
   drupal_set_message(t('Saved new value for %name.', array('%name' => $form_state['values']['name'])));
@@ -260,7 +353,7 @@ function devel_variable_edit_submit($form, &$form_state) {
 }
 
 /**
- * Menu callback: display the session.
+ * Page callback: Displays the session.
  */
 function devel_session() {
   global $user;
@@ -271,7 +364,7 @@ function devel_session() {
 }
 
 /**
- * Menu callback; prints the loaded structure of the current node/user.
+ * Page callback: Prints the loaded structure of the current node/user.
  */
 function devel_load_object($type, $object, $name = NULL) {
   $name = isset($name) ? $name : $type;
@@ -279,19 +372,45 @@ function devel_load_object($type, $object, $name = NULL) {
 }
 
 /**
- * Menu callback; prints the render structure of the current object (currently node or user).
+ * Page callback: Prints the render structure of the current object.
+ *
+ * @param string $type
+ *   The type of entity that will be displayed.
+ * @param object $object
+ *   The entity to display.
+ * @param string $name
+ *   (optional) The label to use when displaying the entity.
+ *
+ * @return
+ *   The results from kdevel_print_object().
  */
 function devel_render_object($type, $object, $name = NULL) {
   $name = isset($name) ? $name : $type;
   $function = $type . '_view';
-  $build = $function($object);
+
+  switch ($function) {
+    case 'comment_view':
+      $node = node_load($object->nid);
+      $build = $function($object, $node);
+      break;
+
+    default:
+      $build = $function($object);
+  }
+
   return kdevel_print_object($build, '$'. $name .'->');
 }
 
+/**
+ * Page callback: Returns information from hook_elements().
+ */
 function devel_elements_page() {
   return kdevel_print_object(module_invoke_all('element_info'));
 }
 
+/**
+ * Page callback: Returns the results from phpinfo().
+ */
 function devel_phpinfo() {
   print phpinfo();
   drupal_exit();

+ 5 - 0
sites/all/modules/contrib/dev/devel/devel.rules.inc

@@ -1,5 +1,10 @@
 <?php
 
+/**
+ * @file
+ * Rules integration for Devel.
+ */
+
 /**
  * Implements hook_rules_action_info().
  */

+ 6 - 0
sites/all/modules/contrib/dev/devel/devel.test

@@ -11,6 +11,9 @@
 class DevelMailTest extends DrupalWebTestCase {
   protected $profile = 'testing';
 
+  /**
+   * {@inheritdoc}
+   */
   public static function getInfo() {
     return array(
       'name' => 'Devel Mail interface',
@@ -19,6 +22,9 @@ class DevelMailTest extends DrupalWebTestCase {
     );
   }
 
+  /**
+   * {@inheritdoc}
+   */
   function setUp() {
     parent::setUp();
   }

+ 18 - 5
sites/all/modules/contrib/dev/devel/develDrushTest.php

@@ -1,13 +1,26 @@
 <?php
 
-/*
+/**
  * @file
- *   PHPUnit Tests for devel. This uses Drush's own test framework, based on PHPUnit.
- *   To run the tests, use phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc.
- *   Note that we are pointing to the drush_testcase.inc file under /tests subdir in drush.
+ * PHPUnit Tests for devel.
+ *
+ * This uses Drush's own test framework, based on PHPUnit.
+ * To run the tests, use
+ * @code
+ * phpunit --bootstrap=/path/to/drush/tests/drush_testcase.inc.
+ * @endcode
+ * Note that we are pointing to the drush_testcase.inc file under /tests subdir
+ * in drush.
+ */
+
+/**
+ * Class for testing Drush integration.
  */
 class develCase extends Drush_CommandTestCase {
 
+  /**
+   * Tests the printing of a function and its Doxygen comment.
+   */
   public function testFnView() {
     $sites = $this->setUpDrupal(1, TRUE);
     $options = array(
@@ -22,4 +35,4 @@ class develCase extends Drush_CommandTestCase {
     $this->assertContains('@return', $output, 'Output contain @return Doxygen.');
     $this->assertContains('function drush_main() {', $output, 'Output contains function drush_main() declaration');
   }
-}
+}

+ 13 - 26
sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.inc

@@ -270,6 +270,7 @@ function devel_generate_terms($records, $vocabs, $maxlength = 12) {
     $term->format = filter_fallback_format();
     $term->weight = mt_rand(0, 10);
     $term->language = LANGUAGE_NONE;
+    $term->devel_generate = TRUE;
 
     // Populate all core fields on behalf of field.module
     module_load_include('inc', 'devel_generate', 'devel_generate.fields');
@@ -477,29 +478,11 @@ function devel_generate_word($length){
   return substr($word, 0, $length);
 }
 
-function devel_create_content($type = NULL) {
-  $nparas = mt_rand(1,12);
-  $type = empty($type) ? mt_rand(0,3) : $type;
-
-  $output = "";
-  switch($type % 3) {
-    // MW: This appears undesireable. Was giving <p> in text fields
-    // case 1: // html
-    //       for ($i = 1; $i <= $nparas; $i++) {
-    //         $output .= devel_create_para(mt_rand(10,60),1);
-    //       }
-    //       break;
-    //
-    //     case 2: // brs only
-    //       for ($i = 1; $i <= $nparas; $i++) {
-    //         $output .= devel_create_para(mt_rand(10,60),2);
-    //       }
-    //       break;
-
-    default: // plain text
-      for ($i = 1; $i <= $nparas; $i++) {
-        $output .= devel_create_para(mt_rand(10,60)) ."\n\n";
-      }
+function devel_create_content() {
+  $nparas = mt_rand(1, 12);
+  $output = '';
+  for ($i = 1; $i <= $nparas; $i++) {
+    $output .= devel_create_para(mt_rand(10,60)) . "\n\n";
   }
 
   return $output;
@@ -659,8 +642,12 @@ function devel_generate_content_pre_node(&$results) {
 /**
  * Create one node. Used by both batch and non-batch code branches.
  *
- * @param $num
- *   array of options obtained from devel_generate_content_form.
+ * @param $results
+ *   array of options obtained from devel_generate_content_form. If call
+ *   this function directly, $results should contain at the very least:
+ *     node_types => an associative array of node type machine names
+ *     users => an array of UIDs
+ *     title_length => max number of words in titles, for example 4.
  */
 function devel_generate_content_add_node(&$results) {
   $node = new stdClass();
@@ -675,7 +662,7 @@ function devel_generate_content_add_node(&$results) {
   $node->revision = mt_rand(0,1);
   $node->promote = mt_rand(0, 1);
 
-  if ($type->has_title) {
+  if (!$type || $type->has_title) {
     // We should not use the random function if the value is not random
     if ($results['title_length'] < 2) {
       $node->title = devel_create_greeking(1, TRUE);

+ 3 - 4
sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.info

@@ -6,9 +6,8 @@ tags[] = developer
 configure = admin/config/development/generate
 files[] = devel_generate.test
 
-; Information added by Drupal.org packaging script on 2014-05-01
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2019-02-22
+version = "7.x-1.7"
 core = "7.x"
 project = "devel"
-datestamp = "1398963366"
-
+datestamp = "1550852892"

+ 11 - 6
sites/all/modules/contrib/dev/devel/devel_generate/devel_generate.module

@@ -91,7 +91,8 @@ function devel_generate_users_form() {
     '#default_value' => 604800,
   );
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Generate'),
   );
@@ -225,7 +226,8 @@ function devel_generate_content_form() {
     '#default_value' => array(LANGUAGE_NONE),
   );
 
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Generate'),
   );
@@ -292,7 +294,8 @@ function devel_generate_term_form() {
     '#title' => t('Delete existing terms in specified vocabularies before generating new terms.'),
     '#default_value' => FALSE,
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Generate'),
   );
@@ -320,7 +323,8 @@ function devel_generate_vocab_form() {
     '#title' => t('Delete existing vocabularies before generating new ones.'),
     '#default_value' => FALSE,
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Generate'),
   );
@@ -435,7 +439,7 @@ function devel_generate_menu_form() {
       '#size' => 10,
       '#states' => array(
         'visible' => array(
-          ':input[name=existing_menus[__new-menu__]]' => array('checked' => TRUE),
+          ':input[name="existing_menus[__new-menu__]"]' => array('checked' => TRUE),
         ),
       ),
     );
@@ -487,7 +491,8 @@ function devel_generate_menu_form() {
     '#title' => t('Delete existing custom generated menus and menu links before generating new ones.'),
     '#default_value' => FALSE,
   );
-  $form['submit'] = array(
+  $form['actions'] = array('#type' => 'actions');
+  $form['actions']['submit'] = array(
     '#type' => 'submit',
     '#value' => t('Generate'),
   );

+ 11 - 11
sites/all/modules/contrib/dev/devel/devel_generate/devel_generate_batch.inc

@@ -1,30 +1,29 @@
 <?php
 
 /**
- * Devel Generate batch handling functions using the BatchAPI
+ * Devel Generate batch handling functions using the BatchAPI.
  */
 
 /**
- * Functions called from FAPI:
+ * Form constructor generating in batches.
  */
-
 function devel_generate_batch_content($form_state) {
   $operations = array();
 
   // Setup the batch operations and save the variables.
   $operations[] = array('devel_generate_batch_content_pre_node', array($form_state['values']));
 
-  // add the kill operation
+  // Add the kill operation.
   if ($form_state['values']['kill_content']) {
     $operations[] = array('devel_generate_batch_content_kill', array());
   }
 
-  // add the operations to create the nodes
+  // Add the operations to create the nodes.
   for ($num = 0; $num < $form_state['values']['num_nodes']; $num ++) {
     $operations[] = array('devel_generate_batch_content_add_node', array());
   }
 
-  // start the batch
+  // Start the batch.
   $batch = array(
     'title' => t('Generating Content'),
     'operations' => $operations,
@@ -34,10 +33,6 @@ function devel_generate_batch_content($form_state) {
   batch_set($batch);
 }
 
-/**
- * Create Content Batch Functions:
- */
-
 function devel_generate_batch_content_kill(&$context) {
   module_load_include('inc', 'devel_generate', 'devel_generate');
   devel_generate_content_kill($context['results']);
@@ -50,12 +45,18 @@ function devel_generate_batch_content_pre_node($vars, &$context) {
   devel_generate_content_pre_node($context['results']);
 }
 
+/**
+ * Batch API callback: Generate nodes.
+ */
 function devel_generate_batch_content_add_node(&$context) {
   module_load_include('inc', 'devel_generate', 'devel_generate');
   devel_generate_content_add_node($context['results']);
   $context['results']['num_nids'] ++;
 }
 
+/**
+ * Display a message when a batch is complete.
+ */
 function devel_generate_batch_finished($success, $results, $operations) {
   if ($success) {
     $message = t('Finished @num_nids nodes created successfully.', array('@num_nids' => $results['num_nids']));
@@ -65,4 +66,3 @@ function devel_generate_batch_finished($success, $results, $operations) {
   }
   drupal_set_message($message);
 }
-

+ 14 - 7
sites/all/modules/contrib/dev/devel/devel_generate/file.devel_generate.inc

@@ -14,15 +14,22 @@ function _file_devel_generate($object, $field, $instance, $bundle) {
 
   if (empty($file)) {
     if ($path = devel_generate_textfile()) {
-      $source = new stdClass();
-      $source->uri = $path;
-      $source->uid = 1; // TODO: randomize? use case specific.
-      $source->filemime = 'text/plain';
-      $source->filename = basename($path);
       $destination_dir = $field['settings']['uri_scheme'] . '://' . $instance['settings']['file_directory'];
       file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
-      $destination = $destination_dir . '/' . basename($path);
-      $file = file_move($source, $destination, FILE_CREATE_DIRECTORY);
+      if ($uri = file_unmanaged_move($path, $destination_dir)) {
+        $file = new stdClass();
+        $file->fid = NULL;
+        $file->uri = $uri;
+        $file->filename = drupal_basename($uri);
+        $file->filemime = file_get_mimetype($file->uri);
+        // @todo Randomize file owner.
+        $file->uid = 1;
+        $file->devel_generate = TRUE;
+        $file = file_save($file);
+      }
+      else {
+        return FALSE;
+      }
     }
     else {
       return FALSE;

+ 14 - 8
sites/all/modules/contrib/dev/devel/devel_generate/image.devel_generate.inc

@@ -29,16 +29,22 @@ function _image_devel_generate($object, $field, $instance, $bundle) {
   // Generate a max of 5 different images.
   if (!isset($images[$extension][$min_resolution][$max_resolution]) || count($images[$extension][$min_resolution][$max_resolution]) <= DEVEL_GENERATE_IMAGE_MAX) {
     if ($path = devel_generate_image($extension, $min_resolution, $max_resolution)) {
-      $source = new stdClass();
-      $source->uri = $path;
-      $source->uid = 1; // TODO: randomize? Use case specific.
-      $source->filemime = 'image/' . pathinfo($path, PATHINFO_EXTENSION);
-      $source->filename = basename($path);
       $destination_dir = $field['settings']['uri_scheme'] . '://' . $instance['settings']['file_directory'];
       file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY);
-      $destination = $destination_dir . '/' . basename($path);
-      $file = file_move($source, $destination, FILE_CREATE_DIRECTORY);
-      $images[$extension][$min_resolution][$max_resolution][$file->fid] = $file;
+      if ($uri = file_unmanaged_move($path, $destination_dir)) {
+        $file = new stdClass();
+        $file->fid = NULL;
+        $file->uri = $uri;
+        $file->filename = drupal_basename($uri);
+        $file->filemime = file_get_mimetype($file->uri);
+        // @todo Randomize file owner.
+        $file->uid = 1;
+        $file = file_save($file);
+        $images[$extension][$min_resolution][$max_resolution][$file->fid] = $file;
+      }
+      else {
+        return FALSE;
+      }
     }
     else {
       return FALSE;

+ 4 - 3
sites/all/modules/contrib/dev/devel/devel_generate/text.devel_generate.inc

@@ -21,14 +21,15 @@ function _text_devel_generate($object, $field, $instance, $bundle) {
 
   if (empty($field['settings']['max_length'])) {
     // Textarea handling
-    $object_field['value'] = devel_create_content($format);
+    $object_field['value'] = devel_create_content();
     if ($instance['widget']['type'] == 'text_textarea_with_summary' && !empty($instance['display_summary'])) {
-      $object_field['summary'] = devel_create_content($format);
+      $object_field['summary'] = devel_create_content();
     }
   }
   else {
     // Textfield handling.
-    $object_field['value'] = substr(devel_create_greeking(mt_rand(1, $field['settings']['max_length'] / 6), FALSE), 0, $field['settings']['max_length']);
+    $max = ceil($field['settings']['max_length'] / 6);
+    $object_field['value'] = substr(devel_create_greeking(mt_rand(1, $max), FALSE), 0, $field['settings']['max_length']);
   }
   $object_field['format'] = $format;
   return $object_field;

+ 11 - 0
sites/all/modules/contrib/dev/devel/devel_krumo.css

@@ -0,0 +1,11 @@
+/**
+ * Krumo
+ */
+.krumo-version,
+.krumo-call {
+  white-space: nowrap;
+}
+
+.krumo-nest {
+  display: none;
+}

+ 28 - 7
sites/all/modules/contrib/dev/devel/devel_krumo_path.js → sites/all/modules/contrib/dev/devel/devel_krumo.js

@@ -1,13 +1,21 @@
+/**
+ * @file
+ * Behaviors for Devel.
+ */
+
 (function ($) {
 
 /**
  * Attaches double-click behavior to toggle full path of Krumo elements.
+ *
+ * @type {Drupal~behavior}
  */
 Drupal.behaviors.devel = {
   attach: function (context, settings) {
 
+    // Path
     // Add hint to footnote
-    $('.krumo-footnote .krumo-call').once().before('<img style="vertical-align: middle;" title="Click to expand. Double-click to show path." src="' + settings.basePath + 'misc/help.png"/>');
+    $('.krumo-footnote .krumo-call', context).once().before('<img style="vertical-align: middle;" title="Click to expand. Double-click to show path." src="' + settings.basePath + 'misc/help.png"/>');
 
     var krumo_name = [];
     var krumo_type = [];
@@ -21,7 +29,9 @@ Drupal.behaviors.devel = {
       }
     }
 
-    $('.krumo-child > div:first-child', context).dblclick(
+    $('.krumo-child > div:first-child', context).once('krumo_path',
+    function() {
+      $(this).dblclick(
       function(e) {
         if ($(this).find('> .krumo-php-path').length > 0) {
           // Remove path if shown.
@@ -58,9 +68,20 @@ Drupal.behaviors.devel = {
           krumo_name = [];
           krumo_type = [];
         }
-      }
-    );
-  }
-};
+      });
+    });
+
+    // Events
+    $('.krumo-element').once('krumo-events', function() {
+      $(this).click(function() {
+        krumo.toggle(this);
+      }).mouseover(function() {
+        krumo.over(this);
+      }).mouseout(function() {
+        krumo.out(this);
+      });
+    });// End krumo-events .once
+  }// End attach.
+};// End behaviors.devel.
 
-})(jQuery);
+})(jQuery);// end outer function

+ 8 - 8
sites/all/modules/contrib/dev/devel/devel_node_access.api.php

@@ -13,19 +13,19 @@
 /**
  * Explain your records in the {node_access} table.
  *
- * In order to help developers and administrators understand the forces
- * that control access to any given node, the DNA module provides the
+ * In order to help developers and administrators understand the forces that
+ * control access to any given node, the DNA module provides the
  * Devel Node Access block, which lists all the grant records in the
  * {node_access} table for that node.
  *
  * However, every Node Access module is free in how it defines and uses the
- * 'realm' and 'gid' fields in its records in the {node_access} table, and
- * it's often difficult to interpret them. This hook passes each record
- * that DNA wants to display, and the owning module is expected to return
- * an explanation of that record.
+ * 'realm' and 'gid' fields in its records in the {node_access} table, and it's
+ * often difficult to interpret them. This hook passes each record that DNA
+ * wants to display, and the owning module is expected to return an explanation
+ * of that record.
  *
- * The explanation should not be localized (not be passed through t()), so
- * that administrators seeking help can present English explanations.
+ * The explanation should not be localized (not be passed through t()), so that
+ * administrators seeking help can present English explanations.
  *
  * @param $row
  *   The record from the {node_access} table, as object. The member fields are:

+ 3 - 4
sites/all/modules/contrib/dev/devel/devel_node_access.info

@@ -6,9 +6,8 @@ core = 7.x
 configure = admin/config/development/devel
 tags[] = developer
 
-; Information added by Drupal.org packaging script on 2014-05-01
-version = "7.x-1.5"
+; Information added by Drupal.org packaging script on 2019-02-22
+version = "7.x-1.7"
 core = "7.x"
 project = "devel"
-datestamp = "1398963366"
-
+datestamp = "1550852892"

+ 5 - 0
sites/all/modules/contrib/dev/devel/devel_node_access.install

@@ -1,5 +1,10 @@
 <?php
 
+/**
+ * @file
+ * Uninstall function for Devel node access.
+ */
+
 /**
  * Implements hook_uninstall().
  */

+ 5 - 2
sites/all/modules/contrib/dev/devel/devel_node_access.js

@@ -1,11 +1,12 @@
 /**
- * @file devel_node_access.js.
+ * @file
+ * Behavior for Devel node access.
  */
 
 (function ($) {
 
   /**
-   * Perform the access by user ajax request.
+   * Performs the access by user ajax request.
    */
   function devel_node_access_user_ajax(context, settings) {
     // Get the cell ID for the first .dna-permission that isn't processed.
@@ -53,6 +54,8 @@
 
   /**
    * Attach the access by user behavior which initiates ajax.
+   *
+   * @type {Drupal~behavior}
    */
   Drupal.behaviors.develNodeAccessUserAjax = {
     attach: function(context, settings) {

+ 135 - 63
sites/all/modules/contrib/dev/devel/devel_node_access.module

@@ -1,15 +1,18 @@
 <?php
 /**
  * @file
+ * Functions for debugging node access permissions.
  *
- * This module gives developers feedback as to what their
- * node_access table contains, and which nodes are protected or
- * visible to the public.
+ * This module gives developers feedback as to what their node_access table
+ * contains, and which nodes are protected or visible to the public.
  *
  */
 
 define('DNA_ACCESS_VIEW', 'view devel_node_access information');
 
+/**
+ * Implements hook_permission().
+ */
 function devel_node_access_permission() {
   return array(
     'view devel_node_access information' => array(
@@ -51,7 +54,7 @@ function devel_node_access_menu() {
 
   if (!module_exists('devel')) {
     if (!menu_load('devel')) {
-      // we have to create the 'devel' menu ourselves
+      // We have to create the 'devel' menu ourselves.
       $menu = array(
         'menu_name'   => 'devel',
         'title'       => 'Development',
@@ -60,10 +63,10 @@ function devel_node_access_menu() {
       menu_save($menu);
     }
 
-    // we have to create the 'Devel settings' menu item ourselves
+    // We have to create the 'Devel settings' menu item ourselves.
     $items['admin/config/development/devel'] = array(
       'title'            => 'Devel settings',
-      'description'      => 'Helper pages and blocks to assist Drupal developers and admins with node_access. The devel blocks can be managed via the <a href="' . url('admin/structure/block') . '">block administration</a> page.',
+      'description'      => 'Helper pages and blocks to assist Drupal developers and admins with node_access. The devel blocks can be managed via the <a href="/admin/structure/block">block administration</a> page.',
       'page callback'    => 'drupal_get_form',
       'page arguments'   => array('devel_node_access_admin_settings'),
       'access arguments' => array('administer site configuration'),
@@ -73,7 +76,7 @@ function devel_node_access_menu() {
     );
   }
 
-  // create a callback for use by devel_node_access_user_ajax().
+  // Create a callback for use by devel_node_access_user_ajax().
   $items['devel/node_access/by_user/%/%'] = array(
     'page callback'    => 'devel_node_access_user_ajax',
     'page arguments'   => array(3, 4),
@@ -81,7 +84,7 @@ function devel_node_access_menu() {
     'type'             => MENU_CALLBACK,
   );
 
-  // add this to the custom menu 'devel' created by the devel module.
+  // Add this to the custom menu 'devel' created by the devel module.
   $items['devel/node_access/summary'] = array(
     'title'            => 'Node_access summary',
     'page callback'    => 'dna_summary',
@@ -92,11 +95,24 @@ function devel_node_access_menu() {
   return $items;
 }
 
+/**
+ * Form constructor for Devel node access settings.
+ *
+ * @see devel_node_access_form_alter()
+ *
+ * @ingroup forms
+ */
 function devel_node_access_admin_settings() {
   $form = array();
   return system_settings_form($form);
 }
 
+/**
+ * Implements hook_form_alter().
+ *
+ * Adds form elements to devel_admin_settings() and
+ * devel_node_access_admin_settings().
+ */
 function devel_node_access_form_alter(&$form, $form_state, $form_id) {
   $tr = 't';
   if ($form_id == 'devel_admin_settings' || $form_id == 'devel_node_access_admin_settings') {
@@ -126,6 +142,9 @@ function devel_node_access_form_alter(&$form, $form_state, $form_id) {
   }
 }
 
+/**
+ * Page callback for the Devel node access summary.
+ */
 function dna_summary() {
   // warn user if they have any entries that could grant access to all nodes
   $output = '';
@@ -221,6 +240,16 @@ function dna_summary() {
   return $output;
 }
 
+/**
+ * Retreives the nodes visible in the current menu entry.
+ *
+ * @param integer $nid
+ *   (optional) A node ID to add to the list.
+ *
+ * @return array
+ *   An associative array of Node ID's that this function has been called with
+ *   keyed by Node ID.
+ */
 function dna_visible_nodes($nid = NULL) {
   static $nids = array();
   if ($nid) {
@@ -237,11 +266,21 @@ function dna_visible_nodes($nid = NULL) {
   return $nids;
 }
 
+/**
+ * Implements hook_node_view().
+ */
 function devel_node_access_node_view($node, $build_mode) {
   // remember this node, for display in our block
   dna_visible_nodes($node->nid);
 }
 
+/**
+ * Invokes a hook.
+ *
+ * @return
+ *   The results of the hook invocation keyed by the machine name of the
+ *   implementing module.
+ */
 function _devel_node_access_module_invoke_all() {  // array and scalar returns
   $args = func_get_args();
   $hook = $args[0];
@@ -254,12 +293,12 @@ function _devel_node_access_module_invoke_all() {  // array and scalar returns
       if (isset($result)) {
         if (is_array($result)) {
           foreach ($result as $key => $value) {
-            // add name of module that returned the value:
+            // Add name of module that returned the value.
             $result[$key]['#module'] = $module;
           }
         }
         else {
-          // build array with result keyed by $module:
+          // Build array with result keyed by $module.
           $result = array($module => $result);
         }
         $return = array_merge_recursive($return, $result);
@@ -270,12 +309,13 @@ function _devel_node_access_module_invoke_all() {  // array and scalar returns
 }
 
 /**
- * Helper function to build an associative array of grant records and their
- * history. If there are duplicate records, display an error message.
+ * Builds an associative array of grant records and their history.
+ *
+ * If there are duplicate records, display an error message.
  *
  * @param $grants
- *   An indexed array of grant records, augmented by the '#module' key,
- *   as created by _devel_node_access_module_invoke_all('node_access_records').
+ *   An indexed array of grant records, augmented by the '#module' key, as
+ *   created by _devel_node_access_module_invoke_all('node_access_records').
  *
  * @param $node
  *   The node that the grant records belong to.
@@ -321,8 +361,7 @@ function _devel_node_access_build_nar_data($grants, $node, $function) {
 }
 
 /**
- * Helper function to mimic hook_node_access_records_alter() and trace what
- * each module does with it.
+ * Mimics hook_node_access_records_alter() and traces what each module does with it.
  *
  * @param object $grants
  *   An indexed array of grant records, augmented by the '#module' key,
@@ -350,18 +389,19 @@ function _devel_node_access_nar_alter(&$grants, $node) {
   isset($drupal_static['drupal_alter']) || ($drupal_static['drupal_alter'] = &drupal_static('drupal_alter'));
   $functions = $drupal_static['drupal_alter'];
 
-  // build the initial tree (and check for duplicates)
+  // Build the initial tree (and check for duplicates).
   $data = _devel_node_access_build_nar_data($grants, $node, 'hook_node_access_records()');
 
-  // simulate drupal_alter('node_access_records', $grants, $node);
+  // Simulate drupal_alter('node_access_records', $grants, $node);
   foreach ($functions['node_access_records'] as $function) {
-    // call hook_node_access_records_alter() for one module at a time and analyze
+    // Call hook_node_access_records_alter() for one module at a time and
+    // analyze.
     $function($grants, $node); // <==
     $module = substr($function, 0, strlen($function) - 26);
 
     foreach ($grants as $i => $grant) {
       if (empty($data[$grant['realm']][$grant['gid']]['current'])) {
-        // it's an added grant
+        // It's an added grant.
         $data[$grant['realm']][$grant['gid']]['current'] = $grant;
         $data[$grant['realm']][$grant['gid']]['current']['#module'] = $module;
         $data[$grant['realm']][$grant['gid']]['changes'][] = array(
@@ -371,14 +411,14 @@ function _devel_node_access_nar_alter(&$grants, $node) {
         $grants[$i]['#module'] = $module;
       }
       else {
-        // it's an existing grant, check for changes
+        // It's an existing grant, check for changes.
         $view = $update = $delete = FALSE;
         foreach (array('view', 'update', 'delete') as $op) {
           $$op = $grant["grant_$op"] - $data[$grant['realm']][$grant['gid']]['current']["grant_$op"];
         }
         $priority = $grant['priority'] - $data[$grant['realm']][$grant['gid']]['current']['priority'];
         if ($view || $update || $delete || $priority) {
-          // it was changed
+          // It was changed.
           $data[$grant['realm']][$grant['gid']]['current'] = $grant;
           $data[$grant['realm']][$grant['gid']]['current']['#module'] = $module;
           $data[$grant['realm']][$grant['gid']]['changes'][] = array(
@@ -391,10 +431,10 @@ function _devel_node_access_nar_alter(&$grants, $node) {
       $data[$grant['realm']][$grant['gid']]['found'] = TRUE;
     }
 
-    // check for newly introduced duplicates
+    // Check for newly introduced duplicates.
     _devel_node_access_build_nar_data($grants, $node, 'hook_node_access_records_alter()');
 
-    // look for grant records that have disappeared
+    // Look for grant records that have disappeared.
     foreach ($data as $realm => $data2) {
       foreach ($data2 as $gid => $data3) {
         if (empty($data[$realm][$gid]['found']) && isset($data[$realm][$gid]['current'])) {
@@ -413,14 +453,12 @@ function _devel_node_access_nar_alter(&$grants, $node) {
 }
 
 /**
- * Helper function to mimic hook_node_grants_alter() and trace what
- * each module does with it.
+ * Mimics hook_node_grants_alter() and traces what each module does with it.
  *
  * @param object $grants
- *   An indexed array of grant records, augmented by the '#module' key,
- *   as created by _devel_node_access_module_invoke_all('node_grants').
- *   This array is updated by the hook_node_grants_alter()
- *   implementations.
+ *   An indexed array of grant records, augmented by the '#module' key, as
+ *   created by _devel_node_access_module_invoke_all('node_grants'). This array
+ *   is updated by the hook_node_grants_alter() implementations.
  *
  * @param $node
  *   The node that the grant records belong to.
@@ -429,12 +467,13 @@ function _devel_node_access_nar_alter(&$grants, $node) {
  *   A tree representation of the grant records in $grants including their
  *   history:
  *     $data[$realm][$gid]
- *       ['cur']    - TRUE or FALSE whether the gid is present or not
- *       ['ori'][]  - array of module names that contributed this grant (if any)
- *       ['chg'][]  - array of changes, such as
- *                       - 'added' if module name is a prefix if the $realm,
- *                       - 'added by module' otherwise, or
- *                       - 'removed by module'
+ *     - ['cur']: TRUE or FALSE whether the gid is present or not
+ *     - ['ori'][]: An array of module names that contributed this grant (if
+ *       any)
+ *     - ['chg'][]: An array of changes, such as
+ *       - 'added' if module name is a prefix if the $realm,
+ *       - 'added by module' otherwise, or
+ *       - 'removed by module'
  */
 function _devel_node_access_ng_alter(&$grants, $account, $op) {
   //dpm($grants, '_devel_node_access_ng_alter(): grants IN');
@@ -444,7 +483,7 @@ function _devel_node_access_ng_alter(&$grants, $account, $op) {
   isset($drupal_static['drupal_alter']) || ($drupal_static['drupal_alter'] = &drupal_static('drupal_alter'));
   $functions = $drupal_static['drupal_alter'];
 
-  // build the initial structure
+  // Build the initial structure.
   $data = array();
   foreach ($grants as $realm => $gids) {
     foreach ($gids as $i => $gid) {
@@ -456,13 +495,13 @@ function _devel_node_access_ng_alter(&$grants, $account, $op) {
     unset($grants[$realm]['#module']);
   }
 
-  // simulate drupal_alter('node_grants', $grants, $account, $op);
+  // Simulate drupal_alter('node_grants', $grants, $account, $op);
   foreach ($functions['node_grants'] as $function) {
-    // call hook_node_grants_alter() for one module at a time and analyze
+    // Call hook_node_grants_alter() for one module at a time and analyze.
     $function($grants, $account, $op); // <==
     $module = substr($function, 0, strlen($function) - 18);
 
-    // check for new gids
+    // Check for new gids.
     foreach ($grants as $realm => $gids) {
       foreach ($gids as $i => $gid) {
         if (empty($data[$realm][$gid]['cur'])) {
@@ -472,7 +511,7 @@ function _devel_node_access_ng_alter(&$grants, $account, $op) {
       }
     }
 
-    // check for removed gids
+    // Check for removed gids.
     foreach ($data as $realm => $gids) {
       foreach  ($gids as $gid => $history) {
         if ($history['cur'] && array_search($gid, $grants[$realm]) === FALSE) {
@@ -598,9 +637,9 @@ function devel_node_access_block_view($delta) {
         foreach ($nids as $nid) {
           $acquired_grants_nid = array();
           if ($node = node_load($nid)) {
-            // check node_access_acquire_grants()
+            // Check node_access_acquire_grants().
             $grants = _devel_node_access_module_invoke_all('node_access_records', $node);
-            // check drupal_alter('node_access_records')
+            // Check drupal_alter('node_access_records').
             $data = _devel_node_access_nar_alter($grants, $node);
             /* (This was the D6 implementation that didn't analyze the hook_node_access_records_alter() details.)
             if (!empty($grants)) {
@@ -645,19 +684,20 @@ function devel_node_access_block_view($delta) {
             }
             /**/
             //dpm($acquired_grants_nid, "acquired_grants_nid =");
-            // check node_access_grants()
+            // Check node_access_grants().
             $published_nid[$nid] = $node->status;
             if ($node->nid) {
               foreach (array('view', 'update', 'delete') as $op) {
                 $grants = _devel_node_access_module_invoke_all('node_grants', $user, $op);
-                // call all hook_node_grants_alter() implementations
+                // Call all hook_node_grants_alter() implementations.
                 $ng_alter_datas[$op] = _devel_node_access_ng_alter($grants, $user, $op);
                 $checked_grants[$nid][$op] = array_merge(array('all' => array(0)), $grants);
               }
             }
           }
 
-          // check for grants in the node_access table that aren't returned by node_access_acquire_grants()
+          // Check for grants in the node_access table that aren't returned by
+          // node_access_acquire_grants().
 
           if (isset($active_grants[$nid])) {
             foreach ($active_grants[$nid] as $realm => $active_grants_realm) {
@@ -686,14 +726,15 @@ function devel_node_access_block_view($delta) {
                 elseif (!$found) {
                   $acknowledged = _devel_node_access_module_invoke_all('node_access_acknowledge', $fixed_grant);
                   if (empty($acknowledged)) {
-                    // no module acknowledged this record, mark it as alien
+                    // No module acknowledged this record, mark it as alien.
                     $fixed_grant += array(
                       'priority' => '?',
                       'state'    => 'alien',
                     );
                   }
                   else {
-                    // at least one module acknowledged the record, attribute it to the first one
+                    // At least one module acknowledged the record. Attribute it
+                    // to the first one.
                     $acknowledged_keys = array_keys($acknowledged);
                     $fixed_grant += array(
                       'priority' => '&ndash;',
@@ -714,7 +755,7 @@ function devel_node_access_block_view($delta) {
             }
           }
 
-          // order grants and evaluate their status
+          // Order grants and evaluate their status.
           foreach ($acquired_grants_nid as $priority => $acquired_grants_priority) {
             ksort($acquired_grants_priority);
             foreach ($acquired_grants_priority as $realm => $acquired_grants_realm) {
@@ -750,7 +791,7 @@ function devel_node_access_block_view($delta) {
           }
         }
 
-        // fill in the table rows
+        // Fill in the table rows.
         $rows = array();
         $error_count = 0;
         foreach ($all_grants as $grant) {
@@ -804,7 +845,7 @@ function devel_node_access_block_view($delta) {
             );
           }
 
-          // prepend information from the D7 hook_node_access_records_alter()
+          // Prepend information from the D7 hook_node_access_records_alter().
           $next_style = array();
           if (isset($grant['history'])) {
             $history = $grant['history'];
@@ -845,14 +886,15 @@ function devel_node_access_block_view($delta) {
             }
           }
 
-          // fix up the main row cells with the proper class (needed for Bartik)
+          // Fix up the main row cells with the proper class (needed for
+          // Bartik).
           foreach ($row as $key => $value) {
             if (!is_array($value)) {
               $row[$key] = array('data' => $value);
             }
             $row[$key]['class'] = array($class);
           }
-          // add the main row
+          // Add the main row.
           $will_append = empty($history['current']) && !empty($history['changes']);
           $rows[] = array(
             'data'  => array_values($row),
@@ -860,7 +902,7 @@ function devel_node_access_block_view($delta) {
             'style' => array_merge($next_style, ($will_append ? array('border-bottom-style: none;') : array())),
           );
 
-          // append information from the D7 hook_node_access_records_alter()
+          // Append information from the D7 hook_node_access_records_alter().
           if ($will_append) {
             $last_change = end($history['changes']);
             $rows[] = array(
@@ -903,7 +945,8 @@ function devel_node_access_block_view($delta) {
           );
         }
 
-        // Explain whether access is granted or denied, and why (using code from node_access()).
+        // Explain whether access is granted or denied, and why (using code from
+        // node_access()).
         $tr = 't';
         array_shift($nids);  // remove the 0
         $accounts = array();
@@ -932,7 +975,7 @@ function devel_node_access_block_view($delta) {
         $menu_item = menu_get_item();
         $map = $menu_item['original_map'];
         if ($map[0] == 'node' && isset($map[1]) && is_numeric($map[1]) && !isset($map[2]) && !$block1_visible) {
-          // only for single nodes
+          // Only for single nodes.
           if (user_is_logged_in()) {
             $accounts[] = user_load(0);  // Anonymous, too
           }
@@ -988,7 +1031,7 @@ function devel_node_access_block_view($delta) {
       return array('subject' => $subject, 'content' => $output);
 
     case 'dna_user':
-      // show which users can access this node
+      // Show which users can access this node.
       $menu_item = menu_get_item();
       $map = $menu_item['original_map'];
       if ($map[0] != 'node' || !isset($map[1]) || !is_numeric($map[1]) || isset($map[2])) {
@@ -1079,7 +1122,7 @@ function devel_node_access_block_view($delta) {
 }
 
 /**
- * Callback function for node access by user block ajax.
+ * Page callback for node access by user block ajax.
  */
 function devel_node_access_user_ajax($data_type, $cell) {
   list($op, $nid, $uid) = explode('-', $cell);
@@ -1117,7 +1160,8 @@ function devel_node_access_user_ajax($data_type, $cell) {
 /**
  * Helper function that mimicks node.module's node_access() function.
  *
- * Unfortunately, this needs to be updated manually whenever node.module changes!
+ * Unfortunately, this needs to be updated manually whenever node.module
+ * changes!
  *
  * @return
  *   An array suitable for theming with theme_dna_permission().
@@ -1257,7 +1301,13 @@ function _devel_node_access_explain_access($op, $node, $account = NULL) {
 }
 
 /**
- * Helper function to create a list of the grants returned by hook_node_grants().
+ * Creates a list of the grants returned by hook_node_grants().
+ *
+ * @param integer $nid
+ * @param array $ng_alter_data
+ *
+ * @return
+ *   A themed item list of grants.
  */
 function _devel_node_access_get_grant_list($nid, $ng_alter_data) {
   //dpm($ng_alter_data, "_devel_node_access_get_grant_list($nid,");
@@ -1323,7 +1373,16 @@ function devel_node_access_node_access_explain($row) {
 }
 
 /**
- * Helper function to return a sanitized node title.
+ * Return a sanitized node title.
+ *
+ * @param $node
+ *   The node from which to get the title.
+ * @param boolean $clip_and_decorate
+ *   (optional) Set to TRUE to limit the length of the returned title and to add
+ *   markup to make it easier to style.
+ *
+ * @return string
+ *   The sanitized node title.
  */
 function _devel_node_access_get_node_title($node, $clip_and_decorate = FALSE) {
   if (isset($node)) {
@@ -1345,7 +1404,13 @@ function _devel_node_access_get_node_title($node, $clip_and_decorate = FALSE) {
 }
 
 /**
- * Helper function to apply common formatting to a debug-mode table row.
+ * Applies common formatting to a debug-mode table row.
+ *
+ * @param array $row
+ *   The row to format.
+ * @param boolean $may_unpack
+ *   (optional) Indicates if $row['data'] needs be formatted rather than $row
+ *   itself.  Default is TRUE.
  */
 function _devel_node_access_format_row($row, $may_unpack = TRUE) {
   if ($may_unpack && isset($row['data'])) {
@@ -1385,7 +1450,14 @@ function devel_node_access_theme() {
 }
 
 /**
- * Indicate whether user has a permission or not.
+ * Returns HTML to indicate if a user has a permission.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - permission: An indexed array containing:
+ *     - 0: A value indicating if the user has permission.
+ *     - 1: The text of the message to display.
+ *     - 2: The title to display containing additional information.
  */
 function theme_dna_permission($variables) {
   $permission = &$variables['permission'];

+ 32 - 32
sites/all/modules/contrib/dev/devel/krumo/INSTALL

@@ -1,32 +1,32 @@
-------------------------------------------------------------------------------
-
-                     SETUP: How to install Krumo ?
-
-------------------------------------------------------------------------------
-
-In order to use Krumo you have to put it on your (development) server, and 
-include it in your script. You can put it somewhere in the INCLUDE_PATH, or 
-specify the full path to the "class.krumo.php" file.
-
-You have to modify the "krumo.ini" file too. It is the configuration file for 
-Krumo. The first option is choosing a skin:
-
- [skin]
- selected = "orange"
-
-The value for this setting has to be the name of one of the sub-folders from the 
-"Krumo/skins/" folder. If the value provided for the skin results in not finding 
-the skin, the `default` skin will be used instead.
-
-The second option is used to set the correct web path to the folder where Krumo 
-is installed. This is used in order to make the images from Krumo's CSS skins 
-web-accessible.
-
- [css]
- url = "http://www.example.com/Krumo/"
-
-So far those two are the only configuration options.
-
-All the CSS files ("skin.css") from the "Krumo/skins/" sub-folders must have the 
-proper permissions in order to be readable from Krumo. Same applies for 
-"krumo.ini" and "krumo.js" files.
+------------------------------------------------------------------------------
+
+                     SETUP: How to install Krumo ?
+
+------------------------------------------------------------------------------
+
+In order to use Krumo you have to put it on your (development) server, and
+include it in your script. You can put it somewhere in the INCLUDE_PATH, or
+specify the full path to the "class.krumo.php" file.
+
+You have to modify the "krumo.ini" file too. It is the configuration file for
+Krumo. The first option is choosing a skin:
+
+ [skin]
+ selected = "orange"
+
+The value for this setting has to be the name of one of the sub-folders from the
+"Krumo/skins/" folder. If the value provided for the skin results in not finding
+the skin, the `default` skin will be used instead.
+
+The second option is used to set the correct web path to the folder where Krumo
+is installed. This is used in order to make the images from Krumo's CSS skins
+web-accessible.
+
+ [css]
+ url = "http://www.example.com/Krumo/"
+
+So far those two are the only configuration options.
+
+All the CSS files ("skin.css") from the "Krumo/skins/" sub-folders must have the
+proper permissions in order to be readable from Krumo. Same applies for
+"krumo.ini" and "krumo.js" files.

+ 504 - 504
sites/all/modules/contrib/dev/devel/krumo/LICENSE

@@ -1,504 +1,504 @@
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+

+ 103 - 103
sites/all/modules/contrib/dev/devel/krumo/README

@@ -1,103 +1,103 @@
-=============================================================================
-
-                               Krumo
-                            version 0.2.1a
-
-=============================================================================
-
-You probably got this package from...
-http://www.sourceforge.net/projects/krumo/
-
-If there is no licence agreement with this package please download
-a version from the location above. You must read and accept that
-licence to use this software. The file is titled simply LICENSE.
-
-OVERVIEW
-------------------------------------------------------------------------------
-To put it simply, Krumo is a replacement for print_r() and var_dump(). By 
-definition Krumo is a debugging tool (for PHP5), which displays structured 
-information about any PHP variable.
-
-A lot of developers use print_r() and var_dump() in the means of debugging 
-tools. Although they were intended to present human readble information about a 
-variable, we can all agree that in general they are not. Krumo is an 
-alternative: it does the same job, but it presents the information beautified 
-using CSS and DHTML. 
-
-EXAMPLES
-------------------------------------------------------------------------------
-Here's a basic example, which will return a report on the array variable passed 
-as argument to it:
-
- krumo(array('a1'=> 'A1', 3, 'red'));
-
-You can dump simultaneously more then one variable - here's another example:
-
- krumo($_SERVER, $_REQUEST);
-
-You probably saw from the examples above that some of the nodes are expandable, 
-so if you want to inspect the nested information, click on them and they will 
-expand; if you do not need that information shown simply click again on it to 
-collapse it. Here's an example to test this:
-
- $x1->x2->x3->x4->x5->x6->x7->x8->x9 = 'X10';
- krumo($x1);
-
-The krumo() is the only standalone function from the package, and this is 
-because basic dumps about variables (like print_r() or var_dump()) are the most 
-common tasks such functionality is used for. The rest of the functionality can 
-be called using static calls to the Krumo class. Here are several more examples:
-
- // print a debug backgrace
- krumo::backtrace();
-
- // print all the included(or required) files
- krumo::includes();
- 
- // print all the included functions
- krumo::functions();
- 
- // print all the declared classes
- krumo::classes();
- 
- // print all the defined constants
- krumo::defines();
-
- ... and so on, etc.
-
-A full PHPDocumenter API documentation exists both in this package and at the 
-project's website.
-
-INSTALL
-------------------------------------------------------------------------------
-Read the INSTALL file.
-
-DOCUMENTATION
-------------------------------------------------------------------------------
-As I said, a full PHPDocumenter API documentation can be found both in this
-package and at the project's website.
-
-SKINS
-------------------------------------------------------------------------------
-There are several skins pre-installed with this package, but if you wish you can 
-create skins of your own. The skins are simply CSS files that are prepended to 
-the result that Krumo prints. If you want to use images in your CSS (for 
-background, list-style, etc), you have to put "%URL%" in front of the image URL 
-in order hook it up to the skin folder and make the image web-accessible.
-
-Here's an example:
-
- ul.krumo-first {background: url(%url%bg.gif);}
-
-TODO
-------------------------------------------------------------------------------
-You can find the list of stuff that is going to be added to this project in the 
-TODO file from this very package.
-
-CONTRIBUTION
------------------------------------------------------------------------------
-If you download and use and possibly even extend this tool, please let us know. 
-Any feedback, even bad, is always welcome and your suggestions are going to be 
-considered for our next release. Please use our SourceForge page for that:
- 
- http://www.sourceforge.net/projects/krumo/
+=============================================================================
+
+                               Krumo
+                            version 0.2.1a
+
+=============================================================================
+
+You probably got this package from...
+http://www.sourceforge.net/projects/krumo/
+
+If there is no licence agreement with this package please download
+a version from the location above. You must read and accept that
+licence to use this software. The file is titled simply LICENSE.
+
+OVERVIEW
+------------------------------------------------------------------------------
+To put it simply, Krumo is a replacement for print_r() and var_dump(). By 
+definition Krumo is a debugging tool (for PHP5), which displays structured 
+information about any PHP variable.
+
+A lot of developers use print_r() and var_dump() in the means of debugging 
+tools. Although they were intended to present human readble information about a 
+variable, we can all agree that in general they are not. Krumo is an 
+alternative: it does the same job, but it presents the information beautified 
+using CSS and DHTML. 
+
+EXAMPLES
+------------------------------------------------------------------------------
+Here's a basic example, which will return a report on the array variable passed 
+as argument to it:
+
+ krumo(array('a1'=> 'A1', 3, 'red'));
+
+You can dump simultaneously more then one variable - here's another example:
+
+ krumo($_SERVER, $_REQUEST);
+
+You probably saw from the examples above that some of the nodes are expandable, 
+so if you want to inspect the nested information, click on them and they will 
+expand; if you do not need that information shown simply click again on it to 
+collapse it. Here's an example to test this:
+
+ $x1->x2->x3->x4->x5->x6->x7->x8->x9 = 'X10';
+ krumo($x1);
+
+The krumo() is the only standalone function from the package, and this is 
+because basic dumps about variables (like print_r() or var_dump()) are the most 
+common tasks such functionality is used for. The rest of the functionality can 
+be called using static calls to the Krumo class. Here are several more examples:
+
+ // print a debug backgrace
+ krumo::backtrace();
+
+ // print all the included(or required) files
+ krumo::includes();
+ 
+ // print all the included functions
+ krumo::functions();
+ 
+ // print all the declared classes
+ krumo::classes();
+ 
+ // print all the defined constants
+ krumo::defines();
+
+ ... and so on, etc.
+
+A full PHPDocumenter API documentation exists both in this package and at the 
+project's website.
+
+INSTALL
+------------------------------------------------------------------------------
+Read the INSTALL file.
+
+DOCUMENTATION
+------------------------------------------------------------------------------
+As I said, a full PHPDocumenter API documentation can be found both in this
+package and at the project's website.
+
+SKINS
+------------------------------------------------------------------------------
+There are several skins pre-installed with this package, but if you wish you can 
+create skins of your own. The skins are simply CSS files that are prepended to 
+the result that Krumo prints. If you want to use images in your CSS (for 
+background, list-style, etc), you have to put "%URL%" in front of the image URL 
+in order hook it up to the skin folder and make the image web-accessible.
+
+Here's an example:
+
+ ul.krumo-first {background: url(%url%bg.gif);}
+
+TODO
+------------------------------------------------------------------------------
+You can find the list of stuff that is going to be added to this project in the 
+TODO file from this very package.
+
+CONTRIBUTION
+-----------------------------------------------------------------------------
+If you download and use and possibly even extend this tool, please let us know. 
+Any feedback, even bad, is always welcome and your suggestions are going to be 
+considered for our next release. Please use our SourceForge page for that:
+ 
+ http://www.sourceforge.net/projects/krumo/

+ 24 - 24
sites/all/modules/contrib/dev/devel/krumo/TODO

@@ -1,24 +1,24 @@
-******************************************************************************
-
-                                 Krumo: TODO
-
-******************************************************************************
-
-BUGS
-----------------
- - watch the SourceForge.net Bug Tracker
-
-Features: PHP
-----------------
- - Try to detect anonymous (lambda) functions
- - Try to detect whether an array is indexed or associated
- - Add var_export support for arrays and objects
- - Add JSON support for arrays and objects
- 
-Features: GUI
-----------------
- - Nicer and friendlier skin(s)
- - Add top-level links for collapsing and expanding the whole tree
- - Add object & array -level links for collapsing and expanding all the
- 	nested nodes
- - Print all parent classes for the rendered objects
+******************************************************************************
+
+                                 Krumo: TODO
+
+******************************************************************************
+
+BUGS
+----------------
+ - watch the SourceForge.net Bug Tracker
+
+Features: PHP
+----------------
+ - Try to detect anonymous (lambda) functions
+ - Try to detect whether an array is indexed or associated
+ - Add var_export support for arrays and objects
+ - Add JSON support for arrays and objects
+
+Features: GUI
+----------------
+ - Nicer and friendlier skin(s)
+ - Add top-level links for collapsing and expanding the whole tree
+ - Add object & array -level links for collapsing and expanding all the
+   nested nodes
+ - Print all parent classes for the rendered objects

+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/VERSION


+ 42 - 36
sites/all/modules/contrib/dev/devel/krumo/class.krumo.php

@@ -655,6 +655,15 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
 
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
+  /**
+  * Allows CSS and Javascript to be included without performing a krumo::dump().
+  */
+  Public Static Function addCssJs() {
+    return krumo::_css();
+  }
+
+  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
   /**
   * Print the skin (CSS)
   *
@@ -674,7 +683,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
 
     $css = '';
     // DEVEL: changed for Drupal variables system
-    $skin = variable_get('devel_krumo_skin', 'orange');
+    $skin = variable_get('devel_krumo_skin', 'default');
 
     // custom selected skin ?
     //
@@ -705,25 +714,8 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
 
       // the CSS
       //
-      ?>
-<!-- Using Krumo Skin: <?php echo preg_replace('~^' . preg_quote(realpath(KRUMO_DIR) . DIRECTORY_SEPARATOR) . '~Uis', '', realpath($_));?> -->
-<style type="text/css">
-<!--/**/
-<?php echo $css?>
-
-/**/-->
-</style>
-<?php
-      // the JS
-      //
-      ?>
-<script type="text/javascript">
-<!--//
-<?php echo join(file(KRUMO_DIR . "krumo.js"));?>
-
-//-->
-</script>
-<?php
+      drupal_add_css($css, 'inline');
+      drupal_add_js(join(file(KRUMO_DIR . "krumo.js")), 'inline');
       }
 
     return $_css;
@@ -924,7 +916,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
       //
       $_recursion_marker = krumo::_marker();
       (is_object($bee))
-        ? @($bee->$_recursion_marker++)
+        ? (empty($bee->$_recursion_marker) ? ($bee->$_recursion_marker = 1) : $bee->$_recursion_marker++)
         : @($bee[$_recursion_marker]++);
 
       $_[0][] =& $bee;
@@ -974,6 +966,29 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
   <ul class="krumo-node">
   <?php
 
+  if ($_is_object && get_class($data) != 'stdClass') {
+    // this part for protected/private properties only
+    $refl = new ReflectionClass($data);
+    foreach ($refl->getProperties() as $property) {
+      $k = $property->getName();
+      if ($k === $_recursion_marker || $property->isPublic()) {
+        continue;
+      }
+
+      // add key indicators
+      if ($property->isProtected()) {
+        $k .= ':protected';
+      }
+      elseif ($property->isPrivate()) {
+        $k .= ':private';
+      }
+
+      $property->setAccessible(TRUE);
+      $v = $property->getValue($data);
+      krumo::_dump($v, $k);
+    }
+  }
+
   // keys ?
   //
   $keys = ($_is_object)
@@ -1021,7 +1036,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
       <div class="krumo-element"
         onMouseOver="krumo.over(this);"
         onMouseOut="krumo.out(this);">
-          <a class="krumo-name"><big>&#8734;</big></a>
+          <a class="krumo-name"><span class="krumo-big">&#8734;</span></a>
           (<em class="krumo-type">Recursion</em>)
       </div>
 
@@ -1045,10 +1060,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
 ?>
 <li class="krumo-child">
 
-  <div class="krumo-element<?php echo count($data) > 0 ? ' krumo-expand' : '';?>"
-    <?php if (count($data) > 0) {?> onClick="krumo.toggle(this);"<?php } ?>
-    onMouseOver="krumo.over(this);"
-    onMouseOut="krumo.out(this);">
+  <div class="krumo-element<?php echo !empty($data) ? ' krumo-expand' : '';?>">
 
       <?php /* DEVEL: added htmlSpecialChars */ ?>
       <a class="krumo-name"><?php echo htmlSpecialChars($name);?></a>
@@ -1097,10 +1109,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
 ?>
 <li class="krumo-child">
 
-  <div class="krumo-element<?php echo count($data) > 0 ? ' krumo-expand' : '';?>"
-    <?php if (count($data) > 0) {?> onClick="krumo.toggle(this);"<?php } ?>
-    onMouseOver="krumo.over(this);"
-    onMouseOut="krumo.out(this);">
+  <div class="krumo-element<?php echo ' krumo-expand';?>">
 
       <?php /* DEVEL: added htmlSpecialChars */ ?>
       <a class="krumo-name"><?php echo htmlSpecialChars($name);?></a>
@@ -1108,7 +1117,7 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
       <strong class="krumo-class"><?php echo get_class($data);?></strong>
   </div>
 
-  <?php if (count($data)) {
+  <?php {
     krumo::_vars($data);
     } ?>
 </li>
@@ -1244,16 +1253,13 @@ This is a list of all the values from the <code><b><?php echo realpath($ini_file
     $_extra = false;
     $_ = $data;
     if (strLen($data) > KRUMO_TRUNCATE_LENGTH) {
-      $_ = substr($data, 0, KRUMO_TRUNCATE_LENGTH - 3) . '...';
+      $_ = drupal_substr($data, 0, KRUMO_TRUNCATE_LENGTH - 3) . '...';
       $_extra = true;
       }
 ?>
 <li class="krumo-child">
 
-  <div class="krumo-element<?php echo $_extra ? ' krumo-expand' : '';?>"
-    <?php if ($_extra) {?> onClick="krumo.toggle(this);"<?php } ?>
-    onMouseOver="krumo.over(this);"
-    onMouseOut="krumo.out(this);">
+  <div class="krumo-element<?php echo $_extra ? ' krumo-expand' : '';?>">
 
       <?php /* DEVEL: added htmlSpecialChars */ ?>
       <a class="krumo-name"><?php echo htmlSpecialChars($name);?></a>

+ 268 - 267
sites/all/modules/contrib/dev/devel/krumo/docs/Krumo/_class.krumo.php.html

@@ -1,267 +1,268 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title>Docs for page class.krumo.php</title>
-			<link rel="stylesheet" href="../media/stylesheet.css" />
-						<script src="../media/lib/classTree.js"></script>
-												<script language="javascript" type="text/javascript">
-				var imgPlus = new Image();
-				var imgMinus = new Image();
-				imgPlus.src = "../media/images/plus.png";
-				imgMinus.src = "../media/images/minus.png";
-				
-				function showNode(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-							var oImg = document.layers["img" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-							var oImg = document.all["img" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-							var oImg = document.getElementById("img" + Node);
-									break;
-							}
-					oImg.src = imgMinus.src;
-					oTable.style.display = "block";
-				}
-				
-				function hideNode(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-							var oImg = document.layers["img" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-							var oImg = document.all["img" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-							var oImg = document.getElementById("img" + Node);
-									break;
-							}
-					oImg.src = imgPlus.src;
-					oTable.style.display = "none";
-				}
-				
-				function nodeIsVisible(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-									break;
-							}
-					return (oTable && oTable.style.display == "block");
-				}
-				
-				function toggleNodeVisibility(Node){
-					if (nodeIsVisible(Node)){
-						hideNode(Node);
-					}else{
-						showNode(Node);
-					}
-				}
-			</script>
-					</head>
-		<body>
-			<div class="page-body">			

-<h2 class="file-name"><img src="../media/images/Page_logo.png" alt="File" style="vertical-align: middle">/class.krumo.php</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
-	<div class="info-box-title">Description</div>
-	<div class="nav-bar">
-					<span class="disabled">Description</span> |
-							<a href="#sec-classes">Classes</a>
-			|									<a href="#sec-constants">Constants</a>
-			|									<a href="#sec-functions">Functions</a>
-			</div>
-	<div class="info-box-body">	
-		<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Krumo: Structured information display solution</p>
-<p class="description"><p>Krumo is a debugging tool (PHP5 only), which displays structured information  about any PHP variable. It is a nice replacement for print_r() or var_dump()  which are used by a lot of PHP developers.</p></p>
-	<ul class="tags">
-				<li><span class="field">author:</span> Kaloyan K. Tsvetkov &lt;<a href="mailto:kaloyan@kaloyan.info">kaloyan@kaloyan.info</a>&gt;</li>
-				<li><span class="field">version:</span> $Id$</li>
-				<li><span class="field">license:</span> <a href="http://opensource.org/licenses/lgpl-license.php">GNU Lesser General Public License Version 2.1</a></li>
-			</ul>
-		
-			</div>
-</div>
-		
-	<a name="sec-classes"></a>	
-	<div class="info-box">
-		<div class="info-box-title">Classes</div>
-		<div class="nav-bar">
-			<a href="#sec-description">Description</a> |
-			<span class="disabled">Classes</span>
-			|										<a href="#sec-constants">Constants</a>
-				|													<a href="#sec-functions">Functions</a>
-					</div>
-		<div class="info-box-body">	
-			<table cellpadding="2" cellspacing="0" class="class-table">
-				<tr>
-					<th class="class-table-header">Class</th>
-					<th class="class-table-header">Description</th>
-				</tr>
-								<tr>
-					<td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
-						<img src="../media/images/Class.png"
-								 alt=" class"
-								 title=" class"/>
-						<a href="../Krumo/krumo.html">krumo</a>
-					</td>
-					<td>
-											Krumo API
-										</td>
-				</tr>
-							</table>
-		</div>
-	</div>
-
-	
-	<a name="sec-constants"></a>	
-	<div class="info-box">
-		<div class="info-box-title">Constants</div>
-		<div class="nav-bar">
-			<a href="#sec-description">Description</a> |
-							<a href="#sec-classes">Classes</a>
-				|									<span class="disabled">Constants</span>
-			|										<a href="#sec-functions">Functions</a>
-					</div>
-		<div class="info-box-body">	
-			<a name="defineDIR_SEP"><!-- --></a>
-<div class="oddrow">
-	
-	<div>
-		<img src="../media/images/Constant.png" />
-		<span class="const-title">
-			<span class="const-name">DIR_SEP</span> = DIRECTORY_SEPARATOR
-			(line <span class="line-number">22</span>)
-		</span>
-	</div>
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">backward compatibility: the DIR_SEP constant isn't used anymore</p>
-	
-		
-</div>
-<a name="defineKRUMO_DIR"><!-- --></a>
-<div class="evenrow">
-	
-	<div>
-		<img src="../media/images/Constant.png" />
-		<span class="const-title">
-			<span class="const-name">KRUMO_DIR</span> = dirname(__FILE__).DIRECTORY_SEPARATOR
-			(line <span class="line-number">39</span>)
-		</span>
-	</div>
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is  not defined, include_path will be used. Set KRUMO_DIR only if any other module  or application has not already set it up.</p>
-	
-		
-</div>
-<a name="defineKRUMO_TRUNCATE_LENGTH"><!-- --></a>
-<div class="oddrow">
-	
-	<div>
-		<img src="../media/images/Constant.png" />
-		<span class="const-title">
-			<span class="const-name">KRUMO_TRUNCATE_LENGTH</span> = 50
-			(line <span class="line-number">48</span>)
-		</span>
-	</div>
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">This constant sets the maximum strings of strings that will be shown  as they are. Longer strings will be truncated with this length, and  their `full form` will be shown in a child node.</p>
-	
-		
-</div>
-<a name="definePATH_SEPARATOR"><!-- --></a>
-<div class="evenrow">
-	
-	<div>
-		<img src="../media/images/Constant.png" />
-		<span class="const-title">
-			<span class="const-name">PATH_SEPARATOR</span> = OS_WINDOWS?';':':'
-			(line <span class="line-number">28</span>)
-		</span>
-	</div>
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</p>
-	
-		
-</div>
-		</div>
-	</div>
-	
-	
-	<a name="sec-functions"></a>	
-	<div class="info-box">
-		<div class="info-box-title">Functions</div>
-		<div class="nav-bar">
-			<a href="#sec-description">Description</a> |
-							<a href="#sec-classes">Classes</a>
-				|													<a href="#sec-constants">Constants</a>
-				|									<span class="disabled">Functions</span>
-		</div>
-		<div class="info-box-body">	
-			<a name="functionkrumo" id="functionkrumo"><!-- --></a>
-<div class="oddrow">
-	
-	<div>
-		<img src="../media/images/Function.png" />
-		<span class="method-title">krumo</span> (line <span class="line-number">1295</span>)
-	</div> 
-
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Alias of <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></p>
-	<ul class="tags">
-				<li><span class="field">see:</span> <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></li>
-			</ul>
-	<div class="method-signature">
-		<span class="method-result">void</span>
-		<span class="method-name">
-			krumo
-		</span>
-					([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$data,...</span> = <span class="var-default"></span>])
-			</div>
-
-			<ul class="parameters">
-					<li>
-				<span class="var-type">mixed</span>
-				<span class="var-name">$data,...</span>			</li>
-				</ul>
-		
-	
-</div>
-		</div>
-	</div>
-	
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</div></body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title>Docs for page class.krumo.php</title>
+  <link rel="stylesheet" href="../media/stylesheet.css"/>
+  <script src="../media/lib/classTree.js"></script>
+  <script language="javascript" type="text/javascript">
+    var imgPlus = new Image();
+    var imgMinus = new Image();
+    imgPlus.src = "../media/images/plus.png";
+    imgMinus.src = "../media/images/minus.png";
+
+    function showNode(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          var oImg = document.layers["img" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          var oImg = document.all["img" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          var oImg = document.getElementById("img" + Node);
+          break;
+      }
+      oImg.src = imgMinus.src;
+      oTable.style.display = "block";
+    }
+
+    function hideNode(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          var oImg = document.layers["img" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          var oImg = document.all["img" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          var oImg = document.getElementById("img" + Node);
+          break;
+      }
+      oImg.src = imgPlus.src;
+      oTable.style.display = "none";
+    }
+
+    function nodeIsVisible(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          break;
+      }
+      return (oTable && oTable.style.display == "block");
+    }
+
+    function toggleNodeVisibility(Node) {
+      if (nodeIsVisible(Node)) {
+        hideNode(Node);
+      }else {
+        showNode(Node);
+      }
+    }
+  </script>
+</head>
+<body>
+<div class="page-body">
+
+  <h2 class="file-name"><img src="../media/images/Page_logo.png" alt="File" style="vertical-align: middle">/class.krumo.php</h2>
+
+  <a name="sec-description"></a>
+  <div class="info-box">
+    <div class="info-box-title">Description</div>
+    <div class="nav-bar">
+      <span class="disabled">Description</span> |
+      <a href="#sec-classes">Classes</a>
+      | <a href="#sec-constants">Constants</a>
+      | <a href="#sec-functions">Functions</a>
+    </div>
+    <div class="info-box-body">
+      <!-- ========== Info from phpDoc block ========= -->
+      <p class="short-description">Krumo: Structured information display solution</p>
+      <p class="description"><p>Krumo is a debugging tool (PHP5 only), which displays structured information about any PHP variable. It is a nice replacement for print_r() or var_dump() which are used by a lot of PHP developers.</p></p>
+      <ul class="tags">
+        <li><span class="field">author:</span> Kaloyan K. Tsvetkov &lt;<a href="mailto:kaloyan@kaloyan.info">kaloyan@kaloyan.info</a>&gt;</li>
+        <li><span class="field">version:</span> $Id$</li>
+        <li><span class="field">license:</span> <a href="http://opensource.org/licenses/lgpl-license.php">GNU Lesser General Public License Version 2.1</a></li>
+      </ul>
+
+    </div>
+  </div>
+
+  <a name="sec-classes"></a>
+  <div class="info-box">
+    <div class="info-box-title">Classes</div>
+    <div class="nav-bar">
+      <a href="#sec-description">Description</a> |
+      <span class="disabled">Classes</span>
+      | <a href="#sec-constants">Constants</a>
+      | <a href="#sec-functions">Functions</a>
+    </div>
+    <div class="info-box-body">
+      <table cellpadding="2" cellspacing="0" class="class-table">
+        <tr>
+          <th class="class-table-header">Class</th>
+          <th class="class-table-header">Description</th>
+        </tr>
+        <tr>
+          <td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
+            <img src="../media/images/Class.png"
+                 alt=" class"
+                 title=" class"/>
+            <a href="../Krumo/krumo.html">krumo</a>
+          </td>
+          <td>
+            Krumo API
+          </td>
+        </tr>
+      </table>
+    </div>
+  </div>
+
+
+  <a name="sec-constants"></a>
+  <div class="info-box">
+    <div class="info-box-title">Constants</div>
+    <div class="nav-bar">
+      <a href="#sec-description">Description</a> |
+      <a href="#sec-classes">Classes</a>
+      | <span class="disabled">Constants</span>
+      | <a href="#sec-functions">Functions</a>
+    </div>
+    <div class="info-box-body">
+      <a name="defineDIR_SEP"><!-- --></a>
+      <div class="oddrow">
+
+        <div>
+          <img src="../media/images/Constant.png"/>
+            <span class="const-title">
+              <span class="const-name">DIR_SEP</span> = DIRECTORY_SEPARATOR
+              (line <span class="line-number">22</span>)
+          </span>
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">backward compatibility: the DIR_SEP constant isn't used anymore</p>
+
+
+      </div>
+      <a name="defineKRUMO_DIR"><!-- --></a>
+      <div class="evenrow">
+
+        <div>
+          <img src="../media/images/Constant.png"/>
+          <span class="const-title">
+            <span class="const-name">KRUMO_DIR</span> = dirname(__FILE__).DIRECTORY_SEPARATOR
+            (line <span class="line-number">39</span>)
+          </span>
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up.</p>
+
+
+      </div>
+      <a name="defineKRUMO_TRUNCATE_LENGTH"><!-- --></a>
+      <div class="oddrow">
+
+        <div>
+          <img src="../media/images/Constant.png"/>
+          <span class="const-title">
+            <span class="const-name">KRUMO_TRUNCATE_LENGTH</span> = 50
+            (line <span class="line-number">48</span>)
+          </span>
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node.</p>
+
+
+      </div>
+      <a name="definePATH_SEPARATOR"><!-- --></a>
+      <div class="evenrow">
+
+        <div>
+          <img src="../media/images/Constant.png"/>
+          <span class="const-title">
+            <span class="const-name">PATH_SEPARATOR</span> = OS_WINDOWS?';':':'
+            (line <span class="line-number">28</span>)
+          </span>
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</p>
+
+
+      </div>
+    </div>
+  </div>
+
+
+  <a name="sec-functions"></a>
+  <div class="info-box">
+    <div class="info-box-title">Functions</div>
+    <div class="nav-bar">
+      <a href="#sec-description">Description</a> |
+      <a href="#sec-classes">Classes</a>
+      | <a href="#sec-constants">Constants</a>
+      | <span class="disabled">Functions</span>
+    </div>
+    <div class="info-box-body">
+      <a name="functionkrumo" id="functionkrumo"><!-- --></a>
+      <div class="oddrow">
+
+        <div>
+          <img src="../media/images/Function.png"/>
+          <span class="method-title">krumo</span> (line <span class="line-number">1295</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Alias of <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></p>
+        <ul class="tags">
+          <li><span class="field">see:</span> <a href="../Krumo/krumo.html#methoddump">krumo::dump()</a></li>
+        </ul>
+        <div class="method-signature">
+          <span class="method-result">void</span>
+          <span class="method-name">
+            krumo
+          </span>
+          ([<span class="var-type">mixed</span>&nbsp;<span class="var-name">$data,...</span> = <span class="var-default"></span>])
+        </div>
+
+        <ul class="parameters">
+          <li>
+            <span class="var-type">mixed</span>
+            <span class="var-name">$data,...</span></li>
+        </ul>
+
+
+      </div>
+    </div>
+  </div>
+
+  <p class="notes" id="credit">
+    Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+  </p>
+</div></body>
+</html>

+ 901 - 900
sites/all/modules/contrib/dev/devel/krumo/docs/Krumo/krumo.html

@@ -1,900 +1,901 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title>Docs For Class krumo</title>
-			<link rel="stylesheet" href="../media/stylesheet.css" />
-						<script src="../media/lib/classTree.js"></script>
-												<script language="javascript" type="text/javascript">
-				var imgPlus = new Image();
-				var imgMinus = new Image();
-				imgPlus.src = "../media/images/plus.png";
-				imgMinus.src = "../media/images/minus.png";
-				
-				function showNode(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-							var oImg = document.layers["img" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-							var oImg = document.all["img" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-							var oImg = document.getElementById("img" + Node);
-									break;
-							}
-					oImg.src = imgMinus.src;
-					oTable.style.display = "block";
-				}
-				
-				function hideNode(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-							var oImg = document.layers["img" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-							var oImg = document.all["img" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-							var oImg = document.getElementById("img" + Node);
-									break;
-							}
-					oImg.src = imgPlus.src;
-					oTable.style.display = "none";
-				}
-				
-				function nodeIsVisible(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-									break;
-							}
-					return (oTable && oTable.style.display == "block");
-				}
-				
-				function toggleNodeVisibility(Node){
-					if (nodeIsVisible(Node)){
-						hideNode(Node);
-					}else{
-						showNode(Node);
-					}
-				}
-			</script>
-					</head>
-		<body>
-			<div class="page-body">			

-<h2 class="class-name"><img src="../media/images/Class_logo.png"
-														alt=" Class"
-														title=" Class"
-														style="vertical-align: middle"> krumo</h2>
-
-<a name="sec-description"></a>
-<div class="info-box">
-	<div class="info-box-title">Description</div>
-	<div class="nav-bar">
-					<span class="disabled">Description</span> |
-															<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
-						
-					</div>
-	<div class="info-box-body">
-        		<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Krumo API</p>
-<p class="description"><p>This class stores the Krumo API for rendering and  displaying the structured information it is reporting</p></p>
-		<p class="notes">
-			Located in <a class="field" href="_class.krumo.php.html">/class.krumo.php</a> (line <span class="field">61</span>)
-		</p>
-		
-				
-		<pre></pre>
-	
-			</div>
-</div>
-
-
-
-
-	<a name="sec-method-summary"></a>
-	<div class="info-box">
-		<div class="info-box-title">Method Summary</span></div>
-		<div class="nav-bar">
-			<a href="#sec-description">Description</a> |
-												<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
-		</div>
-		<div class="info-box-body">			
-			<div class="method-summary">
-											
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#backtrace" title="details" class="method-name">backtrace</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#classes" title="details" class="method-name">classes</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#conf" title="details" class="method-name">conf</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#cookie" title="details" class="method-name">cookie</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#defines" title="details" class="method-name">defines</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">boolean</span>
-										<a href="#disable" title="details" class="method-name">disable</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#dump" title="details" class="method-name">dump</a>
-											(<span class="var-type"></span>&nbsp;<span class="var-name">$data</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$data,...</span>)
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">boolean</span>
-										<a href="#enable" title="details" class="method-name">enable</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#env" title="details" class="method-name">env</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#extensions" title="details" class="method-name">extensions</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#functions" title="details" class="method-name">functions</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#get" title="details" class="method-name">get</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#headers" title="details" class="method-name">headers</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#includes" title="details" class="method-name">includes</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#ini" title="details" class="method-name">ini</a>
-											(<span class="var-type">string</span>&nbsp;<span class="var-name">$ini_file</span>)
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#interfaces" title="details" class="method-name">interfaces</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#path" title="details" class="method-name">path</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#phpini" title="details" class="method-name">phpini</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#post" title="details" class="method-name">post</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#request" title="details" class="method-name">request</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#server" title="details" class="method-name">server</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">void</span>
-										<a href="#session" title="details" class="method-name">session</a>
-										()
-									</div>
-															
-				<div class="method-definition">
-					<img src="../media/images/StaticMethod.png" alt=" "/>
-					static 						<span class="method-result">string</span>
-										<a href="#version" title="details" class="method-name">version</a>
-										()
-									</div>
-																																																																																																																																																																																																							</div>
-		</div>
-	</div>		
-
-	
-	<a name="sec-methods"></a>
-	<div class="info-box">
-		<div class="info-box-title">Methods</div>
-		<div class="nav-bar">
-			<a href="#sec-description">Description</a> |
-																<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
-						
-		</div>
-		<div class="info-box-body">
-			<A NAME='method_detail'></A>
-<a name="methodbacktrace" id="backtrace"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static backtrace</span> (line <span class="line-number">82</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a debug backtrace</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			backtrace
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodclasses" id="classes"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static classes</span> (line <span class="line-number">101</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all currently declared classes.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			classes
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodconf" id="conf"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static conf</span> (line <span class="line-number">297</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all your configuration settings.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			conf
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodcookie" id="cookie"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static cookie</span> (line <span class="line-number">441</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_COOKIE</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			cookie
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methoddefines" id="defines"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static defines</span> (line <span class="line-number">197</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all currently declared constants.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			defines
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methoddisable" id="disable"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static disable</span> (line <span class="line-number">747</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Disable Krumo</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">boolean</span>
-		<span class="method-name">
-			disable
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methoddump" id="dump"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static dump</span> (line <span class="line-number">548</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Dump information about a variable</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			dump
-		</span>
-					(<span class="var-type"></span>&nbsp;<span class="var-name">$data</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$data,...</span>)
-			</div>
-	
-			<ul class="parameters">
-					<li>
-				<span class="var-type">mixed</span>
-				<span class="var-name">$data,...</span>			</li>
-					<li>
-				<span class="var-type"></span>
-				<span class="var-name">$data</span>			</li>
-				</ul>
-		
-			
-	</div>
-<a name="methodenable" id="enable"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static enable</span> (line <span class="line-number">736</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Enable Krumo</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">boolean</span>
-		<span class="method-name">
-			enable
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodenv" id="env"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static env</span> (line <span class="line-number">465</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_ENV</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			env
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodextensions" id="extensions"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static extensions</span> (line <span class="line-number">221</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all currently loaded PHP extensions.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			extensions
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodfunctions" id="functions"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static functions</span> (line <span class="line-number">173</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all currently declared functions.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			functions
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodget" id="get"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static get</span> (line <span class="line-number">369</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_GET</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			get
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodheaders" id="headers"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static headers</span> (line <span class="line-number">245</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all HTTP request headers.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			headers
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodincludes" id="includes"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static includes</span> (line <span class="line-number">149</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all currently included (or required) files.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			includes
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodini" id="ini"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static ini</span> (line <span class="line-number">515</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from an INI file.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			ini
-		</span>
-					(<span class="var-type">string</span>&nbsp;<span class="var-name">$ini_file</span>)
-			</div>
-	
-			<ul class="parameters">
-					<li>
-				<span class="var-type">string</span>
-				<span class="var-name">$ini_file</span>			</li>
-				</ul>
-		
-			
-	</div>
-<a name="methodinterfaces" id="interfaces"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static interfaces</span> (line <span class="line-number">125</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all currently declared interfaces (PHP5 only).</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			interfaces
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodpath" id="path"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static path</span> (line <span class="line-number">321</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of the specified directories under your <em>include_path</em> option.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			path
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodphpini" id="phpini"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static phpini</span> (line <span class="line-number">269</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of the configuration settings read from <em>php.ini</em></p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			phpini
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodpost" id="post"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static post</span> (line <span class="line-number">393</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_POST</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			post
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodrequest" id="request"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static request</span> (line <span class="line-number">345</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_REQUEST</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			request
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodserver" id="server"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static server</span> (line <span class="line-number">417</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_SERVER</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			server
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodsession" id="session"><!-- --></a>
-<div class="oddrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static session</span> (line <span class="line-number">489</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Prints a list of all the values from the <em>$_SESSION</em> array.</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">void</span>
-		<span class="method-name">
-			session
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-<a name="methodversion" id="version"><!-- --></a>
-<div class="evenrow">
-	
-	<div class="method-header">
-		<img src="../media/images/StaticMethod.png" />
-		<span class="method-title">static version</span> (line <span class="line-number">70</span>)
-	</div> 
-	
-	<!-- ========== Info from phpDoc block ========= -->
-<p class="short-description">Return Krumo version</p>
-	<ul class="tags">
-				<li><span class="field">access:</span> public</li>
-			</ul>
-	
-	<div class="method-signature">
-		static <span class="method-result">string</span>
-		<span class="method-name">
-			version
-		</span>
-				()
-			</div>
-	
-		
-			
-	</div>
-						
-		</div>
-	</div>
-
-	
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</div></body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title>Docs For Class krumo</title>
+  <link rel="stylesheet" href="../media/stylesheet.css"/>
+  <script src="../media/lib/classTree.js"></script>
+  <script language="javascript" type="text/javascript">
+    var imgPlus = new Image();
+    var imgMinus = new Image();
+    imgPlus.src = "../media/images/plus.png";
+    imgMinus.src = "../media/images/minus.png";
+
+    function showNode(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          var oImg = document.layers["img" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          var oImg = document.all["img" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          var oImg = document.getElementById("img" + Node);
+          break;
+      }
+      oImg.src = imgMinus.src;
+      oTable.style.display = "block";
+    }
+
+    function hideNode(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          var oImg = document.layers["img" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          var oImg = document.all["img" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          var oImg = document.getElementById("img" + Node);
+          break;
+      }
+      oImg.src = imgPlus.src;
+      oTable.style.display = "none";
+    }
+
+    function nodeIsVisible(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          break;
+      }
+      return (oTable && oTable.style.display == "block");
+    }
+
+    function toggleNodeVisibility(Node) {
+      if (nodeIsVisible(Node)) {
+        hideNode(Node);
+      } else {
+        showNode(Node);
+      }
+    }
+  </script>
+</head>
+<body>
+<div class="page-body">
+
+  <h2 class="class-name"><img src="../media/images/Class_logo.png"
+                              alt=" Class"
+                              title=" Class"
+                              style="vertical-align: middle"> krumo</h2>
+
+  <a name="sec-description"></a>
+  <div class="info-box">
+    <div class="info-box-title">Description</div>
+    <div class="nav-bar">
+      <span class="disabled">Description</span> |
+      <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
+
+    </div>
+    <div class="info-box-body">
+      <!-- ========== Info from phpDoc block ========= -->
+      <p class="short-description">Krumo API</p>
+      <p class="description"><p>This class stores the Krumo API for rendering and displaying the structured information it is reporting</p></p>
+      <p class="notes">
+        Located in <a class="field" href="_class.krumo.php.html">/class.krumo.php</a> (line <span class="field">61</span>)
+      </p>
+
+
+      <pre></pre>
+
+    </div>
+  </div>
+
+
+
+
+  <a name="sec-method-summary"></a>
+  <div class="info-box">
+    <div class="info-box-title">Method Summary</span></div>
+    <div class="nav-bar">
+      <a href="#sec-description">Description</a> |
+      <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
+    </div>
+    <div class="info-box-body">
+      <div class="method-summary">
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#backtrace" title="details" class="method-name">backtrace</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#classes" title="details" class="method-name">classes</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#conf" title="details" class="method-name">conf</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#cookie" title="details" class="method-name">cookie</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#defines" title="details" class="method-name">defines</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">boolean</span>
+          <a href="#disable" title="details" class="method-name">disable</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#dump" title="details" class="method-name">dump</a>
+          (<span class="var-type"></span>&nbsp;<span class="var-name">$data</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$data,...</span>)
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">boolean</span>
+          <a href="#enable" title="details" class="method-name">enable</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#env" title="details" class="method-name">env</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#extensions" title="details" class="method-name">extensions</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#functions" title="details" class="method-name">functions</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#get" title="details" class="method-name">get</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#headers" title="details" class="method-name">headers</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#includes" title="details" class="method-name">includes</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#ini" title="details" class="method-name">ini</a>
+          (<span class="var-type">string</span>&nbsp;<span class="var-name">$ini_file</span>)
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#interfaces" title="details" class="method-name">interfaces</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#path" title="details" class="method-name">path</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#phpini" title="details" class="method-name">phpini</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#post" title="details" class="method-name">post</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#request" title="details" class="method-name">request</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#server" title="details" class="method-name">server</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">void</span>
+          <a href="#session" title="details" class="method-name">session</a>
+          ()
+        </div>
+
+        <div class="method-definition">
+          <img src="../media/images/StaticMethod.png" alt=" "/>
+          static <span class="method-result">string</span>
+          <a href="#version" title="details" class="method-name">version</a>
+          ()
+        </div>
+      </div>
+    </div>
+  </div>
+
+
+  <a name="sec-methods"></a>
+  <div class="info-box">
+    <div class="info-box-title">Methods</div>
+    <div class="nav-bar">
+      <a href="#sec-description">Description</a> |
+      <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
+
+    </div>
+    <div class="info-box-body">
+      <A NAME='method_detail'></A>
+      <a name="methodbacktrace" id="backtrace"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static backtrace</span> (line <span class="line-number">82</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a debug backtrace</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+            <span class="method-name">
+              backtrace
+            </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodclasses" id="classes"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static classes</span> (line <span class="line-number">101</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all currently declared classes.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            classes
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodconf" id="conf"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static conf</span> (line <span class="line-number">297</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all your configuration settings.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            conf
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodcookie" id="cookie"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static cookie</span> (line <span class="line-number">441</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_COOKIE</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            cookie
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methoddefines" id="defines"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static defines</span> (line <span class="line-number">197</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all currently declared constants.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            defines
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methoddisable" id="disable"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static disable</span> (line <span class="line-number">747</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Disable Krumo</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">boolean</span>
+          <span class="method-name">
+            disable
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methoddump" id="dump"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static dump</span> (line <span class="line-number">548</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Dump information about a variable</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            dump
+          </span>
+          (<span class="var-type"></span>&nbsp;<span class="var-name">$data</span>, <span class="var-type">mixed</span>&nbsp;<span class="var-name">$data,...</span>)
+        </div>
+
+        <ul class="parameters">
+          <li>
+            <span class="var-type">mixed</span>
+            <span class="var-name">$data,...</span></li>
+          <li>
+            <span class="var-type"></span>
+            <span class="var-name">$data</span></li>
+        </ul>
+
+
+      </div>
+      <a name="methodenable" id="enable"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static enable</span> (line <span class="line-number">736</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Enable Krumo</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">boolean</span>
+          <span class="method-name">
+            enable
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodenv" id="env"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static env</span> (line <span class="line-number">465</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_ENV</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            env
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodextensions" id="extensions"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static extensions</span> (line <span class="line-number">221</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all currently loaded PHP extensions.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            extensions
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodfunctions" id="functions"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static functions</span> (line <span class="line-number">173</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all currently declared functions.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            functions
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodget" id="get"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static get</span> (line <span class="line-number">369</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_GET</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            get
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodheaders" id="headers"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static headers</span> (line <span class="line-number">245</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all HTTP request headers.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            headers
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodincludes" id="includes"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static includes</span> (line <span class="line-number">149</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all currently included (or required) files.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            includes
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodini" id="ini"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static ini</span> (line <span class="line-number">515</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from an INI file.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            ini
+          </span>
+          (<span class="var-type">string</span>&nbsp;<span class="var-name">$ini_file</span>)
+        </div>
+
+        <ul class="parameters">
+          <li>
+            <span class="var-type">string</span>
+            <span class="var-name">$ini_file</span></li>
+        </ul>
+
+
+      </div>
+      <a name="methodinterfaces" id="interfaces"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static interfaces</span> (line <span class="line-number">125</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all currently declared interfaces (PHP5 only).</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            interfaces
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodpath" id="path"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static path</span> (line <span class="line-number">321</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of the specified directories under your <em>include_path</em> option.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            path
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodphpini" id="phpini"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static phpini</span> (line <span class="line-number">269</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of the configuration settings read from <em>php.ini</em></p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            phpini
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodpost" id="post"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static post</span> (line <span class="line-number">393</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_POST</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            post
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodrequest" id="request"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static request</span> (line <span class="line-number">345</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_REQUEST</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            request
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodserver" id="server"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static server</span> (line <span class="line-number">417</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_SERVER</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            server
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodsession" id="session"><!-- --></a>
+      <div class="oddrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static session</span> (line <span class="line-number">489</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Prints a list of all the values from the <em>$_SESSION</em> array.</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">void</span>
+          <span class="method-name">
+            session
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+      <a name="methodversion" id="version"><!-- --></a>
+      <div class="evenrow">
+
+        <div class="method-header">
+          <img src="../media/images/StaticMethod.png"/>
+          <span class="method-title">static version</span> (line <span class="line-number">70</span>)
+        </div>
+
+        <!-- ========== Info from phpDoc block ========= -->
+        <p class="short-description">Return Krumo version</p>
+        <ul class="tags">
+          <li><span class="field">access:</span> public</li>
+        </ul>
+
+        <div class="method-signature">
+          static <span class="method-result">string</span>
+          <span class="method-name">
+            version
+          </span>
+          ()
+        </div>
+
+
+
+      </div>
+
+    </div>
+  </div>
+
+
+  <p class="notes" id="credit">
+    Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+  </p>
+</div></body>
+</html>

+ 13 - 13
sites/all/modules/contrib/dev/devel/krumo/docs/blank.html

@@ -1,13 +1,13 @@
-<html>
-<head>
-	<title>Krumo</title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-<body>
-<div align="center"><h1>Krumo</h1></div>
-<b>Welcome to Krumo!</b><br />
-<br />
-This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.0a2</a><br />
-</body>
-</html>
+<html>
+  <head>
+    <title>Krumo</title>
+    <link rel="stylesheet" href="media/stylesheet.css" />
+    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+  </head>
+<body>
+<div align="center"><h1>Krumo</h1></div>
+<b>Welcome to Krumo!</b><br />
+<br />
+This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.0a2</a><br />
+</body>
+</html>

+ 22 - 21
sites/all/modules/contrib/dev/devel/krumo/docs/classtrees_Krumo.html

@@ -1,23 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						

-<!-- Start of Class Data -->
-<H2>
-	
-</H2>
-<h2>Root class krumo</h2>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <!-- template designed by Marco Von Ballmoos  -->
+    <title></title>
+    <link rel="stylesheet" href="media/stylesheet.css"/>
+  </head>
+  <body>
+
+
+<!-- Start of Class Data -->
+<H2>
+
+</H2>
+<h2>Root class krumo</h2>
 <ul>
 <li><a href="Krumo/krumo.html">krumo</a></li></ul>
-
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</body>
-</html>
+
+  <p class="notes" id="credit">
+    Documentation generated on Sun, 02 Dec 2007 09:43:24 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+  </p>
+  </body>
+</html>

+ 394 - 392
sites/all/modules/contrib/dev/devel/krumo/docs/elementindex.html

@@ -1,392 +1,394 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<a name="top"></a>
-<h2>Full index</h2>
-<h3>Package indexes</h3>
-<ul>
-	<li><a href="elementindex_Krumo.html">Krumo</a></li>
-</ul>
-<br />
-<div class="index-letter-menu">
-	<a class="index-letter" href="elementindex.html#b">b</a>
-	<a class="index-letter" href="elementindex.html#c">c</a>
-	<a class="index-letter" href="elementindex.html#d">d</a>
-	<a class="index-letter" href="elementindex.html#e">e</a>
-	<a class="index-letter" href="elementindex.html#f">f</a>
-	<a class="index-letter" href="elementindex.html#g">g</a>
-	<a class="index-letter" href="elementindex.html#h">h</a>
-	<a class="index-letter" href="elementindex.html#i">i</a>
-	<a class="index-letter" href="elementindex.html#k">k</a>
-	<a class="index-letter" href="elementindex.html#p">p</a>
-	<a class="index-letter" href="elementindex.html#r">r</a>
-	<a class="index-letter" href="elementindex.html#s">s</a>
-	<a class="index-letter" href="elementindex.html#v">v</a>
-</div>
-
-	<a name="b"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">b</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">backtrace</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a debug backtrace</div>
-					</dd>
-		</dl>
-	<a name="c"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">c</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Page.png" alt="Page" title="Page" /></title>
-			<span class="include-title">class.krumo.php</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">classes</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared classes.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">conf</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all your configuration settings.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">cookie</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array.</div>
-					</dd>
-		</dl>
-	<a name="d"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">d</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">defines</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared constants.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">DIR_SEP</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php</div>
-							<div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">disable</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php</div>
-							<div class="index-item-description">Disable Krumo</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">dump</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php</div>
-							<div class="index-item-description">Dump information about a variable</div>
-					</dd>
-		</dl>
-	<a name="e"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">e</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">enable</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php</div>
-							<div class="index-item-description">Enable Krumo</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">env</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">extensions</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently loaded PHP extensions.</div>
-					</dd>
-		</dl>
-	<a name="f"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">f</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">functions</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared functions.</div>
-					</dd>
-		</dl>
-	<a name="g"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">g</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">get</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array.</div>
-					</dd>
-		</dl>
-	<a name="h"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">h</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">headers</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all HTTP request headers.</div>
-					</dd>
-		</dl>
-	<a name="i"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">i</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">includes</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently included (or required) files.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">ini</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from an INI file.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">interfaces</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only).</div>
-					</dd>
-		</dl>
-	<a name="k"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">k</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Function.png" alt="Function" title="Function" /></title>
-			<span class="method-title">krumo</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php</div>
-							<div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Class.png" alt="Class" title="Class" /></title>
-			krumo
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php</div>
-							<div class="index-item-description">Krumo API</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">KRUMO_DIR</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php</div>
-							<div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is  not defined, include_path will be used. Set KRUMO_DIR only if any other module  or application has not already set it up.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php</div>
-							<div class="index-item-description">This constant sets the maximum strings of strings that will be shown  as they are. Longer strings will be truncated with this length, and  their `full form` will be shown in a child node.</div>
-					</dd>
-		</dl>
-	<a name="p"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">p</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">path</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">PATH_SEPARATOR</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php</div>
-							<div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">phpini</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">post</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array.</div>
-					</dd>
-		</dl>
-	<a name="r"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">r</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">request</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array.</div>
-					</dd>
-		</dl>
-	<a name="s"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">s</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">server</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">session</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array.</div>
-					</dd>
-		</dl>
-	<a name="v"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">v</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">version</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php</div>
-							<div class="index-item-description">Return Krumo version</div>
-					</dd>
-		</dl>
-
-<div class="index-letter-menu">
-	<a class="index-letter" href="elementindex.html#b">b</a>
-	<a class="index-letter" href="elementindex.html#c">c</a>
-	<a class="index-letter" href="elementindex.html#d">d</a>
-	<a class="index-letter" href="elementindex.html#e">e</a>
-	<a class="index-letter" href="elementindex.html#f">f</a>
-	<a class="index-letter" href="elementindex.html#g">g</a>
-	<a class="index-letter" href="elementindex.html#h">h</a>
-	<a class="index-letter" href="elementindex.html#i">i</a>
-	<a class="index-letter" href="elementindex.html#k">k</a>
-	<a class="index-letter" href="elementindex.html#p">p</a>
-	<a class="index-letter" href="elementindex.html#r">r</a>
-	<a class="index-letter" href="elementindex.html#s">s</a>
-	<a class="index-letter" href="elementindex.html#v">v</a>
-</div>
	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+</head>
+<body>
+
+<a name="top"></a>
+<h2>Full index</h2>
+<h3>Package indexes</h3>
+<ul>
+  <li><a href="elementindex_Krumo.html">Krumo</a></li>
+</ul>
+<br/>
+<div class="index-letter-menu">
+  <a class="index-letter" href="elementindex.html#b">b</a>
+  <a class="index-letter" href="elementindex.html#c">c</a>
+  <a class="index-letter" href="elementindex.html#d">d</a>
+  <a class="index-letter" href="elementindex.html#e">e</a>
+  <a class="index-letter" href="elementindex.html#f">f</a>
+  <a class="index-letter" href="elementindex.html#g">g</a>
+  <a class="index-letter" href="elementindex.html#h">h</a>
+  <a class="index-letter" href="elementindex.html#i">i</a>
+  <a class="index-letter" href="elementindex.html#k">k</a>
+  <a class="index-letter" href="elementindex.html#p">p</a>
+  <a class="index-letter" href="elementindex.html#r">r</a>
+  <a class="index-letter" href="elementindex.html#s">s</a>
+  <a class="index-letter" href="elementindex.html#v">v</a>
+</div>
+
+<a name="b"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">b</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">backtrace</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a debug backtrace</div>
+  </dd>
+</dl>
+<a name="c"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">c</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Page.png" alt="Page" title="Page"/></title>
+    <span class="include-title">class.krumo.php</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">classes</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared classes. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">conf</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all your configuration settings. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">cookie</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array. </div>
+  </dd>
+</dl>
+<a name="d"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">d</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">defines</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared constants. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">DIR_SEP</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php </div>
+    <div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">disable</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php </div>
+    <div class="index-item-description">Disable Krumo</div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">dump</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php </div>
+    <div class="index-item-description">Dump information about a variable</div>
+  </dd>
+</dl>
+<a name="e"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">e</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">enable</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php </div>
+    <div class="index-item-description">Enable Krumo</div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">env</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">extensions</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently loaded PHP extensions. </div>
+  </dd>
+</dl>
+<a name="f"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">f</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">functions</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared functions. </div>
+  </dd>
+</dl>
+<a name="g"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">g</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">get</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array. </div>
+  </dd>
+</dl>
+<a name="h"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">h</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">headers</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all HTTP request headers. </div>
+  </dd>
+</dl>
+<a name="i"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">i</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">includes</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently included (or required) files. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">ini</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from an INI file. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">interfaces</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only). </div>
+  </dd>
+</dl>
+<a name="k"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">k</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Function.png" alt="Function" title="Function"/></title>
+    <span class="method-title">krumo</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php </div>
+    <div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Class.png" alt="Class" title="Class"/></title>
+    krumo
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php </div>
+    <div class="index-item-description">Krumo API</div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">KRUMO_DIR</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php </div>
+    <div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php </div>
+    <div class="index-item-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node. </div>
+  </dd>
+</dl>
+<a name="p"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">p</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">path</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">PATH_SEPARATOR</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php </div>
+    <div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2 </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">phpini</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">post</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array. </div>
+  </dd>
+</dl>
+<a name="r"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">r</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">request</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array. </div>
+  </dd>
+</dl>
+<a name="s"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">s</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">server</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">session</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array. </div>
+  </dd>
+</dl>
+<a name="v"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">v</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">version</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php </div>
+    <div class="index-item-description">Return Krumo version</div>
+  </dd>
+</dl>
+
+<div class="index-letter-menu">
+  <a class="index-letter" href="elementindex.html#b">b</a>
+  <a class="index-letter" href="elementindex.html#c">c</a>
+  <a class="index-letter" href="elementindex.html#d">d</a>
+  <a class="index-letter" href="elementindex.html#e">e</a>
+  <a class="index-letter" href="elementindex.html#f">f</a>
+  <a class="index-letter" href="elementindex.html#g">g</a>
+  <a class="index-letter" href="elementindex.html#h">h</a>
+  <a class="index-letter" href="elementindex.html#i">i</a>
+  <a class="index-letter" href="elementindex.html#k">k</a>
+  <a class="index-letter" href="elementindex.html#p">p</a>
+  <a class="index-letter" href="elementindex.html#r">r</a>
+  <a class="index-letter" href="elementindex.html#s">s</a>
+  <a class="index-letter" href="elementindex.html#v">v</a>
+</div>
+</body>
+</html>

+ 391 - 389
sites/all/modules/contrib/dev/devel/krumo/docs/elementindex_Krumo.html

@@ -1,389 +1,391 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<a name="top"></a>
-<h2>[Krumo] element index</h2>
-<a href="elementindex.html">All elements</a>
-<br />
-<div class="index-letter-menu">
-	<a class="index-letter" href="elementindex_Krumo.html#b">b</a>
-	<a class="index-letter" href="elementindex_Krumo.html#c">c</a>
-	<a class="index-letter" href="elementindex_Krumo.html#d">d</a>
-	<a class="index-letter" href="elementindex_Krumo.html#e">e</a>
-	<a class="index-letter" href="elementindex_Krumo.html#f">f</a>
-	<a class="index-letter" href="elementindex_Krumo.html#g">g</a>
-	<a class="index-letter" href="elementindex_Krumo.html#h">h</a>
-	<a class="index-letter" href="elementindex_Krumo.html#i">i</a>
-	<a class="index-letter" href="elementindex_Krumo.html#k">k</a>
-	<a class="index-letter" href="elementindex_Krumo.html#p">p</a>
-	<a class="index-letter" href="elementindex_Krumo.html#r">r</a>
-	<a class="index-letter" href="elementindex_Krumo.html#s">s</a>
-	<a class="index-letter" href="elementindex_Krumo.html#v">v</a>
-</div>
-
-	<a name="b"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">b</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">backtrace</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a debug backtrace</div>
-					</dd>
-		</dl>
-	<a name="c"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">c</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Page.png" alt="Page" title="Page" /></title>
-			<span class="include-title">class.krumo.php</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">classes</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared classes.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">conf</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all your configuration settings.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">cookie</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array.</div>
-					</dd>
-		</dl>
-	<a name="d"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">d</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">defines</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared constants.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">DIR_SEP</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php</div>
-							<div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">disable</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php</div>
-							<div class="index-item-description">Disable Krumo</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">dump</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php</div>
-							<div class="index-item-description">Dump information about a variable</div>
-					</dd>
-		</dl>
-	<a name="e"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">e</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">enable</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php</div>
-							<div class="index-item-description">Enable Krumo</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">env</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">extensions</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently loaded PHP extensions.</div>
-					</dd>
-		</dl>
-	<a name="f"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">f</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">functions</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared functions.</div>
-					</dd>
-		</dl>
-	<a name="g"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">g</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">get</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array.</div>
-					</dd>
-		</dl>
-	<a name="h"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">h</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">headers</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all HTTP request headers.</div>
-					</dd>
-		</dl>
-	<a name="i"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">i</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">includes</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently included (or required) files.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">ini</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from an INI file.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">interfaces</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only).</div>
-					</dd>
-		</dl>
-	<a name="k"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">k</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Function.png" alt="Function" title="Function" /></title>
-			<span class="method-title">krumo</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php</div>
-							<div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Class.png" alt="Class" title="Class" /></title>
-			krumo
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php</div>
-							<div class="index-item-description">Krumo API</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">KRUMO_DIR</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php</div>
-							<div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is  not defined, include_path will be used. Set KRUMO_DIR only if any other module  or application has not already set it up.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php</div>
-							<div class="index-item-description">This constant sets the maximum strings of strings that will be shown  as they are. Longer strings will be truncated with this length, and  their `full form` will be shown in a child node.</div>
-					</dd>
-		</dl>
-	<a name="p"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">p</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">path</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
-			<span class="const-title">PATH_SEPARATOR</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php</div>
-							<div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">phpini</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">post</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array.</div>
-					</dd>
-		</dl>
-	<a name="r"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">r</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">request</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array.</div>
-					</dd>
-		</dl>
-	<a name="s"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">s</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">server</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array.</div>
-					</dd>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">session</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php</div>
-							<div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array.</div>
-					</dd>
-		</dl>
-	<a name="v"></a>
-	<div class="index-letter-section">
-		<div style="float: left" class="index-letter-title">v</div>
-		<div style="float: right"><a href="#top">top</a></div>
-		<div style="clear: both"></div>
-	</div>
-	<dl>
-			<dt class="field">
-						<img src="media/images/Method.png" alt="Method" title="Method" /></title>
-			<span class="method-title">version</span>
-					</dt>
-		<dd class="index-item-body">
-			<div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php</div>
-							<div class="index-item-description">Return Krumo version</div>
-					</dd>
-		</dl>
-
-<div class="index-letter-menu">
-	<a class="index-letter" href="elementindex_Krumo.html#b">b</a>
-	<a class="index-letter" href="elementindex_Krumo.html#c">c</a>
-	<a class="index-letter" href="elementindex_Krumo.html#d">d</a>
-	<a class="index-letter" href="elementindex_Krumo.html#e">e</a>
-	<a class="index-letter" href="elementindex_Krumo.html#f">f</a>
-	<a class="index-letter" href="elementindex_Krumo.html#g">g</a>
-	<a class="index-letter" href="elementindex_Krumo.html#h">h</a>
-	<a class="index-letter" href="elementindex_Krumo.html#i">i</a>
-	<a class="index-letter" href="elementindex_Krumo.html#k">k</a>
-	<a class="index-letter" href="elementindex_Krumo.html#p">p</a>
-	<a class="index-letter" href="elementindex_Krumo.html#r">r</a>
-	<a class="index-letter" href="elementindex_Krumo.html#s">s</a>
-	<a class="index-letter" href="elementindex_Krumo.html#v">v</a>
-</div>
	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+</head>
+<body>
+
+<a name="top"></a>
+<h2>[Krumo] element index</h2>
+<a href="elementindex.html">All elements</a>
+<br/>
+<div class="index-letter-menu">
+  <a class="index-letter" href="elementindex_Krumo.html#b">b</a>
+  <a class="index-letter" href="elementindex_Krumo.html#c">c</a>
+  <a class="index-letter" href="elementindex_Krumo.html#d">d</a>
+  <a class="index-letter" href="elementindex_Krumo.html#e">e</a>
+  <a class="index-letter" href="elementindex_Krumo.html#f">f</a>
+  <a class="index-letter" href="elementindex_Krumo.html#g">g</a>
+  <a class="index-letter" href="elementindex_Krumo.html#h">h</a>
+  <a class="index-letter" href="elementindex_Krumo.html#i">i</a>
+  <a class="index-letter" href="elementindex_Krumo.html#k">k</a>
+  <a class="index-letter" href="elementindex_Krumo.html#p">p</a>
+  <a class="index-letter" href="elementindex_Krumo.html#r">r</a>
+  <a class="index-letter" href="elementindex_Krumo.html#s">s</a>
+  <a class="index-letter" href="elementindex_Krumo.html#v">v</a>
+</div>
+
+<a name="b"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">b</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">backtrace</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodbacktrace">krumo::backtrace()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a debug backtrace</div>
+  </dd>
+</dl>
+<a name="c"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">c</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Page.png" alt="Page" title="Page"/></title>
+    <span class="include-title">class.krumo.php</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html">class.krumo.php</a> in class.krumo.php </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">classes</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodclasses">krumo::classes()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared classes. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">conf</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodconf">krumo::conf()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all your configuration settings. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">cookie</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodcookie">krumo::cookie()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_COOKIE</em> array. </div>
+  </dd>
+</dl>
+<a name="d"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">d</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">defines</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methoddefines">krumo::defines()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared constants. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">DIR_SEP</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineDIR_SEP">DIR_SEP</a> in class.krumo.php </div>
+    <div class="index-item-description">backward compatibility: the DIR_SEP constant isn't used anymore </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">disable</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methoddisable">krumo::disable()</a> in class.krumo.php </div>
+    <div class="index-item-description">Disable Krumo</div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">dump</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methoddump">krumo::dump()</a> in class.krumo.php </div>
+    <div class="index-item-description">Dump information about a variable</div>
+  </dd>
+</dl>
+<a name="e"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">e</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">enable</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodenable">krumo::enable()</a> in class.krumo.php </div>
+    <div class="index-item-description">Enable Krumo</div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">env</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodenv">krumo::env()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_ENV</em> array. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">extensions</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodextensions">krumo::extensions()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently loaded PHP extensions. </div>
+  </dd>
+</dl>
+<a name="f"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">f</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">functions</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodfunctions">krumo::functions()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared functions. </div>
+  </dd>
+</dl>
+<a name="g"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">g</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">get</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodget">krumo::get()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_GET</em> array. </div>
+  </dd>
+</dl>
+<a name="h"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">h</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">headers</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodheaders">krumo::headers()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all HTTP request headers. </div>
+  </dd>
+</dl>
+<a name="i"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">i</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">includes</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodincludes">krumo::includes()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently included (or required) files. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">ini</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodini">krumo::ini()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from an INI file. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">interfaces</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodinterfaces">krumo::interfaces()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all currently declared interfaces (PHP5 only). </div>
+  </dd>
+</dl>
+<a name="k"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">k</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Function.png" alt="Function" title="Function"/></title>
+    <span class="method-title">krumo</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#functionkrumo">krumo()</a> in class.krumo.php </div>
+    <div class="index-item-description">Alias of <a href="Krumo/krumo.html#methoddump">krumo::dump()</a></div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Class.png" alt="Class" title="Class"/></title>
+    krumo
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html">krumo</a> in class.krumo.php </div>
+    <div class="index-item-description">Krumo API</div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">KRUMO_DIR</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_DIR">KRUMO_DIR</a> in class.krumo.php </div>
+    <div class="index-item-description">Set the KRUMO_DIR constant up with the absolute path to Krumo files. If it is not defined, include_path will be used. Set KRUMO_DIR only if any other module or application has not already set it up. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">KRUMO_TRUNCATE_LENGTH</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#defineKRUMO_TRUNCATE_LENGTH">KRUMO_TRUNCATE_LENGTH</a> in class.krumo.php </div>
+    <div class="index-item-description">This constant sets the maximum strings of strings that will be shown as they are. Longer strings will be truncated with this length, and their `full form` will be shown in a child node. </div>
+  </dd>
+</dl>
+<a name="p"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">p</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">path</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodpath">krumo::path()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of the specified directories under your <em>include_path</em> option. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Constant.png" alt="Constant" title="Constant"/></title>
+    <span class="const-title">PATH_SEPARATOR</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/_class.krumo.php.html#definePATH_SEPARATOR">PATH_SEPARATOR</a> in class.krumo.php </div>
+    <div class="index-item-description">backward compatibility: the PATH_SEPARATOR constant is availble since 4.3.0RC2 </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">phpini</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodphpini">krumo::phpini()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of the configuration settings read from <em>php.ini</em></div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">post</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodpost">krumo::post()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_POST</em> array. </div>
+  </dd>
+</dl>
+<a name="r"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">r</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">request</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodrequest">krumo::request()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_REQUEST</em> array. </div>
+  </dd>
+</dl>
+<a name="s"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">s</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">server</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodserver">krumo::server()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_SERVER</em> array. </div>
+  </dd>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">session</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodsession">krumo::session()</a> in class.krumo.php </div>
+    <div class="index-item-description">Prints a list of all the values from the <em>$_SESSION</em> array. </div>
+  </dd>
+</dl>
+<a name="v"></a>
+<div class="index-letter-section">
+  <div style="float: left" class="index-letter-title">v</div>
+  <div style="float: right"><a href="#top">top</a></div>
+  <div style="clear: both"></div>
+</div>
+<dl>
+  <dt class="field">
+    <img src="media/images/Method.png" alt="Method" title="Method"/></title>
+    <span class="method-title">version</span>
+  </dt>
+  <dd class="index-item-body">
+    <div class="index-item-details"><a href="Krumo/krumo.html#methodversion">krumo::version()</a> in class.krumo.php </div>
+    <div class="index-item-description">Return Krumo version</div>
+  </dd>
+</dl>
+
+<div class="index-letter-menu">
+  <a class="index-letter" href="elementindex_Krumo.html#b">b</a>
+  <a class="index-letter" href="elementindex_Krumo.html#c">c</a>
+  <a class="index-letter" href="elementindex_Krumo.html#d">d</a>
+  <a class="index-letter" href="elementindex_Krumo.html#e">e</a>
+  <a class="index-letter" href="elementindex_Krumo.html#f">f</a>
+  <a class="index-letter" href="elementindex_Krumo.html#g">g</a>
+  <a class="index-letter" href="elementindex_Krumo.html#h">h</a>
+  <a class="index-letter" href="elementindex_Krumo.html#i">i</a>
+  <a class="index-letter" href="elementindex_Krumo.html#k">k</a>
+  <a class="index-letter" href="elementindex_Krumo.html#p">p</a>
+  <a class="index-letter" href="elementindex_Krumo.html#r">r</a>
+  <a class="index-letter" href="elementindex_Krumo.html#s">s</a>
+  <a class="index-letter" href="elementindex_Krumo.html#v">v</a>
+</div>
+</body>
+</html>

+ 16 - 15
sites/all/modules/contrib/dev/devel/krumo/docs/errors.html

@@ -1,15 +1,16 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title>phpDocumentor Parser Errors and Warnings</title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<a href="#Post-parsing">Post-parsing</a><br>
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:25 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <!-- template designed by Marco Von Ballmoos  -->
+    <title>phpDocumentor Parser Errors and Warnings</title>
+    <link rel="stylesheet" href="media/stylesheet.css"/>
+  </head>
+  <body>
+
+    <a href="#Post-parsing">Post-parsing</a><br>
+    <p class="notes" id="credit">
+      Documentation generated on Sun, 02 Dec 2007 09:43:25 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+    </p>
+  </body>
+</html>

+ 24 - 24
sites/all/modules/contrib/dev/devel/krumo/docs/index.html

@@ -1,24 +1,24 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html 
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-   <html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-	<!-- Generated by phpDocumentor on Sun, 02 Dec 2007 09:43:23 +0200  -->
-  <title>Krumo</title>
-  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-</head>
-
-<FRAMESET rows='120,*'>
-	<FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
-	<FRAMESET cols='25%,*'>
-		<FRAME src='li_Krumo.html' name='left_bottom' frameborder="1" bordercolor="#999999">
-		<FRAME src='blank.html' name='right' frameborder="1" bordercolor="#999999">
-	</FRAMESET>
-	<NOFRAMES>
-		<H2>Frame Alert</H2>
-		<P>This document is designed to be viewed using the frames feature.
-		If you see this message, you are using a non-frame-capable web client.</P>
-	</NOFRAMES>
-</FRAMESET>
-</HTML>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- Generated by phpDocumentor on Sun, 02 Dec 2007 09:43:23 +0200  -->
+  <title>Krumo</title>
+  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+
+<FRAMESET rows='120,*'>
+  <FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
+  <FRAMESET cols='25%,*'>
+    <FRAME src='li_Krumo.html' name='left_bottom' frameborder="1" bordercolor="#999999">
+    <FRAME src='blank.html' name='right' frameborder="1" bordercolor="#999999">
+  </FRAMESET>
+  <NOFRAMES>
+    <H2>Frame Alert</H2>
+    <P>This document is designed to be viewed using the frames feature.
+      If you see this message, you are using a non-frame-capable web client.</P>
+  </NOFRAMES>
+</FRAMESET>
+</HTML>

+ 156 - 155
sites/all/modules/contrib/dev/devel/krumo/docs/li_Krumo.html

@@ -1,155 +1,156 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-						<script src="media/lib/classTree.js"></script>
-									<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-									<script language="javascript" type="text/javascript">
-				var imgPlus = new Image();
-				var imgMinus = new Image();
-				imgPlus.src = "media/images/plus.png";
-				imgMinus.src = "media/images/minus.png";
-				
-				function showNode(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-							var oImg = document.layers["img" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-							var oImg = document.all["img" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-							var oImg = document.getElementById("img" + Node);
-									break;
-							}
-					oImg.src = imgMinus.src;
-					oTable.style.display = "block";
-				}
-				
-				function hideNode(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-							var oImg = document.layers["img" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-							var oImg = document.all["img" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-							var oImg = document.getElementById("img" + Node);
-									break;
-							}
-					oImg.src = imgPlus.src;
-					oTable.style.display = "none";
-				}
-				
-				function nodeIsVisible(Node){
-							switch(navigator.family){
-								case 'nn4':
-									// Nav 4.x code fork...
-							var oTable = document.layers["span" + Node];
-									break;
-								case 'ie4':
-									// IE 4/5 code fork...
-							var oTable = document.all["span" + Node];
-									break;
-								case 'gecko':
-									// Standards Compliant code fork...
-							var oTable = document.getElementById("span" + Node);
-									break;
-							}
-					return (oTable && oTable.style.display == "block");
-				}
-				
-				function toggleNodeVisibility(Node){
-					if (nodeIsVisible(Node)){
-						hideNode(Node);
-					}else{
-						showNode(Node);
-					}
-				}
-			</script>
-					</head>
-		<body>
-						
<h3 class="package-title">Krumo</h3>
-<div class="tree">
-<script language="Javascript">
-if (document.getElementById) {
-			var tree = new WebFXTree('<span class="package">Krumo</span>');
-		tree.setBehavior('classic');
-		tree.openIcon = 'media/images/package.png';
-		tree.icon = 'media/images/package.png';
-	
-		
-		var class_trees = new WebFXTreeItem('Class trees', 'classtrees_Krumo.html');
-		class_trees.openIcon = 'media/images/Index.png';
-		class_trees.icon = 'media/images/Index.png';
-		tree.add(class_trees);
-
-		var elements = new WebFXTreeItem('Index of elements', 'elementindex_Krumo.html');
-		elements.openIcon = 'media/images/Index.png';
-		elements.icon = 'media/images/Index.png';
-		tree.add(elements);
-
-		var parent_node;
-
-		
-		
-					var tree_classe = new WebFXTreeItem('Class(es)', '');
-			tree_classe.openIcon = 'media/images/class_folder.png';
-			tree_classe.icon = 'media/images/class_folder.png';
-			
-						    				var classe = new WebFXTreeItem('krumo', 'Krumo/krumo.html');
-				classe.openIcon = 'media/images/Class.png';
-				classe.icon = 'media/images/Class.png';
-				tree_classe.add(classe);
-								
-			tree.add(tree_classe);
-		
-					var tree_function = new WebFXTreeItem('Function(s)', '');
-			tree_function.openIcon = 'media/images/function_folder.png';
-			tree_function.icon = 'media/images/function_folder.png';
-			
-							var fic = new WebFXTreeItem('krumo', 'Krumo/_class.krumo.php.html#functionkrumo');
-				fic.openIcon = 'media/images/Function.png';
-				fic.icon = 'media/images/Function.png';
-				tree_function.add(fic);
-					
-			tree.add(tree_function);
-			
-					var tree_file = new WebFXTreeItem('File(s)', '');
-			tree_file.openIcon = 'media/images/folder.png';
-			tree_file.icon = 'media/images/folder.png';
-	
-							var file = new WebFXTreeItem('class.krumo.php', 'Krumo/_class.krumo.php.html');
-				file.openIcon = 'media/images/Page.png';
-				file.icon = 'media/images/Page.png';
-				tree_file.add(file);
-				
-			tree.add(tree_file);
-		
-	
-document.write(tree);
-}
-</script>
-</div>
-<p class="notes">
-	Generated by 
-	<a href="http://www.phpdoc.org" target="_blank">phpDocumentor <span class="field">1.4.0a2</span></a>
-</p>
-</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+  <script src="media/lib/classTree.js"></script>
+  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+  <script language="javascript" type="text/javascript">
+    var imgPlus = new Image();
+    var imgMinus = new Image();
+    imgPlus.src = "media/images/plus.png";
+    imgMinus.src = "media/images/minus.png";
+
+    function showNode(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          var oImg = document.layers["img" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          var oImg = document.all["img" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          var oImg = document.getElementById("img" + Node);
+          break;
+      }
+      oImg.src = imgMinus.src;
+      oTable.style.display = "block";
+    }
+
+    function hideNode(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          var oImg = document.layers["img" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          var oImg = document.all["img" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          var oImg = document.getElementById("img" + Node);
+          break;
+      }
+      oImg.src = imgPlus.src;
+      oTable.style.display = "none";
+    }
+
+    function nodeIsVisible(Node) {
+      switch (navigator.family) {
+        case 'nn4':
+          // Nav 4.x code fork...
+          var oTable = document.layers["span" + Node];
+          break;
+        case 'ie4':
+          // IE 4/5 code fork...
+          var oTable = document.all["span" + Node];
+          break;
+        case 'gecko':
+          // Standards Compliant code fork...
+          var oTable = document.getElementById("span" + Node);
+          break;
+      }
+      return (oTable && oTable.style.display == "block");
+    }
+
+    function toggleNodeVisibility(Node) {
+      if (nodeIsVisible(Node)) {
+        hideNode(Node);
+      } else {
+        showNode(Node);
+      }
+    }
+  </script>
+</head>
+<body>
+
+<h3 class="package-title">Krumo</h3>
+<div class="tree">
+  <script language="Javascript">
+    if (document.getElementById) {
+      var tree = new WebFXTree('<span class="package">Krumo</span>');
+      tree.setBehavior('classic');
+      tree.openIcon = 'media/images/package.png';
+      tree.icon = 'media/images/package.png';
+
+
+      var class_trees = new WebFXTreeItem('Class trees', 'classtrees_Krumo.html');
+      class_trees.openIcon = 'media/images/Index.png';
+      class_trees.icon = 'media/images/Index.png';
+      tree.add(class_trees);
+
+      var elements = new WebFXTreeItem('Index of elements', 'elementindex_Krumo.html');
+      elements.openIcon = 'media/images/Index.png';
+      elements.icon = 'media/images/Index.png';
+      tree.add(elements);
+
+      var parent_node;
+
+
+
+      var tree_classe = new WebFXTreeItem('Class(es)', '');
+      tree_classe.openIcon = 'media/images/class_folder.png';
+      tree_classe.icon = 'media/images/class_folder.png';
+
+      var classe = new WebFXTreeItem('krumo', 'Krumo/krumo.html');
+      classe.openIcon = 'media/images/Class.png';
+      classe.icon = 'media/images/Class.png';
+      tree_classe.add(classe);
+
+      tree.add(tree_classe);
+
+      var tree_function = new WebFXTreeItem('Function(s)', '');
+      tree_function.openIcon = 'media/images/function_folder.png';
+      tree_function.icon = 'media/images/function_folder.png';
+
+      var fic = new WebFXTreeItem('krumo', 'Krumo/_class.krumo.php.html#functionkrumo');
+      fic.openIcon = 'media/images/Function.png';
+      fic.icon = 'media/images/Function.png';
+      tree_function.add(fic);
+
+      tree.add(tree_function);
+
+      var tree_file = new WebFXTreeItem('File(s)', '');
+      tree_file.openIcon = 'media/images/folder.png';
+      tree_file.icon = 'media/images/folder.png';
+
+      var file = new WebFXTreeItem('class.krumo.php', 'Krumo/_class.krumo.php.html');
+      file.openIcon = 'media/images/Page.png';
+      file.icon = 'media/images/Page.png';
+      tree_file.add(file);
+
+      tree.add(tree_file);
+
+
+      document.write(tree);
+    }
+  </script>
+</div>
+<p class="notes">
+  Generated by
+  <a href="http://www.phpdoc.org" target="_blank">phpDocumentor <span class="field">1.4.0a2</span></a>
+</p>
+</body>
+</html>

+ 32 - 32
sites/all/modules/contrib/dev/devel/krumo/docs/media/banner.css

@@ -1,32 +1,32 @@
-body 
-{ 
-	background-color: #EEEEEE; 
-	margin: 0px; 
-	padding: 0px;
-}
-
-/* Banner (top bar) classes */
-
-.banner {  }
-
-.banner-menu 
-{ 
-	clear: both;
-	padding: .5em;
-	border-top: 2px solid #AAAAAA;	
-}
-
-.banner-title 
-{ 
-	text-align: right; 
-	font-size: 20pt; 
-	font-weight: bold; 
-	margin: .2em;
-}
-
-.package-selector 
-{ 
-	background-color: #DDDDDD; 
-	border: 1px solid #AAAAAA; 
-	color: #000090;
-}
+body 
+{ 
+	background-color: #EEEEEE; 
+	margin: 0px; 
+	padding: 0px;
+}
+
+/* Banner (top bar) classes */
+
+.banner {  }
+
+.banner-menu 
+{ 
+	clear: both;
+	padding: .5em;
+	border-top: 2px solid #AAAAAA;	
+}
+
+.banner-title 
+{ 
+	text-align: right; 
+	font-size: 20pt; 
+	font-weight: bold; 
+	margin: .2em;
+}
+
+.package-selector 
+{ 
+	background-color: #DDDDDD; 
+	border: 1px solid #AAAAAA; 
+	color: #000090;
+}

+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractClass.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractClass_logo.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractMethod.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractPrivateClass.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractPrivateClass_logo.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/AbstractPrivateMethod.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Class.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Class_logo.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Constant.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Constructor.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Destructor.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Function.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Global.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/I.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Index.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Interface.PNG → sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Interface.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/L.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Lminus.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Lplus.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Method.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Page.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Page_logo.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateClass.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateClass_logo.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateMethod.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/PrivateVariable.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/T.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Tminus.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Tplus.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/Variable.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/blank.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/class_folder.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/empty.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/file.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/folder.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/function_folder.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/minus.gif


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/next_button.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/next_button_disabled.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/package.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/package_folder.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/plus.gif


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/previous_button.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/previous_button_disabled.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/private_class_logo.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/tutorial.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/tutorial_folder.png


+ 0 - 0
sites/all/modules/contrib/dev/devel/krumo/docs/media/images/up_button.png


+ 454 - 454
sites/all/modules/contrib/dev/devel/krumo/docs/media/lib/classTree.js

@@ -1,454 +1,454 @@
-/*----------------------------------------\
-|      Cross Browser Tree Widget 1.1      |
-|-----------------------------------------|
-| Created by Emil A. Eklund (eae@eae.net) |
-|    For WebFX (http://webfx.eae.net/)    |
-|-----------------------------------------|
-| This script is  provided as is  without |
-| any warranty whatsoever. It may be used |
-| free of charge for non commerical sites |
-| For commerical use contact  the  author |
-| of this script for further details.     |
-|-----------------------------------------|
-| Created 2000-12-11 | Updated 2001-09-06 |
-\----------------------------------------*/
-
-var webFXTreeConfig = {
-	rootIcon        : 'media/images/empty.png',
-	openRootIcon    : 'media/images/empty.png',
-	folderIcon      : 'media/images/empty.png',
-	openFolderIcon  : 'media/images/empty.png',
-	fileIcon        : 'media/images/empty.png',
-	iIcon           : 'media/images/I.png',
-	lIcon           : 'media/images/L.png',
-	lMinusIcon      : 'media/images/Lminus.png',
-	lPlusIcon       : 'media/images/Lplus.png',
-	tIcon           : 'media/images/T.png',
-	tMinusIcon      : 'media/images/Tminus.png',
-	tPlusIcon       : 'media/images/Tplus.png',
-	blankIcon       : 'media/images/blank.png',
-	defaultText     : 'Tree Item',
-	defaultAction   : 'javascript:void(0);',
-	defaultTarget   : 'right',
-	defaultBehavior : 'classic'
-};
-
-var webFXTreeHandler = {
-	idCounter : 0,
-	idPrefix  : "webfx-tree-object-",
-	all       : {},
-	behavior  : null,
-	selected  : null,
-	getId     : function() { return this.idPrefix + this.idCounter++; },
-	toggle    : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
-	select    : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
-	focus     : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
-	blur      : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
-	keydown   : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
-	cookies   : new WebFXCookie()
-};
-
-/*
- * WebFXCookie class
- */
-
-function WebFXCookie() {
-	if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
-}
-
-WebFXCookie.prototype.setCookie = function (key, value) {
-	document.cookie = key + "=" + escape(value);
-}
-
-WebFXCookie.prototype.getCookie = function (key) {
-	if (this.cookies) {
-		var start = this.cookies.indexOf(' ' + key + '=');
-		if (start == -1) { return null; }
-		var end = this.cookies.indexOf(";", start);
-		if (end == -1) { end = this.cookies.length; }
-		end -= start;
-		var cookie = this.cookies.substr(start,end);
-		return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
-	}
-	else { return null; }
-}
-
-/*
- * WebFXTreeAbstractNode class
- */
-
-function WebFXTreeAbstractNode(sText, sAction, sTarget) {
-	this.childNodes  = [];
-	this.id     = webFXTreeHandler.getId();
-	this.text   = sText || webFXTreeConfig.defaultText;
-	this.action = sAction || webFXTreeConfig.defaultAction;
-	this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
-	this._last  = false;
-	webFXTreeHandler.all[this.id] = this;
-}
-
-WebFXTreeAbstractNode.prototype.add = function (node) {
-	node.parentNode = this;
-	this.childNodes[this.childNodes.length] = node;
-	var root = this;
-	if (this.childNodes.length >=2) {
-		this.childNodes[this.childNodes.length -2]._last = false;
-	}
-	while (root.parentNode) { root = root.parentNode; }
-	if (root.rendered) {
-		if (this.childNodes.length >= 2) {
-			document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
-			if (this.childNodes[this.childNodes.length -2].folder) {
-				this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
-				this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
-			}
-			this.childNodes[this.childNodes.length -2]._last = false;
-		}
-		this._last = true;
-		var foo = this;
-		while (foo.parentNode) {
-			for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
-				if (foo.id == foo.parentNode.childNodes[i].id) { break; }
-			}
-			if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
-			else { foo.parentNode._last = false; }
-			foo = foo.parentNode;
-		}
-		document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
-		if ((!this.folder) && (!this.openIcon)) {
-			this.icon = webFXTreeConfig.folderIcon;
-			this.openIcon = webFXTreeConfig.openFolderIcon;
-		}
-		this.folder = true;
-		this.indent();
-		this.expand();
-	}
-	return node;
-}
-
-WebFXTreeAbstractNode.prototype.toggle = function() {
-	if (this.folder) {
-		if (this.open) { this.collapse(); }
-		else { this.expand(); }
-	}
-}
-
-WebFXTreeAbstractNode.prototype.select = function() {
-	document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.focus = function() {
-	webFXTreeHandler.selected = this;
-	if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
-	document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
-	document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
-	document.getElementById(this.id + '-anchor').focus();
-}
-
-WebFXTreeAbstractNode.prototype.blur = function() {
-	if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
-	document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
-	document.getElementById(this.id + '-anchor').style.color = 'menutext';
-}
-
-WebFXTreeAbstractNode.prototype.doExpand = function() {
-	if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
-	if (this.childNodes.length) {  document.getElementById(this.id + '-cont').style.display = 'block'; }
-	this.open = true;
-	webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
-}
-
-WebFXTreeAbstractNode.prototype.doCollapse = function() {
-	if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
-	if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
-	this.open = false;
-	webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
-}
-
-WebFXTreeAbstractNode.prototype.expandAll = function() {
-	this.expandChildren();
-	if ((this.folder) && (!this.open)) { this.expand(); }
-}
-
-WebFXTreeAbstractNode.prototype.expandChildren = function() {
-	for (var i = 0; i < this.childNodes.length; i++) {
-		this.childNodes[i].expandAll();
-} }
-
-WebFXTreeAbstractNode.prototype.collapseAll = function() {
-	if ((this.folder) && (this.open)) { this.collapse(); }
-	this.collapseChildren();
-}
-
-WebFXTreeAbstractNode.prototype.collapseChildren = function() {
-	for (var i = 0; i < this.childNodes.length; i++) {
-		this.childNodes[i].collapseAll();
-} }
-
-WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
-	/*
-	 * Since we only want to modify items one level below ourself,
-	 * and since the rightmost indentation position is occupied by
-	 * the plus icon we set this to -2
-	 */
-	if (lvl == null) { lvl = -2; }
-	var state = 0;
-	for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
-		state = this.childNodes[i].indent(lvl + 1, del, last, level);
-		if (state) { return; }
-	}
-	if (del) {
-		if (level >= this._level) {
-			if (this.folder) {
-				document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
-				this.plusIcon = webFXTreeConfig.lPlusIcon;
-				this.minusIcon = webFXTreeConfig.lMinusIcon;
-			}
-			else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
-			return 1;
-		}
-	}
-	var foo = document.getElementById(this.id + '-indent-' + lvl);
-	if (foo) {
-		if ((del) && (last)) { foo._last = true; }
-		if (foo._last) { foo.src =  webFXTreeConfig.blankIcon; }
-		else { foo.src =  webFXTreeConfig.iIcon; }
-	}
-	return 0;
-}
-
-/*
- * WebFXTree class
- */
-
-function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
-	this.base = WebFXTreeAbstractNode;
-	this.base(sText, sAction);
-	this.icon      = sIcon || webFXTreeConfig.rootIcon;
-	this.openIcon  = sOpenIcon || webFXTreeConfig.openRootIcon;
-	/* Defaults to open */
-	this.open      = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
-	this.folder    = true;
-	this.rendered  = false;
-	if (!webFXTreeHandler.behavior) {  webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
-	this.targetWindow = 'right';
-}
-
-WebFXTree.prototype = new WebFXTreeAbstractNode;
-
-WebFXTree.prototype.setBehavior = function (sBehavior) {
-	webFXTreeHandler.behavior =  sBehavior;
-};
-
-WebFXTree.prototype.getBehavior = function (sBehavior) {
-	return webFXTreeHandler.behavior;
-};
-
-WebFXTree.prototype.getSelected = function() {
-	if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
-	else { return null; }
-}
-
-WebFXTree.prototype.remove = function() { }
-
-WebFXTree.prototype.expand = function() {
-	this.doExpand();
-}
-
-WebFXTree.prototype.collapse = function() {
-	this.focus();
-	this.doCollapse();
-}
-
-WebFXTree.prototype.getFirst = function() {
-	return null;
-}
-
-WebFXTree.prototype.getLast = function() {
-	return null;
-}
-
-WebFXTree.prototype.getNextSibling = function() {
-	return null;
-}
-
-WebFXTree.prototype.getPreviousSibling = function() {
-	return null;
-}
-
-WebFXTree.prototype.keydown = function(key) {
-	if (key == 39) { this.expand(); return false; }
-	if (key == 37) { this.collapse(); return false; }
-	if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
-	return true;
-}
-
-WebFXTree.prototype.toString = function() {
-	var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
-	str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
-	str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
-	for (var i = 0; i < this.childNodes.length; i++) {
-		str += this.childNodes[i].toString(i, this.childNodes.length);
-	}
-	str += "</div>";
-	this.rendered = true;
-	return str;
-};
-
-/*
- * WebFXTreeItem class
- */
-
-function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
-	this.base = WebFXTreeAbstractNode;
-	this.base(sText, sAction);
-	/* Defaults to close */
-	this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
-	if (eParent) { eParent.add(this); }
-	if (sIcon) { this.icon = sIcon; }
-	if (sOpenIcon) { this.openIcon = sOpenIcon; }
-}
-
-WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
-
-WebFXTreeItem.prototype.remove = function() {
-	var parentNode = this.parentNode;
-	var prevSibling = this.getPreviousSibling(true);
-	var nextSibling = this.getNextSibling(true);
-	var folder = this.parentNode.folder;
-	var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
-	this.getPreviousSibling().focus();
-	this._remove();
-	if (parentNode.childNodes.length == 0) {
-		parentNode.folder = false;
-		parentNode.open = false;
-	}
-	if (last) {
-		if (parentNode.id == prevSibling.id) {
-			document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
-		}
-		else { }
-	}
-	if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
-		parentNode.indent(null, true, last, this._level);
-	}
-	if (document.getElementById(prevSibling.id + '-plus')) {
-		if (nextSibling) {
-			if ((parentNode == prevSibling) && (parentNode.getNextSibling))  { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
-			else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
-		}
-		else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
-	}
-}
-
-WebFXTreeItem.prototype._remove = function() {
-	for (var i = this.childNodes.length - 1; i >= 0; i--) {
-		this.childNodes[i]._remove();
- 	}
-	for (var i = 0; i < this.parentNode.childNodes.length; i++) {
-		if (this.id == this.parentNode.childNodes[i].id) {
-			for (var j = i; j < this.parentNode.childNodes.length; j++) {
-				this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
-			}
-			this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
-			if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
-		}
-	}
-	webFXTreeHandler.all[this.id] = null;
-	if (document.getElementById(this.id)) {
-		document.getElementById(this.id).innerHTML = "";
-		document.getElementById(this.id).removeNode();
-	}
-}
-
-WebFXTreeItem.prototype.expand = function() {
-	this.doExpand();
-	document.getElementById(this.id + '-plus').src = this.minusIcon;
-}
-
-WebFXTreeItem.prototype.collapse = function() {
-	this.focus();
-	this.doCollapse();
-	document.getElementById(this.id + '-plus').src = this.plusIcon;
-}
-
-WebFXTreeItem.prototype.getFirst = function() {
-	return this.childNodes[0];
-}
-
-WebFXTreeItem.prototype.getLast = function() {
-	if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
-	else { return this.childNodes[this.childNodes.length - 1]; }
-}
-
-WebFXTreeItem.prototype.getNextSibling = function() {
-	for (var i = 0; i < this.parentNode.childNodes.length; i++) {
-		if (this == this.parentNode.childNodes[i]) { break; }
-	}
-	if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
-	else { return this.parentNode.childNodes[i]; }
-}
-
-WebFXTreeItem.prototype.getPreviousSibling = function(b) {
-	for (var i = 0; i < this.parentNode.childNodes.length; i++) {
-		if (this == this.parentNode.childNodes[i]) { break; }
-	}
-	if (i == 0) { return this.parentNode; }
-	else {
-		if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
-		else { return this.parentNode.childNodes[i]; }
-} }
-
-WebFXTreeItem.prototype.keydown = function(key) {
-	if ((key == 39) && (this.folder)) {
-		if (!this.open) { this.expand(); return false; }
-		else { this.getFirst().select(); return false; }
-	}
-	else if (key == 37) {
-		if (this.open) { this.collapse(); return false; }
-		else { this.parentNode.select(); return false; }
-	}
-	else if (key == 40) {
-		if (this.open) { this.getFirst().select(); return false; }
-		else {
-			var sib = this.getNextSibling();
-			if (sib) { sib.select(); return false; }
-	} }
-	else if (key == 38) { this.getPreviousSibling().select(); return false; }
-	return true;
-}
-
-WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
-	var foo = this.parentNode;
-	var indent = '';
-	if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
-	var i = 0;
-	while (foo.parentNode) {
-		foo = foo.parentNode;
-		indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
-		i++;
-	}
-	this._level = i;
-	if (this.childNodes.length) { this.folder = 1; }
-	else { this.open = false; }
-	if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
-		if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
-		if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
-	}
-	else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
-	var label = this.text;
-	label = label.replace('<', '<');
-	label = label.replace('>', '>');
-	var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
-	str += indent;
-	str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
-	str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
-	str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
-	for (var i = 0; i < this.childNodes.length; i++) {
-		str += this.childNodes[i].toString(i,this.childNodes.length);
-	}
-	str += "</div>";
-	this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
-	this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
-	return str;
-}
+/*----------------------------------------\
+|      Cross Browser Tree Widget 1.1      |
+|-----------------------------------------|
+| Created by Emil A. Eklund (eae@eae.net) |
+|    For WebFX (http://webfx.eae.net/)    |
+|-----------------------------------------|
+| This script is  provided as is  without |
+| any warranty whatsoever. It may be used |
+| free of charge for non commerical sites |
+| For commerical use contact  the  author |
+| of this script for further details.     |
+|-----------------------------------------|
+| Created 2000-12-11 | Updated 2001-09-06 |
+\----------------------------------------*/
+
+var webFXTreeConfig = {
+  rootIcon        : 'media/images/empty.png',
+  openRootIcon    : 'media/images/empty.png',
+  folderIcon      : 'media/images/empty.png',
+  openFolderIcon  : 'media/images/empty.png',
+  fileIcon        : 'media/images/empty.png',
+  iIcon           : 'media/images/I.png',
+  lIcon           : 'media/images/L.png',
+  lMinusIcon      : 'media/images/Lminus.png',
+  lPlusIcon       : 'media/images/Lplus.png',
+  tIcon           : 'media/images/T.png',
+  tMinusIcon      : 'media/images/Tminus.png',
+  tPlusIcon       : 'media/images/Tplus.png',
+  blankIcon       : 'media/images/blank.png',
+  defaultText     : 'Tree Item',
+  defaultAction   : 'javascript:void(0);',
+  defaultTarget   : 'right',
+  defaultBehavior : 'classic'
+};
+
+var webFXTreeHandler = {
+  idCounter : 0,
+  idPrefix  : "webfx-tree-object-",
+  all       : {},
+  behavior  : null,
+  selected  : null,
+  getId     : function() { return this.idPrefix + this.idCounter++; },
+  toggle    : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+  select    : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+  focus     : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+  blur      : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+  keydown   : function (oItem) { return this.all[oItem.id].keydown(window.event.keyCode); },
+  cookies   : new WebFXCookie()
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+  if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+  document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+  if (this.cookies) {
+    var start = this.cookies.indexOf(' ' + key + '=');
+    if (start == -1) { return null; }
+    var end = this.cookies.indexOf(";", start);
+    if (end == -1) { end = this.cookies.length; }
+    end -= start;
+    var cookie = this.cookies.substr(start,end);
+    return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+  }
+  else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction, sTarget) {
+  this.childNodes  = [];
+  this.id     = webFXTreeHandler.getId();
+  this.text   = sText || webFXTreeConfig.defaultText;
+  this.action = sAction || webFXTreeConfig.defaultAction;
+  this.targetWindow = sTarget || webFXTreeConfig.defaultTarget;
+  this._last  = false;
+  webFXTreeHandler.all[this.id] = this;
+}
+
+WebFXTreeAbstractNode.prototype.add = function (node) {
+  node.parentNode = this;
+  this.childNodes[this.childNodes.length] = node;
+  var root = this;
+  if (this.childNodes.length >=2) {
+    this.childNodes[this.childNodes.length -2]._last = false;
+  }
+  while (root.parentNode) { root = root.parentNode; }
+  if (root.rendered) {
+    if (this.childNodes.length >= 2) {
+      document.getElementById(this.childNodes[this.childNodes.length -2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tIcon);
+      if (this.childNodes[this.childNodes.length -2].folder) {
+        this.childNodes[this.childNodes.length -2].plusIcon = webFXTreeConfig.tPlusIcon;
+        this.childNodes[this.childNodes.length -2].minusIcon = webFXTreeConfig.tMinusIcon;
+      }
+      this.childNodes[this.childNodes.length -2]._last = false;
+    }
+    this._last = true;
+    var foo = this;
+    while (foo.parentNode) {
+      for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+        if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+      }
+      if (++i == foo.parentNode.childNodes.length) { foo.parentNode._last = true; }
+      else { foo.parentNode._last = false; }
+      foo = foo.parentNode;
+    }
+    document.getElementById(this.id + '-cont').insertAdjacentHTML("beforeEnd", node.toString());
+    if ((!this.folder) && (!this.openIcon)) {
+      this.icon = webFXTreeConfig.folderIcon;
+      this.openIcon = webFXTreeConfig.openFolderIcon;
+    }
+    this.folder = true;
+    this.indent();
+    this.expand();
+  }
+  return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+  if (this.folder) {
+    if (this.open) { this.collapse(); }
+    else { this.expand(); }
+  }
+}
+
+WebFXTreeAbstractNode.prototype.select = function() {
+  document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+  webFXTreeHandler.selected = this;
+  if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+  document.getElementById(this.id + '-anchor').style.backgroundColor = 'highlight';
+  document.getElementById(this.id + '-anchor').style.color = 'highlighttext';
+  document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+  if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+  document.getElementById(this.id + '-anchor').style.backgroundColor = 'transparent';
+  document.getElementById(this.id + '-anchor').style.color = 'menutext';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+  if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+  if (this.childNodes.length) {  document.getElementById(this.id + '-cont').style.display = 'block'; }
+  this.open = true;
+  webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+}
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+  if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+  if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+  this.open = false;
+  webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+}
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+  this.expandChildren();
+  if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+  for (var i = 0; i < this.childNodes.length; i++) {
+    this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+  if ((this.folder) && (this.open)) { this.collapse(); }
+  this.collapseChildren();
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+  for (var i = 0; i < this.childNodes.length; i++) {
+    this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level) {
+  /*
+   * Since we only want to modify items one level below ourself,
+   * and since the rightmost indentation position is occupied by
+   * the plus icon we set this to -2
+   */
+  if (lvl == null) { lvl = -2; }
+  var state = 0;
+  for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+    state = this.childNodes[i].indent(lvl + 1, del, last, level);
+    if (state) { return; }
+  }
+  if (del) {
+    if (level >= this._level) {
+      if (this.folder) {
+        document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+        this.plusIcon = webFXTreeConfig.lPlusIcon;
+        this.minusIcon = webFXTreeConfig.lMinusIcon;
+      }
+      else { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+      return 1;
+    }
+  }
+  var foo = document.getElementById(this.id + '-indent-' + lvl);
+  if (foo) {
+    if ((del) && (last)) { foo._last = true; }
+    if (foo._last) { foo.src =  webFXTreeConfig.blankIcon; }
+    else { foo.src =  webFXTreeConfig.iIcon; }
+  }
+  return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+  this.base = WebFXTreeAbstractNode;
+  this.base(sText, sAction);
+  this.icon      = sIcon || webFXTreeConfig.rootIcon;
+  this.openIcon  = sOpenIcon || webFXTreeConfig.openRootIcon;
+  /* Defaults to open */
+  this.open      = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+  this.folder    = true;
+  this.rendered  = false;
+  if (!webFXTreeHandler.behavior) {  webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+  this.targetWindow = 'right';
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+  webFXTreeHandler.behavior =  sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+  return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+  if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+  else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+  this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function() {
+  this.focus();
+  this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+  return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+  return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+  return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+  return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+  if (key == 39) { this.expand(); return false; }
+  if (key == 37) { this.collapse(); return false; }
+  if ((key == 40) && (this.open)) { this.childNodes[0].select(); return false; }
+  return true;
+}
+
+WebFXTree.prototype.toString = function() {
+  var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+  str += "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + this.text + "</a></div>";
+  str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+  for (var i = 0; i < this.childNodes.length; i++) {
+    str += this.childNodes[i].toString(i, this.childNodes.length);
+  }
+  str += "</div>";
+  this.rendered = true;
+  return str;
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+  this.base = WebFXTreeAbstractNode;
+  this.base(sText, sAction);
+  /* Defaults to close */
+  this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+  if (eParent) { eParent.add(this); }
+  if (sIcon) { this.icon = sIcon; }
+  if (sOpenIcon) { this.openIcon = sOpenIcon; }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+  var parentNode = this.parentNode;
+  var prevSibling = this.getPreviousSibling(true);
+  var nextSibling = this.getNextSibling(true);
+  var folder = this.parentNode.folder;
+  var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+  this.getPreviousSibling().focus();
+  this._remove();
+  if (parentNode.childNodes.length == 0) {
+    parentNode.folder = false;
+    parentNode.open = false;
+  }
+  if (last) {
+    if (parentNode.id == prevSibling.id) {
+      document.getElementById(parentNode.id + '-icon').src = webFXTreeConfig.fileIcon;
+    }
+    else { }
+  }
+  if ((!prevSibling.parentNode) || (prevSibling.parentNode != parentNode)) {
+    parentNode.indent(null, true, last, this._level);
+  }
+  if (document.getElementById(prevSibling.id + '-plus')) {
+    if (nextSibling) {
+      if ((parentNode == prevSibling) && (parentNode.getNextSibling))  { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.tIcon; }
+      else if (nextSibling.parentNode != prevSibling) { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+    }
+    else { document.getElementById(prevSibling.id + '-plus').src = webFXTreeConfig.lIcon; }
+  }
+}
+
+WebFXTreeItem.prototype._remove = function() {
+  for (var i = this.childNodes.length - 1; i >= 0; i--) {
+    this.childNodes[i]._remove();
+   }
+  for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+    if (this.id == this.parentNode.childNodes[i].id) {
+      for (var j = i; j < this.parentNode.childNodes.length; j++) {
+        this.parentNode.childNodes[i] = this.parentNode.childNodes[i+1]
+      }
+      this.parentNode.childNodes.length = this.parentNode.childNodes.length - 1;
+      if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+    }
+  }
+  webFXTreeHandler.all[this.id] = null;
+  if (document.getElementById(this.id)) {
+    document.getElementById(this.id).innerHTML = "";
+    document.getElementById(this.id).removeNode();
+  }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+  this.doExpand();
+  document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function() {
+  this.focus();
+  this.doCollapse();
+  document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+  return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+  if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+  else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+  for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+    if (this == this.parentNode.childNodes[i]) { break; }
+  }
+  if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+  else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+  for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+    if (this == this.parentNode.childNodes[i]) { break; }
+  }
+  if (i == 0) { return this.parentNode; }
+  else {
+    if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+    else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+  if ((key == 39) && (this.folder)) {
+    if (!this.open) { this.expand(); return false; }
+    else { this.getFirst().select(); return false; }
+  }
+  else if (key == 37) {
+    if (this.open) { this.collapse(); return false; }
+    else { this.parentNode.select(); return false; }
+  }
+  else if (key == 40) {
+    if (this.open) { this.getFirst().select(); return false; }
+    else {
+      var sib = this.getNextSibling();
+      if (sib) { sib.select(); return false; }
+  } }
+  else if (key == 38) { this.getPreviousSibling().select(); return false; }
+  return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+  var foo = this.parentNode;
+  var indent = '';
+  if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+  var i = 0;
+  while (foo.parentNode) {
+    foo = foo.parentNode;
+    indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+    i++;
+  }
+  this._level = i;
+  if (this.childNodes.length) { this.folder = 1; }
+  else { this.open = false; }
+  if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+    if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+    if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+  }
+  else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+  var label = this.text;
+  label = label.replace('<', '<');
+  label = label.replace('>', '>');
+  var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this)\">";
+  str += indent;
+  str += "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">"
+  str += "<img id=\"" + this.id + "-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\"><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" target=\"" + this.targetWindow + "\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\">" + label + "</a></div>";
+  str += "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+  for (var i = 0; i < this.childNodes.length; i++) {
+    str += this.childNodes[i].toString(i,this.childNodes.length);
+  }
+  str += "</div>";
+  this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+  this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+  return str;
+}

+ 181 - 181
sites/all/modules/contrib/dev/devel/krumo/docs/media/stylesheet.css

@@ -1,181 +1,181 @@
-a { color: #000090; text-decoration: none; }
-a:hover, a:active, a:focus { color: highlighttext; background-color: highlight; text-decoration: none; }
-
-body { background : #FFFFFF; }
-body, table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
-
-a img { border: 0px; }
-
-/* Page layout/boxes */
-
-.info-box {  }
-.info-box-title { margin: 1em 0em 0em 0em; font-weight: normal; font-size: 14pt; color: #999999; border-bottom: 2px solid #999999; }
-.info-box-body { border: 1px solid #999999; padding: .5em; }
-.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
-
-.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
-.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
-
-.page-body { max-width: 800px; margin: auto; }
-.tree { }
-
-/* Index formatting classes */
-
-.index-item-body { margin-top: .5em; margin-bottom: .5em}
-.index-item-description { margin-top: .25em }
-.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
-.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
-.index-letter-title { font-size: 12pt; font-weight: bold }
-.index-letter-menu { text-align: center; margin: 1em }
-.index-letter { font-size: 12pt }
-
-/* Docbook classes */
-
-.description {}
-.short-description { font-weight: bold; color: #666666; }
-.tags {	padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
-.parameters {	padding-left: 0em; margin-left: 3em; color: #014fbe; list-style-type: square; }
-.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
-.package { font-weight: bold; }
-.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
-.sub-package { font-weight: bold; }
-.tutorial { border-width: thin; border-color: #0066ff; }
-.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
-
-/* Generic formatting */
-
-.field { font-weight: bold; }
-.detail { font-size: 8pt; }
-.notes { font-style: italic; font-size: 8pt; }
-.separator { background-color: #999999; height: 2px; }
-.warning {  color: #FF6600; }
-.disabled { font-style: italic; color: #999999; }
-
-/* Code elements */
-
-.line-number {  }
-
-.class-table { width: 100%; }
-.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
-.class-name { color: #0000AA; font-weight: bold; }
-
-.method-summary { color: #009000; padding-left: 1em; font-size: 8pt; }
-.method-header { }
-.method-definition { margin-bottom: .2em }
-.method-title { color: #009000; font-weight: bold; }
-.method-name { font-weight: bold; }
-.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
-.method-result { font-style: italic; }
-
-.var-summary { padding-left: 1em; font-size: 8pt; }
-.var-header { }
-.var-title { color: #014fbe; margin-bottom: .3em }
-.var-type { font-style: italic; }
-.var-name { font-weight: bold; }
-.var-default {}
-.var-description { font-weight: normal; color: #000000; }
-
-.include-title { color: #014fbe;}
-.include-type { font-style: italic; }
-.include-name { font-weight: bold; }
-
-.const-title { color: #FF6600; }
-.const-name { font-weight: bold; }
-
-/* Syntax highlighting */
-
-.src-code { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
-.src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
-
-.src-code a:link { padding: 1px; text-decoration: underline; color: #0000DD; }
-.src-code a:visited { text-decoration: underline; color: #0000DD; }
-.src-code a:active { background-color: #FFFF66; color: #008000; }
-.src-code a:hover { background-color: #FFFF66; text-decoration: overline underline; color: #008000; }
-
-.src-comm { color: #666666; }
-.src-id { color: #FF6600; font-style: italic; }
-.src-inc { color: #0000AA; font-weight: bold; }
-.src-key { color: #0000AA; font-weight: bold; }
-.src-num { color: #CC0000; }
-.src-str { color: #CC0000; }
-.src-sym { }
-.src-var { }
-
-.src-php { font-weight: bold; }
-
-.src-doc { color: #666666; }
-.src-doc-close-template { color: #666666 }
-.src-doc-coretag { color: #008000; }
-.src-doc-inlinetag {}
-.src-doc-internal {}
-.src-doc-tag { color: #0080CC; }
-.src-doc-template { color: #666666 }
-.src-doc-type { font-style: italic; color: #444444 }
-.src-doc-var { color: #444444 }
-
-.tute-tag { color: #009999 }
-.tute-attribute-name { color: #0000FF }
-.tute-attribute-value { color: #0099FF }
-.tute-entity { font-weight: bold; }
-.tute-comment { font-style: italic }
-.tute-inline-tag { color: #636311; font-weight: bold }
-
-/* tutorial */
-
-.authors {  }
-.author { font-style: italic; font-weight: bold }
-.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
-.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
-.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
-.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
-.ref-title-box {  }
-.ref-title {  }
-.ref-purpose { font-style: italic; color: #666666 }
-.ref-synopsis {  }
-.title { font-weight: bold; border-bottom: 1px solid #999999; color: #999999;  }
-.cmd-synopsis { margin: 1em 0em }
-.cmd-title { font-weight: bold }
-.toc { margin-left: 2em; padding-left: 0em }
-
-/*------------------------------------------------------------------------------
-    webfx-tree
-------------------------------------------------------------------------------*/
-
-.webfx-tree-container {
-	margin: 0px;
-	padding: 0px;
-	white-space: nowrap;
-	font: icon;
-}
-
-.webfx-tree-item {
-	padding: 0px;
-	margin: 0px;
-	color: black;
-	white-space: nowrap;
-	font: icon;
-}
-
-.webfx-tree-item a {
-	margin-left: 3px;
-	padding: 1px 2px 1px 2px;
-	color: black;
-	text-decoration: none;
-}
-
-.webfx-tree-item a:hover, .webfx-tree-item a:active { 
-	color: highlighttext; 
-	background: highlight; 
-	text-decoration: none 
-}
-
-.webfx-tree-item img {
-	vertical-align: middle;
-	border: 0px;
-}
-
-.webfx-tree-icon {
-	width: 16px;
-	height: 16px;
-}
-
+a { color: #000090; text-decoration: none; }
+a:hover, a:active, a:focus { color: highlighttext; background-color: highlight; text-decoration: none; }
+
+body { background : #FFFFFF; }
+body, table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
+
+a img { border: 0px; }
+
+/* Page layout/boxes */
+
+.info-box {  }
+.info-box-title { margin: 1em 0em 0em 0em; font-weight: normal; font-size: 14pt; color: #999999; border-bottom: 2px solid #999999; }
+.info-box-body { border: 1px solid #999999; padding: .5em; }
+.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
+
+.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
+.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
+
+.page-body { max-width: 800px; margin: auto; }
+.tree { }
+
+/* Index formatting classes */
+
+.index-item-body { margin-top: .5em; margin-bottom: .5em}
+.index-item-description { margin-top: .25em }
+.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
+.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
+.index-letter-title { font-size: 12pt; font-weight: bold }
+.index-letter-menu { text-align: center; margin: 1em }
+.index-letter { font-size: 12pt }
+
+/* Docbook classes */
+
+.description {}
+.short-description { font-weight: bold; color: #666666; }
+.tags {       padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
+.parameters { padding-left: 0em; margin-left: 3em; color: #014fbe; list-style-type: square; }
+.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
+.package { font-weight: bold; }
+.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
+.sub-package { font-weight: bold; }
+.tutorial { border-width: thin; border-color: #0066ff; }
+.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
+
+/* Generic formatting */
+
+.field { font-weight: bold; }
+.detail { font-size: 8pt; }
+.notes { font-style: italic; font-size: 8pt; }
+.separator { background-color: #999999; height: 2px; }
+.warning {  color: #FF6600; }
+.disabled { font-style: italic; color: #999999; }
+
+/* Code elements */
+
+.line-number {  }
+
+.class-table { width: 100%; }
+.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
+.class-name { color: #0000AA; font-weight: bold; }
+
+.method-summary { color: #009000; padding-left: 1em; font-size: 8pt; }
+.method-header { }
+.method-definition { margin-bottom: .2em }
+.method-title { color: #009000; font-weight: bold; }
+.method-name { font-weight: bold; }
+.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
+.method-result { font-style: italic; }
+
+.var-summary { padding-left: 1em; font-size: 8pt; }
+.var-header { }
+.var-title { color: #014fbe; margin-bottom: .3em }
+.var-type { font-style: italic; }
+.var-name { font-weight: bold; }
+.var-default {}
+.var-description { font-weight: normal; color: #000000; }
+
+.include-title { color: #014fbe;}
+.include-type { font-style: italic; }
+.include-name { font-weight: bold; }
+
+.const-title { color: #FF6600; }
+.const-name { font-weight: bold; }
+
+/* Syntax highlighting */
+
+.src-code { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
+.src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
+
+.src-code a:link { padding: 1px; text-decoration: underline; color: #0000DD; }
+.src-code a:visited { text-decoration: underline; color: #0000DD; }
+.src-code a:active { background-color: #FFFF66; color: #008000; }
+.src-code a:hover { background-color: #FFFF66; text-decoration: overline underline; color: #008000; }
+
+.src-comm { color: #666666; }
+.src-id { color: #FF6600; font-style: italic; }
+.src-inc { color: #0000AA; font-weight: bold; }
+.src-key { color: #0000AA; font-weight: bold; }
+.src-num { color: #CC0000; }
+.src-str { color: #CC0000; }
+.src-sym { }
+.src-var { }
+
+.src-php { font-weight: bold; }
+
+.src-doc { color: #666666; }
+.src-doc-close-template { color: #666666 }
+.src-doc-coretag { color: #008000; }
+.src-doc-inlinetag {}
+.src-doc-internal {}
+.src-doc-tag { color: #0080CC; }
+.src-doc-template { color: #666666 }
+.src-doc-type { font-style: italic; color: #444444 }
+.src-doc-var { color: #444444 }
+
+.tute-tag { color: #009999 }
+.tute-attribute-name { color: #0000FF }
+.tute-attribute-value { color: #0099FF }
+.tute-entity { font-weight: bold; }
+.tute-comment { font-style: italic }
+.tute-inline-tag { color: #636311; font-weight: bold }
+
+/* tutorial */
+
+.authors {  }
+.author { font-style: italic; font-weight: bold }
+.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
+.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
+.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
+.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
+.ref-title-box {  }
+.ref-title {  }
+.ref-purpose { font-style: italic; color: #666666 }
+.ref-synopsis {  }
+.title { font-weight: bold; border-bottom: 1px solid #999999; color: #999999;  }
+.cmd-synopsis { margin: 1em 0em }
+.cmd-title { font-weight: bold }
+.toc { margin-left: 2em; padding-left: 0em }
+
+/*------------------------------------------------------------------------------
+    webfx-tree
+------------------------------------------------------------------------------*/
+
+.webfx-tree-container {
+  margin: 0px;
+  padding: 0px;
+  white-space: nowrap;
+  font: icon;
+}
+
+.webfx-tree-item {
+  padding: 0px;
+  margin: 0px;
+  color: black;
+  white-space: nowrap;
+  font: icon;
+}
+
+.webfx-tree-item a {
+  margin-left: 3px;
+  padding: 1px 2px 1px 2px;
+  color: black;
+  text-decoration: none;
+}
+
+.webfx-tree-item a:hover, .webfx-tree-item a:active {
+  color: highlighttext;
+  background: highlight;
+  text-decoration: none
+}
+
+.webfx-tree-item img {
+  vertical-align: middle;
+  border: 0px;
+}
+
+.webfx-tree-icon {
+  width: 16px;
+  height: 16px;
+}
+

+ 40 - 40
sites/all/modules/contrib/dev/devel/krumo/docs/packages.html

@@ -1,40 +1,40 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-			<link rel="stylesheet" href="media/banner.css" />
-			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
-		</head>
-		<body>
-			<div class="banner">
-				<div class="banner-title">Krumo</div>
-				<div class="banner-menu">
-					<form>
-						<table cellpadding="0" cellspacing="0" style="width: 100%">
-							<tr>
-								<td>
-																			
-																																<a href="ric_INSTALL.html" target="right">INSTALL</a>
-											
-																					 | 											<a href="ric_LICENSE.html" target="right">LICENSE</a>
-											
-																					 | 											<a href="ric_README.html" target="right">README</a>
-											
-																					 | 											<a href="ric_TODO.html" target="right">TODO</a>
-											
-																					 | 											<a href="ric_VERSION.html" target="right">VERSION</a>
-											
-																											</td>
-								<td style="width: 2em">&nbsp;</td>
-								<td style="text-align: right">
-																	</td>
-							</tr>
-						</table>
-					</form>
-				</div>
-			</div>
-		</body>
-	</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+  <link rel="stylesheet" href="media/banner.css"/>
+  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
+</head>
+<body>
+<div class="banner">
+  <div class="banner-title">Krumo</div>
+  <div class="banner-menu">
+    <form>
+      <table cellpadding="0" cellspacing="0" style="width: 100%">
+        <tr>
+          <td>
+
+            <a href="ric_INSTALL.html" target="right">INSTALL</a>
+
+            | <a href="ric_LICENSE.html" target="right">LICENSE</a>
+
+            | <a href="ric_README.html" target="right">README</a>
+
+            | <a href="ric_TODO.html" target="right">TODO</a>
+
+            | <a href="ric_VERSION.html" target="right">VERSION</a>
+
+          </td>
+          <td style="width: 2em">&nbsp;</td>
+          <td style="text-align: right">
+          </td>
+        </tr>
+      </table>
+    </form>
+  </div>
+</div>
+</body>
+</html>

+ 50 - 49
sites/all/modules/contrib/dev/devel/krumo/docs/ric_INSTALL.html

@@ -1,49 +1,50 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<div align="center"><h1>INSTALL</h1></div>
-<pre>
-------------------------------------------------------------------------------
-
-                     SETUP: How to install Krumo ?
-
-------------------------------------------------------------------------------
-
-In order to use Krumo you have to put it on your (development) server, and 
-include it in your script. You can put it somewhere in the INCLUDE_PATH, or 
-specify the full path to the &quot;class.krumo.php&quot; file.
-
-You have to modify the &quot;krumo.ini&quot; file too. It is the configuration file for 
-Krumo. The first option is choosing a skin:
-
- [skin]
- selected = &quot;orange&quot;
-
-The value for this setting has to be the name of one of the sub-folders from the 
-&quot;Krumo/skins/&quot; folder. If the value provided for the skin results in not finding 
-the skin, the `default` skin will be used instead.
-
-The second option is used to set the correct web path to the folder where Krumo 
-is installed. This is used in order to make the images from Krumo's CSS skins 
-web-accessible.
-
- [css]
- url = &quot;http://www.example.com/Krumo/&quot;
-
-So far those two are the only configuration options.
-
-All the CSS files (&quot;skin.css&quot;) from the &quot;Krumo/skins/&quot; sub-folders must have the 
-proper permissions in order to be readable from Krumo. Same applies for 
-&quot;krumo.ini&quot; and &quot;krumo.js&quot; files.
-</pre>
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:22 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+</head>
+<body>
+
+<div align="center"><h1>INSTALL</h1></div>
+<pre>
+------------------------------------------------------------------------------
+
+                     SETUP: How to install Krumo ?
+
+------------------------------------------------------------------------------
+
+In order to use Krumo you have to put it on your (development) server, and
+include it in your script. You can put it somewhere in the INCLUDE_PATH, or
+specify the full path to the &quot;class.krumo.php&quot; file.
+
+You have to modify the &quot;krumo.ini&quot; file too. It is the configuration file for
+Krumo. The first option is choosing a skin:
+
+ [skin]
+ selected = &quot;orange&quot;
+
+The value for this setting has to be the name of one of the sub-folders from the
+&quot;Krumo/skins/&quot; folder. If the value provided for the skin results in not finding
+the skin, the `default` skin will be used instead.
+
+The second option is used to set the correct web path to the folder where Krumo
+is installed. This is used in order to make the images from Krumo's CSS skins
+web-accessible.
+
+ [css]
+ url = &quot;http://www.example.com/Krumo/&quot;
+
+So far those two are the only configuration options.
+
+All the CSS files (&quot;skin.css&quot;) from the &quot;Krumo/skins/&quot; sub-folders must have the
+proper permissions in order to be readable from Krumo. Same applies for
+&quot;krumo.ini&quot; and &quot;krumo.js&quot; files.
+</pre>
+  <p class="notes" id="credit">
+    Documentation generated on Sun, 02 Dec 2007 09:43:22 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+  </p>
+</body>
+</html>

+ 523 - 522
sites/all/modules/contrib/dev/devel/krumo/docs/ric_LICENSE.html

@@ -1,522 +1,523 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<div align="center"><h1>LICENSE</h1></div>
-<pre>
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the &quot;Lesser&quot; General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-&quot;work based on the library&quot; and a &quot;work that uses the library&quot;.  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called &quot;this License&quot;).
-Each licensee is addressed as &quot;you&quot;.
-
-  A &quot;library&quot; means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The &quot;Library&quot;, below, refers to any such software library or work
-which has been distributed under these terms.  A &quot;work based on the
-Library&quot; means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term &quot;modification&quot;.)
-
-  &quot;Source code&quot; for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a &quot;work that uses the Library&quot;.  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a &quot;work that uses the Library&quot; with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a &quot;work that uses the
-library&quot;.  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a &quot;work that uses the Library&quot; uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a &quot;work that uses the Library&quot; with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable &quot;work that
-    uses the Library&quot;, as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the &quot;work that uses the
-Library&quot; must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-&quot;any later version&quot;, you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY &quot;AS IS&quot; WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-&quot;copyright&quot; line and a pointer to where the full notice is found.
-
-    &lt;one line to give the library's name and a brief idea of what it does.&gt;
-    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library 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
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a &quot;copyright disclaimer&quot; for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  &lt;signature of Ty Coon&gt;, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-
-
-</pre>
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:23 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+</head>
+<body>
+
+<div align="center"><h1>LICENSE</h1></div>
+<pre>
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the &quot;Lesser&quot; General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+&quot;work based on the library&quot; and a &quot;work that uses the library&quot;.  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called &quot;this License&quot;).
+Each licensee is addressed as &quot;you&quot;.
+
+  A &quot;library&quot; means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The &quot;Library&quot;, below, refers to any such software library or work
+which has been distributed under these terms.  A &quot;work based on the
+Library&quot; means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term &quot;modification&quot;.)
+
+  &quot;Source code&quot; for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a &quot;work that uses the Library&quot;.  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a &quot;work that uses the Library&quot; with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a &quot;work that uses the
+library&quot;.  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a &quot;work that uses the Library&quot; uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a &quot;work that uses the Library&quot; with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable &quot;work that
+    uses the Library&quot;, as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the &quot;work that uses the
+Library&quot; must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+&quot;any later version&quot;, you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY &quot;AS IS&quot; WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+&quot;copyright&quot; line and a pointer to where the full notice is found.
+
+    &lt;one line to give the library's name and a brief idea of what it does.&gt;
+    Copyright (C) &lt;year&gt;  &lt;name of author&gt;
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a &quot;copyright disclaimer&quot; for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  &lt;signature of Ty Coon&gt;, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+
+</pre>
+<p class="notes" id="credit">
+  Documentation generated on Sun, 02 Dec 2007 09:43:23 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+</p>
+</body>
+</html>

+ 122 - 121
sites/all/modules/contrib/dev/devel/krumo/docs/ric_README.html

@@ -1,121 +1,122 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<div align="center"><h1>README</h1></div>
-<pre>
-=============================================================================
-
-                               Krumo
-                            version 0.2.1a
-
-=============================================================================
-
-You probably got this package from...
-http://www.sourceforge.net/projects/krumo/
-
-If there is no licence agreement with this package please download
-a version from the location above. You must read and accept that
-licence to use this software. The file is titled simply LICENSE.
-
-OVERVIEW
-------------------------------------------------------------------------------
-To put it simply, Krumo is a replacement for print_r() and var_dump(). By 
-definition Krumo is a debugging tool (for PHP5), which displays structured 
-information about any PHP variable.
-
-A lot of developers use print_r() and var_dump() in the means of debugging 
-tools. Although they were intended to present human readble information about a 
-variable, we can all agree that in general they are not. Krumo is an 
-alternative: it does the same job, but it presents the information beautified 
-using CSS and DHTML. 
-
-EXAMPLES
-------------------------------------------------------------------------------
-Here's a basic example, which will return a report on the array variable passed 
-as argument to it:
-
- krumo(array('a1'=&gt; 'A1', 3, 'red'));
-
-You can dump simultaneously more then one variable - here's another example:
-
- krumo($_SERVER, $_REQUEST);
-
-You probably saw from the examples above that some of the nodes are expandable, 
-so if you want to inspect the nested information, click on them and they will 
-expand; if you do not need that information shown simply click again on it to 
-collapse it. Here's an example to test this:
-
- $x1-&gt;x2-&gt;x3-&gt;x4-&gt;x5-&gt;x6-&gt;x7-&gt;x8-&gt;x9 = 'X10';
- krumo($x1);
-
-The krumo() is the only standalone function from the package, and this is 
-because basic dumps about variables (like print_r() or var_dump()) are the most 
-common tasks such functionality is used for. The rest of the functionality can 
-be called using static calls to the Krumo class. Here are several more examples:
-
- // print a debug backgrace
- krumo::backtrace();
-
- // print all the included(or required) files
- krumo::includes();
- 
- // print all the included functions
- krumo::functions();
- 
- // print all the declared classes
- krumo::classes();
- 
- // print all the defined constants
- krumo::defines();
-
- ... and so on, etc.
-
-A full PHPDocumenter API documentation exists both in this package and at the 
-project's website.
-
-INSTALL
-------------------------------------------------------------------------------
-Read the INSTALL file.
-
-DOCUMENTATION
-------------------------------------------------------------------------------
-As I said, a full PHPDocumenter API documentation can be found both in this
-package and at the project's website.
-
-SKINS
-------------------------------------------------------------------------------
-There are several skins pre-installed with this package, but if you wish you can 
-create skins of your own. The skins are simply CSS files that are prepended to 
-the result that Krumo prints. If you want to use images in your CSS (for 
-background, list-style, etc), you have to put &quot;%URL%&quot; in front of the image URL 
-in order hook it up to the skin folder and make the image web-accessible.
-
-Here's an example:
-
- ul.krumo-first {background: url(%url%bg.gif);}
-
-TODO
-------------------------------------------------------------------------------
-You can find the list of stuff that is going to be added to this project in the 
-TODO file from this very package.
-
-CONTRIBUTION
------------------------------------------------------------------------------
-If you download and use and possibly even extend this tool, please let us know. 
-Any feedback, even bad, is always welcome and your suggestions are going to be 
-considered for our next release. Please use our SourceForge page for that:
- 
- http://www.sourceforge.net/projects/krumo/
-
-</pre>
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:23 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+</head>
+<body>
+
+<div align="center"><h1>README</h1></div>
+<pre>
+=============================================================================
+
+                               Krumo
+                            version 0.2.1a
+
+=============================================================================
+
+You probably got this package from...
+http://www.sourceforge.net/projects/krumo/
+
+If there is no licence agreement with this package please download
+a version from the location above. You must read and accept that
+licence to use this software. The file is titled simply LICENSE.
+
+OVERVIEW
+------------------------------------------------------------------------------
+To put it simply, Krumo is a replacement for print_r() and var_dump(). By
+definition Krumo is a debugging tool (for PHP5), which displays structured
+information about any PHP variable.
+
+A lot of developers use print_r() and var_dump() in the means of debugging
+tools. Although they were intended to present human readble information about a
+variable, we can all agree that in general they are not. Krumo is an
+alternative: it does the same job, but it presents the information beautified
+using CSS and DHTML.
+
+EXAMPLES
+------------------------------------------------------------------------------
+Here's a basic example, which will return a report on the array variable passed
+as argument to it:
+
+ krumo(array('a1'=&gt; 'A1', 3, 'red'));
+
+You can dump simultaneously more then one variable - here's another example:
+
+ krumo($_SERVER, $_REQUEST);
+
+You probably saw from the examples above that some of the nodes are expandable,
+so if you want to inspect the nested information, click on them and they will
+expand; if you do not need that information shown simply click again on it to
+collapse it. Here's an example to test this:
+
+ $x1-&gt;x2-&gt;x3-&gt;x4-&gt;x5-&gt;x6-&gt;x7-&gt;x8-&gt;x9 = 'X10';
+ krumo($x1);
+
+The krumo() is the only standalone function from the package, and this is
+because basic dumps about variables (like print_r() or var_dump()) are the most
+common tasks such functionality is used for. The rest of the functionality can
+be called using static calls to the Krumo class. Here are several more examples:
+
+ // print a debug backgrace
+ krumo::backtrace();
+
+ // print all the included(or required) files
+ krumo::includes();
+
+ // print all the included functions
+ krumo::functions();
+
+ // print all the declared classes
+ krumo::classes();
+
+ // print all the defined constants
+ krumo::defines();
+
+ ... and so on, etc.
+
+A full PHPDocumenter API documentation exists both in this package and at the
+project's website.
+
+INSTALL
+------------------------------------------------------------------------------
+Read the INSTALL file.
+
+DOCUMENTATION
+------------------------------------------------------------------------------
+As I said, a full PHPDocumenter API documentation can be found both in this
+package and at the project's website.
+
+SKINS
+------------------------------------------------------------------------------
+There are several skins pre-installed with this package, but if you wish you can
+create skins of your own. The skins are simply CSS files that are prepended to
+the result that Krumo prints. If you want to use images in your CSS (for
+background, list-style, etc), you have to put &quot;%URL%&quot; in front of the image URL
+in order hook it up to the skin folder and make the image web-accessible.
+
+Here's an example:
+
+ ul.krumo-first {background: url(%url%bg.gif);}
+
+TODO
+------------------------------------------------------------------------------
+You can find the list of stuff that is going to be added to this project in the
+TODO file from this very package.
+
+CONTRIBUTION
+-----------------------------------------------------------------------------
+If you download and use and possibly even extend this tool, please let us know.
+Any feedback, even bad, is always welcome and your suggestions are going to be
+considered for our next release. Please use our SourceForge page for that:
+
+ http://www.sourceforge.net/projects/krumo/
+
+</pre>
+<p class="notes" id="credit">
+  Documentation generated on Sun, 02 Dec 2007 09:43:23 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+</p>
+</body>
+</html>

+ 42 - 41
sites/all/modules/contrib/dev/devel/krumo/docs/ric_TODO.html

@@ -1,41 +1,42 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-  <html xmlns="http://www.w3.org/1999/xhtml">
-		<head>
-			<!-- template designed by Marco Von Ballmoos  -->
-			<title></title>
-			<link rel="stylesheet" href="media/stylesheet.css" />
-											</head>
-		<body>
-						
<div align="center"><h1>TODO</h1></div>
-<pre>
-******************************************************************************
-
-                                 Krumo: TODO
-
-******************************************************************************
-
-BUGS
-----------------
- - watch the SourceForge.net Bug Tracker
-
-Features: PHP
-----------------
- - Try to detect anonymous (lambda) functions
- - Try to detect whether an array is indexed or associated
- - Add var_export support for arrays and objects
- - Add JSON support for arrays and objects
- 
-Features: GUI
-----------------
- - Nicer and friendlier skin(s)
- - Add top-level links for collapsing and expanding the whole tree
- - Add object &amp; array -level links for collapsing and expanding all the
- 	nested nodes
- - Print all parent classes for the rendered objects
-</pre>
-	<p class="notes" id="credit">
-		Documentation generated on Sun, 02 Dec 2007 09:43:23 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
-	</p>
-	</body>
-</html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <!-- template designed by Marco Von Ballmoos  -->
+  <title></title>
+  <link rel="stylesheet" href="media/stylesheet.css"/>
+</head>
+<body>
+
+<div align="center"><h1>TODO</h1></div>
+<pre>
+******************************************************************************
+
+                                 Krumo: TODO
+
+******************************************************************************
+
+BUGS
+----------------
+ - watch the SourceForge.net Bug Tracker
+
+Features: PHP
+----------------
+ - Try to detect anonymous (lambda) functions
+ - Try to detect whether an array is indexed or associated
+ - Add var_export support for arrays and objects
+ - Add JSON support for arrays and objects
+
+Features: GUI
+----------------
+ - Nicer and friendlier skin(s)
+ - Add top-level links for collapsing and expanding the whole tree
+ - Add object &amp; array -level links for collapsing and expanding all the
+   nested nodes
+ - Print all parent classes for the rendered objects
+</pre>
+  <p class="notes" id="credit">
+    Documentation generated on Sun, 02 Dec 2007 09:43:23 +0200 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.0a2</a>
+  </p>
+</body>
+</html>

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor