class Preprocessor: Now owns the "predefines" char*; it deletes [] it in its dstor.

clang.cpp: InitializePreprocessor now makes a copy of the contents of PredefinesBuffer and
  passes it to the preprocessor object.
  
clang.cpp: DriverPreprocessorFactory now calls "InitializePreprocessor" instead of this being done in main().

html::HighlightMacros() now takes a PreprocessorFactory, allowing it to conjure up a new
Preprocessor to highlight macros.

class HTMLDiagnostics now takes a PreprocessorFactory* that it can use for html::HighlightMacros().
Updated clients of HTMLDiagnostics to use this new interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49875 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/HTMLDiagnostics.h b/Driver/HTMLDiagnostics.h
index 146c2cc..be72c49 100644
--- a/Driver/HTMLDiagnostics.h
+++ b/Driver/HTMLDiagnostics.h
@@ -17,11 +17,15 @@
 #include <string>
 
 namespace clang {
-  class PathDiagnosticClient;
-  class Preprocessor;
+
+class PathDiagnosticClient;
+class Preprocessor;
+class PreprocessorFactory;
+
   
-  PathDiagnosticClient* CreateHTMLDiagnosticClient(const std::string& prefix,
-                                                   Preprocessor* PP);
+PathDiagnosticClient* CreateHTMLDiagnosticClient(const std::string& prefix,
+                                                 Preprocessor* PP,
+                                                 PreprocessorFactory* PPF);
 }
 
 #endif