2009-04-30 Marek Habersack * BuildManager.cs: when BuildInner catches a compilation exception, wrap it in HttpException before re-throwing. 2009-04-28 Marek Habersack * AspGenerator.cs: ProcessTag doesn't process a tag which is not server-side and which has declarative expressions embedded. Fixes bug #498637 2009-04-24 Marek Habersack * AspGenerator.cs: ProcessCode should _not_ stop processing the passed code string if the filter's ProcessCodeConstruct returns false. Fixes bug #497775 2009-04-21 Marek Habersack * PageCompiler.cs: implemented new way of setting output cache parameters in the 2.0 profile. The generated code is now the same as on .NET and uses the OutputCacheParameters class to pass settings to InitOutputCache. 2009-04-17 Marek Habersack * AspGenerator.cs: if thead/tbody are parsed as children of a server-side table control, ignore them. Fixes bug #481622 2009-04-16 Marek Habersack * TemplateControlCompiler.cs: using a regexp to check whether an expression is a Bind one. Fixes bug #493639 AssignPropertyFromResources now checks whether the field/property passed to it is decorated with the Localizable custom attribute and whether the resource provider contains an entry for that property. 2009-04-15 Marek Habersack * BuildManager.cs: do not add all assemblies in bin/ when serving a precompiled site. Fixes bug #493873 When serving a precompiled site, check if the bin/ directory contains certain well-known assemblies and load them if present. 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