<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -91,6 +91,59 @@ if ext_config = Configuration.for_if_exist?('extension') then
       end
     end
 
+    desc &quot;List the sqlite api calls that are not implemented&quot;
+    task :todo do
+
+      not_implementing = %w[
+        sqlite3_exec
+        sqlite3_open
+        sqlite3_os_end
+        sqlite3_os_init
+        sqlite3_malloc
+        sqlite3_realloc
+        sqlite3_free
+        sqlite3_get_table
+        sqlite3_free_table
+        sqlite3_key
+        sqlite3_rekey
+        sqlite3_next_stmt
+        sqlite3_release_memory
+        sqlite3_sleep
+        sqlite3_snprintf
+        sqlite3_vmprintf
+        sqlite3_strnicmp
+        sqlite3_test_control
+        sqlite3_unlock_notify
+        sqlite3_vfs_find
+        sqlite3_vfs_register
+        sqlite3_vfs_unregister
+      ]
+
+      sqlite_h = File.join( *%w[ ext amalgalite sqlite3.h ] )
+      api_todo = {}
+      IO.readlines( sqlite_h ).each do |line|
+        if line =~ /\ASQLITE_API/ then
+          if line !~ /SQLITE_DEPRECATED/ and line !~ /SQLITE_EXPERIMENTAL/ then
+            if md = line.match( /(sqlite3_[^(\s]+)\(/ ) then
+              next if not_implementing.include?(md.captures[0])
+              api_todo[md.captures[0]] = true
+            end
+          end
+        end
+      end
+
+      Dir.glob(&quot;ext/amalgalite/amalgalite*.c&quot;).each do |am_file|
+        IO.readlines( am_file ).each do |am_line|
+          if md = am_line.match( /(sqlite3_[^(\s]+)\(/ ) then
+            api_todo.delete( md.captures[0] )
+          end
+        end
+      end
+
+      puts &quot;#{api_todo.keys.size} functions to still implement&quot;
+      puts api_todo.keys.sort.join(&quot;\n&quot;)
+    end
+
     task :clobber do
       ext_config.configs.each do |extension|
         path  = Pathname.new(extension)</diff>
      <filename>tasks/extension.rake</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>2ec5d5110686c739a6df7f53a7a24550aa2b8839</id>
    </parent>
  </parents>
  <author>
    <name>Jeremy Hinegardner</name>
    <email>jeremy@hinegardner.org</email>
  </author>
  <url>http://github.com/copiousfreetime/amalgalite/commit/4004ba5d365962a068595f399e4a2dc067f4bb1d</url>
  <id>4004ba5d365962a068595f399e4a2dc067f4bb1d</id>
  <committed-date>2009-10-27T23:23:05-07:00</committed-date>
  <authored-date>2009-10-27T23:23:05-07:00</authored-date>
  <message>added ext:todo task</message>
  <tree>49c0c6275b352e77f2d9ab0d8bb54671f83258c2</tree>
  <committer>
    <name>Jeremy Hinegardner</name>
    <email>jeremy@hinegardner.org</email>
  </committer>
</commit>
