[include-fixer] Support processing multiple files in one run.

Summary:
Previously, if we pass multiple files or a file pattern (e.g. /path/to/*.cc) to
include-fixer, include-fixer will apply all replacements to the first argument,
which probably causes crashes.

With this patch, include-fixer can process multiple files now.

Vim and Emacs integration are tested manually.

Reviewers: bkramer

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D23266

llvm-svn: 278102
diff --git a/clang-tools-extra/include-fixer/tool/clang-include-fixer.py b/clang-tools-extra/include-fixer/tool/clang-include-fixer.py
index d09b55a..b942cbb 100644
--- a/clang-tools-extra/include-fixer/tool/clang-include-fixer.py
+++ b/clang-tools-extra/include-fixer/tool/clang-include-fixer.py
@@ -149,21 +149,16 @@
     return
 
   try:
-    # If there is only one suggested header, insert it directly.
-    if len(unique_headers) == 1 or maximum_suggested_headers == 1:
-      InsertHeaderToVimBuffer({"QuerySymbolInfos": query_symbol_infos,
-                               "HeaderInfos": header_infos}, text)
-      print "Added #include {0} for {1}.".format(unique_headers[0], symbol)
-      return
+    inserted_header_infos = header_infos
+    if len(unique_headers) > 1:
+      selected = GetUserSelection(
+          "choose a header file for {0}.".format(symbol),
+          unique_headers, maximum_suggested_headers)
+      inserted_header_infos = [
+        header for header in header_infos if header["Header"] == selected]
+    include_fixer_context["HeaderInfos"] = inserted_header_infos
 
-    selected = GetUserSelection("choose a header file for {0}.".format(symbol),
-                                unique_headers, maximum_suggested_headers)
-    selected_header_infos = [
-      header for header in header_infos if header["Header"] == selected]
-
-    # Insert a selected header.
-    InsertHeaderToVimBuffer({"QuerySymbolInfos": query_symbol_infos,
-                             "HeaderInfos": selected_header_infos}, text)
+    InsertHeaderToVimBuffer(include_fixer_context, text)
     print "Added #include {0} for {1}.".format(selected, symbol)
   except Exception as error:
     print >> sys.stderr, error.message