#undef BB
#undef BBStr
#undef bb
#undef bbStr
#define BB
#define BBStr( x,y,z ) ;
#define bb
#define bbStr( x,y,z ) ;
#ifndef procNestOn
#undef LB_
#undef LE_
#undef LE_ret
#undef ret
#undef ret_
#undef __
#undef ___
#define LB_( x )
{
#define LE_
}
#define ret_ return ;
#define LE_ret( x ) return( x );
#define ret( x ) return( x );
#define __
#define ___
#endif
/* Module ut/Ut_htmst htm.ic
*****************************************************************************
Authors Gebhard.Greiter@softlab.de
*/
#include for_spu.h
class Ut_htm_static
/* _____________________________________________________________________________ R e u s e . f o r . ALL Functions to scan, check and manipulate HTML text. _____________________________________________________________________________ */ { public: BOOL auch_Umlaute ; protected:
struct  Merke
top . is_inc_for . C++
{ Merke :: Merke(); char * c ; char m ; } ; private: uint chapDepth ; // exported methods: public: Ut_htm_static :: Ut_htm_static ( // ----------------------------------------------------------------------------- ) ; public: void Ut_htm_static :: check_ms_htm /* ----------------------------------------------------------------------------- check nesting of section "<!... > ... <![endif> ----------------------------------------------------------------------------- */ ( char * pos , char * htm ) ; public: uint Ut_htm_static :: tage ( char * x /* ----------------------------------------------------------------------------- ein Datum der Form: JJJJ.MM.TT ----------------------------------------------------------------------------- */ ) ; public: char * Ut_htm_static :: ohne_secNr ( char * nam // ----------------------------------------------------------------------------- ) ; public: void Ut_htm_static :: norm_css ( char * css // ----------------------------------------------------------------------------- ) ; public: uint Ut_htm_static :: unite /* ----------------------------------------------------------------------------- Let dir/pre.htm become the union of all files dir/pre_*.htm ----------------------------------------------------------------------------- */ ( char * dir , char * pre , char * ext ) ; public: int Ut_htm_static :: check_htm_file ( char * htm /* ----------------------------------------------------------------------------- Check whether all referred to files exist Return the number of targets that do not exist. ----------------------------------------------------------------------------- */ ) ; public: int Ut_htm_static :: check_htm_dir /* ----------------------------------------------------------------------------- For each *.htm in the 'tree Check whether all referred to files exist Return the number of targets that do not exist. ----------------------------------------------------------------------------- */ ( char * tree , char * wdes // web descriptor file name or 0, time_t startTime ) ; public: void Ut_htm_static :: check_nesting /* ----------------------------------------------------------------------------- HTML syntax check: tag nesting ----------------------------------------------------------------------------- */ ( char * pos , char * htm ) ; public: void Ut_htm_static :: alias_for /* ----------------------------------------------------------------------------- Let 'fn be a file bringing the Browser to 'dest ----------------------------------------------------------------------------- */ ( char * fn , char * dest ) ; public: void Ut_htm_static :: extract_htm /* ----------------------------------------------------------------------------- search for 'start, then extract the next section <see> ... </see> ----------------------------------------------------------------------------- */ ( FILE * f , char * from , char * start // or 0, char * end // or 0, char * see , uint skip // anz to skip, uint anz // anz to find ) ; public: static BOOL Ut_htm_static :: At_target_p /* ----------------------------------------------------------------------------- return BOOL( this section <p> ... </p> is a target ) ----------------------------------------------------------------------------- */ ( char * c , char * ee ) ; public: BOOL Ut_htm_static :: LeerZeile /* ----------------------------------------------------------------------------- return BOOL( Text is found in front of </p> ) ----------------------------------------------------------------------------- */ ( char * c , char * ee ) ; public: static void Ut_htm_static :: spalten_text /* ----------------------------------------------------------------------------- copy to 'text den Text der Spalte ----------------------------------------------------------------------------- */ ( char * c , char * e1 , char * text // store text found in this buffer, uint mx ) ; public: static char Ut_htm_static :: extract_pText /* ----------------------------------------------------------------------------- extract text in front of </p> ----------------------------------------------------------------------------- */ ( char * c , char * ee , char * text // store text found in this buffer, uint mx // 0 if we only want to see whether there is text, char rem // or 0 ) ; public: static char Ut_htm_static :: get_picName /* ----------------------------------------------------------------------------- assume that the following section <p> ... </p> contains text of the form picNr: picName ----------------------------------------------------------------------------- */ ( char * c , char * ee , char * picName ) ; public: static int Ut_htm_static :: word_to_htm /* ----------------------------------------------------------------------------- for each MS Word file 'x/f.doc or 'x/f.rtf listed in the 'scr file immediately following \n we want to create x/publish/f.htm Create the corresponding *.js script, and then execute it. ----------------------------------------------------------------------------- */ ( char * scr ) ; public: static int Ut_htm_static :: word_to_htm /* ----------------------------------------------------------------------------- for each MS Word file 'x/f.doc or 'x/f.rtf found in the given 'dir tree we want to create x/publish/f.htm Create the corresponding *.js script 'scr and return the number of files to be transformed ----------------------------------------------------------------------------- */ ( char * scr , char * dir ) ; public: static int Ut_htm_static :: word_to_htm /* ----------------------------------------------------------------------------- for each MS Word file 'x/f.doc or 'x/f.rtf found in the given 'dir we want to create x/publish/f.htm + f.txt Add a corresponding commant to the open JScript 'f and return the number of cases added ----------------------------------------------------------------------------- */ ( FILE * f , char * dir ) ; public: char * Ut_htm_static :: skip_secNr ( char * z // ----------------------------------------------------------------------------- ) ; public: BOOL Ut_htm_static :: mae_Umlaut ( uchar c // ----------------------------------------------------------------------------- ) ; public: char * Ut_htm_static :: to_mae // ----------------------------------------------------------------------------- ( char * s , char * skip ) ; public: void Ut_htm_static :: mae_to_msHtm ( char * s // ----------------------------------------------------------------------------- ) ; public: void Ut_htm_static :: escape_mae_to_htm // ----------------------------------------------------------------------------- ( char * mae , char * htm , char * textAnf // or 0 ) ; public: void Ut_htm_static :: escape_msHtm_to_htm ( char * htm // ----------------------------------------------------------------------------- ) ; public: void Ut_htm_static :: escape_msHtm_to_htm // ----------------------------------------------------------------------------- ( char * htm , char * msHtm ) ; public: void Ut_htm_static :: erz_docstyles ( FILE * f // ----------------------------------------------------------------------------- ) ; public: void Ut_htm_static :: erz_j2hstyles // ----------------------------------------------------------------------------- ( FILE * f , char * str ) ; public: void Ut_htm_static :: create_CSS // ----------------------------------------------------------------------------- ( char * dir , char * css ) ; public: void Ut_htm_static :: reduce_secNr // ----------------------------------------------------------------------------- ( char * rsn , char * sn // secNr such as 1001.1002 ) ; public: void Ut_htm_static :: get_hText_Lines /* ----------------------------------------------------------------------------- Schreibe nach 'hds die Menge aller in 'htm gefundener berschriften ----------------------------------------------------------------------------- */ ( char * htm , char * hds ) ; public: void Ut_htm_static :: add_toc /* ----------------------------------------------------------------------------- ensure neu = htm with a table of contents ----------------------------------------------------------------------------- */ ( char * htm , char * neu , Btree toc ) ; public: char * Ut_htm_static :: get_HText /* ----------------------------------------------------------------------------- feed the text between 'such and </h> to 'hText such // 0 implies ( such == "<h" && At( c, "<h" ) ) ----------------------------------------------------------------------------- */ ( char * c , char * hText , char * such // or 0, char * ee // or 0, char * name // buffer, char * page // docNr/fNr, Btree * msoRefs ) ; public: uint Ut_htm_static :: zeichAnz // ----------------------------------------------------------------------------- ( char m , char * str , char * s ) ; public: BOOL Ut_htm_static :: see_char( char c // ----------------------------------------------------------------------------- ) ; public: char * Ut_htm_static :: trim ( char * & e // ----------------------------------------------------------------------------- ) ; public: char * Ut_htm_static :: create_ufSurr // ----------------------------------------------------------------------------- ( char * ufSurr , char * doc ) ; public: char * Ut_htm_static :: clean ( char * sec /* ----------------------------------------------------------------------------- Replace space sequences by one ' ' space ----------------------------------------------------------------------------- */ ) ; public: void Ut_htm_static :: skip_htm_space // ----------------------------------------------------------------------------- ( char * & c ) ; public: char Ut_htm_static :: skip_htm // ----------------------------------------------------------------------------- ( char * & c , char * ee ) ; #include ut_htmst.h3 : cpp } ; #endif