separate (Build_Release) procedure Generate_Browser_Version_Of_Data_File_For (This_Version : in Full_Name) is -- The_Catalog : Structure.Catalog; -- The_Browser_Markup_File : Io.File_Type; -- procedure Set_Basics (This_Browser_Markup_File : in out Io.File_Type) is begin Io.Put_Line (This_Browser_Markup_File, "~environment(page_offset=0inches)"); Io.Put_Line (This_Browser_Markup_File, "~environment(left_margin=0inches)"); Io.Put_Line (This_Browser_Markup_File, "~setup(header_space_before=1point)"); Io.Put_Line (This_Browser_Markup_File, "~setup(header_space_after=1point)"); Io.Put_Line (This_Browser_Markup_File, "~setup(footer_space_before=1point)"); Io.Put_Line (This_Browser_Markup_File, "~left_heading()"); Io.Put_Line (This_Browser_Markup_File, "~right_heading()"); Io.Put_Line (This_Browser_Markup_File, "~left_footing()"); Io.Put_Line (This_Browser_Markup_File, "~right_footing()"); Io.New_Line (This_Browser_Markup_File); end Set_Basics; -- procedure Set_Wide (This_Browser_Markup_File : in out Io.File_Type) is begin Io.Put_Line (This_Browser_Markup_File, "~begin(verbatim)"); Io.Put_Line (This_Browser_Markup_File, "~environment(right_margin=12.7inches)"); end Set_Wide; -- procedure Set_Normal (This_Browser_Markup_File : in out Io.File_Type) is begin Io.Put_Line (This_Browser_Markup_File, "~end(verbatim)"); Io.Put_Line (This_Browser_Markup_File, "~environment(right_margin=7.5inches)"); end Set_Normal; -- procedure Write_Catalog_Node (This_Catalog : in Structure.Catalog; This_Browser_Markup_File : in out Io.File_Type; Control_Result : out Structure.Traversal_Control) is begin Set_Basics (This_Browser_Markup_File); Set_Wide (This_Browser_Markup_File); Structure.Save_Header (This_Catalog, This_Browser_Markup_File); Set_Normal (This_Browser_Markup_File); Structure.Save_Text (Structure.Description_Of (This_Catalog), This_Browser_Markup_File); Control_Result := Structure.Continue; end Write_Catalog_Node; -- procedure Write_Section_Node (This_Section : in Structure.Section; This_Browser_Markup_File : in out Io.File_Type; Control_Result : out Structure.Traversal_Control) is begin Set_Wide (This_Browser_Markup_File); Structure.Save_Header (This_Section, This_Browser_Markup_File); Set_Normal (This_Browser_Markup_File); Structure.Save_Text (Structure.Description_Of (This_Section), This_Browser_Markup_File); Control_Result := Structure.Continue; end Write_Section_Node; -- procedure Write_Item_Node (This_Item : in Structure.Item; This_Browser_Markup_File : in out Io.File_Type; Control_Result : out Structure.Traversal_Control) is begin Set_Wide (This_Browser_Markup_File); Structure.Save_Header (This_Item, This_Browser_Markup_File); Set_Normal (This_Browser_Markup_File); Structure.Save_Text (Structure.Description_Of (This_Item), This_Browser_Markup_File); Control_Result := Structure.Continue; end Write_Item_Node; -- procedure Finalize (This_Catalog : in Structure.Catalog; This_Browser_Markup_File : in out Io.File_Type) is begin Set_Wide (This_Browser_Markup_File); Structure.Save_Trailer (This_Catalog, This_Browser_Markup_File); Set_Normal (This_Browser_Markup_File); Low_Level_File_Operations.Close (This_Browser_Markup_File); end Finalize; -- procedure Generate_Browser_Markup is new Structure.Traverse (Io.File_Type, Write_Catalog_Node, Write_Section_Node, Write_Item_Node, Finalize); -- begin Log.Put_Line ("Creating markup for browser version of data file"); Log.Put_Line ("Parsing data file"); The_Catalog := Structure_Utilities.Catalog_For (This_Version); Structure.Assert_Is_Good (The_Catalog); Structure_Utilities.Display_Diagnostic (The_Catalog, Response, Display_Warning_Messages => True); Log.Put_Line ("Data file parsed", Profile.Positive_Msg); Log.Put_Line ("Generating markup"); The_Browser_Markup_File := Low_Level_File_Operations.Open_To_Write (Pathnames.Browser_Data_File_Markup_File_For (This_Version)); Generate_Browser_Markup (The_Catalog, The_Browser_Markup_File); Log.Put_Line ("Markup generated", Profile.Positive_Msg); begin Log.Put_Line ("Formatting markup"); Compose (Document => Pathnames.Browser_Data_File_Markup_File_For (This_Version), Device => "Online", Options => "Include => " & Pathnames.Document_Setup_File_For (This_Version), Response => "PROPAGATE,"); Log.Put_Line ("Markup formatted", Profile.Positive_Msg); -- exception when others => Error.Report ("Unable to format markup, quitting", Nested => True); end; begin Log.Put_Line ("Copying formatted file to browser data file"); Library.Copy (From => Pathnames.Browser_Data_File_Online_File_For (This_Version), To => Pathnames.Browser_Data_File_For (This_Version), Response => "PROPAGATE,"); Log.Put_Line ("Browser data file copied", Profile.Positive_Msg); -- exception when others => Error.Report ("Copying failed, quitting", Nested => True); end; Log.Put_Line ("Verifying browser data file"); The_Catalog := Structure.Catalog_From (Pathnames.Browser_Data_File_For (This_Version)); Structure.Assert_Is_Good (The_Catalog); Structure_Utilities.Display_Diagnostic (The_Catalog, Response, Display_Warning_Messages => True); Log.Put_Line ("Browser data file verified", Profile.Positive_Msg); -- exception when Low_Level_File_Operations.Io_Failure => Error.Report ("Unable to create markup file", Nested => True); when Structure.Bad_Element => Structure_Utilities.Display_Diagnostic (The_Catalog, Response, Display_Warning_Messages => True); Error.Report (Error.Nil_Message, Nested => True); when others => raise; -- end Generate_Browser_Version_Of_Data_File_For;