From ae4b77d99dca0fc7a727333ac98c600ba517ab89 Mon Sep 17 00:00:00 2001
From: Daniel Dunbar <daniel@zuster.org>
Date: Sat, 13 Feb 2010 18:33:28 +0000
Subject: [PATCH] cindex/Python: Fix cindex-{dump,includes} examples to just
 pass all args directly to Index, instead of requiring the input file to be
 first. This makes the examples behave more like 'clang'.

For example,
  ddunbar@giles:tmp$ echo '#include <string>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c++ - | wc -l
     114
  ddunbar@giles:tmp$ echo '#include <stdio.h>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c - | wc -l
      10

llvm-svn: 96107
---
 clang/bindings/python/examples/cindex/cindex-dump.py |  4 +---
 .../python/examples/cindex/cindex-includes.py        | 12 ++++--------
 2 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/clang/bindings/python/examples/cindex/cindex-dump.py b/clang/bindings/python/examples/cindex/cindex-dump.py
index ace4ae82761e..af7ddab6ea53 100644
--- a/clang/bindings/python/examples/cindex/cindex-dump.py
+++ b/clang/bindings/python/examples/cindex/cindex-dump.py
@@ -74,10 +74,8 @@ def main():
     if len(args) == 0:
         parser.error('invalid number arguments')
 
-    input_path = args.pop(0)
-
     index = Index.create()
-    tu = index.parse(input_path, args)
+    tu = index.parse(None, args)
     if not tu:
         parser.error("unable to load input")
 
diff --git a/clang/bindings/python/examples/cindex/cindex-includes.py b/clang/bindings/python/examples/cindex/cindex-includes.py
index 2220552d0896..17500227a349 100644
--- a/clang/bindings/python/examples/cindex/cindex-includes.py
+++ b/clang/bindings/python/examples/cindex/cindex-includes.py
@@ -18,8 +18,6 @@ def main():
     import sys
     from clang.cindex import Index
 
-    # FIXME: Allow the user to pass command line options to clang so that
-    # we can use -D and -U.
     from optparse import OptionParser, OptionGroup
 
     parser = OptionParser("usage: %prog [options] {filename} [clang-args*]")
@@ -31,17 +29,15 @@ def main():
     # FIXME: Add an output file option
     out = sys.stdout
 
-    input_path = args.pop(0)
-
-
     index = Index.create()
-    tu = index.parse(input_path, args)
+    tu = index.parse(None, args)
     if not tu:
         parser.error("unable to load input")
 
     # A helper function for generating the node name.
     def name(f):
-        return "\"" + f.name + "\""
+        if f:
+            return "\"" + f.name + "\""
 
     # Generate the include graph
     out.write("digraph G {\n")
@@ -52,7 +48,7 @@ def main():
             # actually include anything. This would generate a 1 node graph.
             line += name(i.include)
         else:
-            line += name(i.source) + "->" + name(i.include)
+            line += '%s->%s' % (name(i.source), name(i.include))
         line += "\n";
         out.write(line)
     out.write("}\n")