Only in exif: exif.css
diff -up exif.old\exif.info exif\exif.info
--- exif.old\exif.info	Mon Aug 13 17:00:06 2007
+++ exif\exif.info	Tue Feb 26 22:37:26 2008
@@ -1,11 +1,14 @@
 ; $Id: exif.info,v 1.1.2.3 2007/06/18 23:06:42 dww Exp $
 name = Exif
 description = "Display Exif metadata on image nodes."
-dependencies = image
+dependencies[] = image
 package = Image
+core = 6.x
 
 ; Information added by drupal.org packaging script on 2007-08-13
 version = "5.x-1.1"
 project = "exif"
 datestamp = "1187020805"
+
+
 
diff -up exif.old\exif.install exif\exif.install
--- exif.old\exif.install	Mon Aug 13 16:42:44 2007
+++ exif\exif.install	Tue Feb 26 22:36:00 2008
@@ -2,37 +2,56 @@
 // $Id: exif.install,v 1.2.2.1 2007/08/13 15:42:43 davidlesieur Exp $
 
 /**
+ * Implementation of hook_schema().
+ */
+function exif_schema() {
+  $schema = array();
+  $schema['exif'] = array(
+    'description' => 'Stores the EXIF data fields display settings.',
+    'fields' => array(
+      'ifd' => array(
+        'description' => '',
+        'type' => 'int',
+        'not null' => true,
+        'default' => 0,
+        'unsigned' => true
+      ),
+      'tag' => array(
+        'description' => '',
+        'type' => 'int',
+        'not null' => true,
+        'default' => 0,
+        'unsigned' => true
+      ),
+      'status' => array(
+        'description' => '',
+        'type' => 'int',
+        'not null' => true,
+        'default' => 0,
+        'unsigned' => true
+      ),
+      'weight' => array(
+        'description' => '',
+        'type' => 'int',
+        'not null' => true,
+        'default' => 0
+      )
+    ),
+    'primary key' => array('ifd', 'tag')
+  );
+  return $schema;
+} 
+
+/**
  * Implementation of hook_install().
  */
 function exif_install() {
-  switch ($GLOBALS['db_type']) {
-    case 'mysql':
-    case 'mysqli':
-      db_query("CREATE TABLE {exif} (
-          ifd int(10) unsigned NOT NULL default '0',
-          tag int(10) unsigned NOT NULL default '0',
-          status int(10) unsigned NOT NULL default '0',
-          weight int(11) NOT NULL default '0',
-          PRIMARY KEY (ifd, tag)
-        ) /*!40100 DEFAULT CHARACTER SET utf8 */;"
-      );
-      break;
-    case 'pgsql':
-      db_query("CREATE TABLE {exif} (
-          ifd integer NOT NULL default '0',
-          tag integer NOT NULL default '0',
-          status integer NOT NULL default '0',
-          weight integer NOT NULL default '0',
-          PRIMARY KEY (ifd, tag)
-        );"
-      );
-      break;
-  }
+  // Create tables.
+  drupal_install_schema('exif');
 }
-
 /**
  * Implementation of hook_uninstall().
  */
 function exif_uninstall() {
-  db_query('DROP TABLE {exif}');
-}
\ No newline at end of file
+  drupal_uninstall_schema('exif');
+}
diff -up exif.old\exif.module exif\exif.module
--- exif.old\exif.module	Mon Aug 13 16:42:44 2007
+++ exif\exif.module	Tue Feb 26 22:35:34 2008
@@ -6,19 +6,23 @@ include_once drupal_get_path('module', '
 /**
  * Implementation of hook_menu().
  */
-function exif_menu($may_cache) {
+function exif_menu() {
   $items = array();
-
-  if ($may_cache) {
-    $items[] = array(
-      'path' => 'admin/settings/exif',
-      'title' => t('Exif'),
-      'callback' => 'exif_admin_settings',
-      'access' => user_access('administer site configuration'),
-      'description' => t('Configure what Exif tags to display.'),
-    );
-  }
-
+  $items['admin/settings/exif'] = array(
+    'title' => t('Exif'),
+    'page callback' => 'exif_admin_settings',
+    'access callback' => 'user_access',
+    'access arguments' => array('administer site configuration'),
+    'description' => t('Configure what Exif tags to display.'),
+  );
+  $items['exif/%node'] = array(
+    'title' => 'exif',
+    'type' => MENU_CALLBACK,
+    'access callback' => 'node_access',
+    'access arguments' => array('view', 1),
+    'page callback' => 'exif_callback',
+    'page arguments' => array(1)
+  );
   return $items;
 }
 
@@ -100,7 +104,7 @@ function exif_admin_settings() {
   return drupal_get_form('exif_admin_settings_form', $tags);
 }
 
-function exif_admin_settings_form($tags) {
+function exif_admin_settings_form(&$form_state, $tags) {
   foreach ($tags as $tag) {
     $form['tags']["{$tag->ifd}_{$tag->tag}"]['type'] = array(
       '#type' => 'markup',
@@ -135,7 +139,8 @@ function exif_admin_settings_form($tags)
     '#type' => 'submit',
     '#value' => t('Reset to defaults')
   );
-
+  // TODO: test without following line
+  $form['#theme'] = 'exif_admin_settings_form';
   return $form;
 }
 
@@ -275,6 +280,17 @@ function _exif_compare_tags($a, $b) {
   }
 }
 
+function exif_theme() {
+  $theme_hooks = array();
+  $theme_hooks['exif_admin_settings_form'] = array(
+    'arguments' => array('form' => NULL)
+  );
+  $theme_hooks['exif_table'] = array(
+    'arguments' => array('header' => NULL, 'rows' => NULL)
+  );
+  return $theme_hooks;
+}
+
 function theme_exif_table($header, $rows) {
   return theme('table', $header, $rows, array('class' => 'exif'));
 }
@@ -293,4 +309,3 @@ function theme_exif_admin_settings_form(
   $output .= drupal_render($form);
   return $output;
 }
-
Common subdirectories: exif.old\po and exif\po
