2009-04-07 Marek Habersack * TemplateControlCompiler.cs: GenerateExpressionFromString doesn't assume that the passed member is a property anymore. Fixes bug #492252 2009-04-06 Marek Habersack * BuildManager.cs: make sure that precompiled is not null before using it in GetPrecompiledType. 2009-04-03 Marek Habersack * AspParser.cs: local copy of checksum generated by the tokenizer is made right after parsing is done. * AspGenerator.cs: set tparser.MD5Checksum in Parse instead of in InitParser. Avoids empty checksums in #pragma checksum. 2009-04-02 Marek Habersack * CompilationException.cs: skip warnings in ErrorMessage and ErrorLines * BuildManager.cs: when an error occurs while compiling the requested virtual path, throw the exception, do not attempt to build again. * TemplateControlCompiler.cs: implemented missing converter for the ExpandDepth property. Fixes bug #490860 2009-04-01 Marek Habersack * AssemblyBuilder.cs: CSharpCodePragmaGenerator.ReserveSpace: added the 2 extra chars to pragmaChecksumStaticCount constant (the ones added by Gonzalo below) and removed one NewLine to account for Martin's change below. VBCodePragmaGenerator.ReserveSpace - one newline follows #ExternalSource. VBCodePragmaGenerator.DecorateFile - one newline follows #ExternalSource. 2009-04-01 Martin Baulig * AssemblyBuilder.cs: Don't emit a blank line after the #line as thid'd cause all line numbers to be off by 1. 2009-03-31 Gonzalo Paniagua Javier * AssemblyBuilder.cs: the guid has to be quoted. 2009-03-31 Marek Habersack * All of the below are part of the fix for bug #489687 * ThemeDirectoryCompiler.cs: pass VirtualPath instances to parser constructors. * BuildProvider.cs: associated virtual path is stored internally as an instance of VirtualPath, accessible via new VirtualPathInternal property. * BuildManagerDirectoryBuilder.cs: VirtualPath.IsFake is used to detect fake virtual paths. GetBuildProvider now takes a VirtualPath instead of string for the virtualPath parameter. The passed VirtualPath instance is passed unchanged to BuildProvider. * BuildManager.cs: AssertVirtualPathExists now uses VirtualPath.IsFake to check for fake virtual paths. * ApplicationFileBuildProvider.cs, GenericBuildProvider.cs, MasterPageBuildProvider.cs, PageBuildProvider.cs, ThemeBuildProvider.cs, UserControlBuildProvider.cs, WebHandlerBuildProvider.cs, WebServiceBuildProvider.cs: CreateParser overloads now take a VirtualPath instead of a string for the virtualPath parameter. * ThemeBuildProvider.cs: use new parser constructors which take VirtualPath instances instead of strings. 2009-03-30 Marek Habersack * AspTokenizer.cs: UpdateChecksum - fixed off-by-one bug when processing the checksum buffer. * AssemblyBuilder.cs: introduced a kludge to add #pragma checksum and #pragma lines (or its vb equivalent - #ExternalSource) to code-behind files named in the CodeFile/Src directives while copying them to the dynamic directory for compilation. The kludge works by recognizing the .cs and .vb extensions and wrapping the file contents in the appropriate directives. This is done in this way because the other possible way, using the CodeSnippetCompileUnit, requires the entire file to be read in memory and then passed to CodeDOM. We fall back to this way when the file being copied is neither C# or VB. 2009-03-25 Marek Habersack * AspTokenizer.cs: MD5 checksum calculation happens here. It's done incrementally as characters are read. * AspParser.cs: the MD5 checksum is no longer computed here. Moved to AspTokenizer. After parsing, both the tokenizer and the string reader are disposed of. * AssemblyBuilder.cs: renamed CopyFile to CopyFileWithChecksum, in prepration for future inclusion of checksum and line pragmas in the file being copied. Files are copied chunk by chunk, not by reading the entire contents. 2009-03-23 Zoltan Varga * PageCompiler.cs: Fix the build. 2009-03-23 Marek Habersack * TemplateBuildProvider.cs: add values of the CodeFile and Src page/master/control directives to the list of file dependencies. Extract language also for master/page, not only for controls. * PageCompiler.cs: CreateConstructors now triggers master page build, if the current page is using one. Fixes bug #487857 2009-03-16 Marek Habersack * AspGenerator.cs: when parsing nested tags (includes tags inside client-side javascript script blocks) pass the closing tag up to the containing parser. Instead of parsing the whole plain text contents, plus the two constructs we're interested in from it using regexs. This is necessary as we might be passed JavaScript code and without understanding its syntax we'll confuse the '<' character for the start of a tag. TagParsed now better handles