home *** CD-ROM | disk | FTP | other *** search
/ ftp.rsa.com / 2014.05.ftp.rsa.com.tar / ftp.rsa.com / pub / dsg / public / doxygen / doxygen-1_2_13_20020203-RSA_EXTENSIONS-patch < prev    next >
Text File  |  2014-05-02  |  376KB  |  12,882 lines

  1. Index: VERSION
  2. ===================================================================
  3. RCS file: /usr/local/cvs/tools/doxygen/VERSION,v
  4. retrieving revision 1.1.1.7
  5. retrieving revision 1.2
  6. diff -b -c -b -c -r1.1.1.7 -r1.2
  7. *** VERSION    7 Feb 2002 23:10:02 -0000    1.1.1.7
  8. --- VERSION    9 Feb 2002 13:33:21 -0000    1.2
  9. ***************
  10. *** 1 ****
  11. ! 1.2.13-20020203
  12. --- 1 ----
  13. ! 1.2.13-20020203 (RSA_EXTENSIONS)
  14. Index: build.bigbird
  15. ===================================================================
  16. RCS file: build.bigbird
  17. diff -N build.bigbird
  18. *** /dev/null    1 Jan 1970 00:00:00 -0000
  19. --- build.bigbird    12 Mar 2002 10:52:47 -0000    1.2
  20. ***************
  21. *** 0 ****
  22. --- 1,7 ----
  23. + #!/bin/sh
  24. + #
  25. + # build doxygen on bigbird
  26. + #
  27. + PATH=/opt/gnu/bin:$PATH; export PATH
  28. + ./configure --install ginstall $@
  29. + make
  30. Index: doxygen.dsp
  31. ===================================================================
  32. RCS file: doxygen.dsp
  33. diff -N doxygen.dsp
  34. *** /dev/null    1 Jan 1970 00:00:00 -0000
  35. --- doxygen.dsp    5 Mar 2002 00:08:57 -0000    1.1
  36. ***************
  37. *** 0 ****
  38. --- 1,709 ----
  39. + # Microsoft Developer Studio Project File - Name="doxygen" - Package Owner=<4>
  40. + # Microsoft Developer Studio Generated Build File, Format Version 6.00
  41. + # ** DO NOT EDIT **
  42. + # TARGTYPE "Win32 (x86) External Target" 0x0106
  43. + CFG=doxygen - Win32 Debug
  44. + !MESSAGE This is not a valid makefile. To build this project using NMAKE,
  45. + !MESSAGE use the Export Makefile command and run
  46. + !MESSAGE 
  47. + !MESSAGE NMAKE /f "doxygen.mak".
  48. + !MESSAGE 
  49. + !MESSAGE You can specify a configuration when running NMAKE
  50. + !MESSAGE by defining the macro CFG on the command line. For example:
  51. + !MESSAGE 
  52. + !MESSAGE NMAKE /f "doxygen.mak" CFG="doxygen - Win32 Debug"
  53. + !MESSAGE 
  54. + !MESSAGE Possible choices for configuration are:
  55. + !MESSAGE 
  56. + !MESSAGE "doxygen - Win32 Release" (based on "Win32 (x86) External Target")
  57. + !MESSAGE "doxygen - Win32 Debug" (based on "Win32 (x86) External Target")
  58. + !MESSAGE 
  59. + # Begin Project
  60. + # PROP AllowPerConfigDependencies 0
  61. + # PROP Scc_ProjName ""
  62. + # PROP Scc_LocalPath ""
  63. + !IF  "$(CFG)" == "doxygen - Win32 Release"
  64. + # PROP BASE Use_MFC
  65. + # PROP BASE Use_Debug_Libraries 0
  66. + # PROP BASE Output_Dir "Release"
  67. + # PROP BASE Intermediate_Dir "Release"
  68. + # PROP BASE Cmd_Line "NMAKE /f doxygen.mak"
  69. + # PROP BASE Rebuild_Opt "/a"
  70. + # PROP BASE Target_File "doxygen.exe"
  71. + # PROP BASE Bsc_Name "doxygen.bsc"
  72. + # PROP BASE Target_Dir ""
  73. + # PROP Use_MFC
  74. + # PROP Use_Debug_Libraries 0
  75. + # PROP Output_Dir "Release"
  76. + # PROP Intermediate_Dir "Release"
  77. + # PROP Cmd_Line "make msvc"
  78. + # PROP Rebuild_Opt ""
  79. + # PROP Target_File "bin\doxygen.exe"
  80. + # PROP Bsc_Name ""
  81. + # PROP Target_Dir ""
  82. + !ELSEIF  "$(CFG)" == "doxygen - Win32 Debug"
  83. + # PROP BASE Use_MFC
  84. + # PROP BASE Use_Debug_Libraries 1
  85. + # PROP BASE Output_Dir "Debug"
  86. + # PROP BASE Intermediate_Dir "Debug"
  87. + # PROP BASE Cmd_Line "NMAKE /f doxygen.mak"
  88. + # PROP BASE Rebuild_Opt "/a"
  89. + # PROP BASE Target_File "doxygen.exe"
  90. + # PROP BASE Bsc_Name "doxygen.bsc"
  91. + # PROP BASE Target_Dir ""
  92. + # PROP Use_MFC
  93. + # PROP Use_Debug_Libraries 1
  94. + # PROP Output_Dir "Debug"
  95. + # PROP Intermediate_Dir "Debug"
  96. + # PROP Cmd_Line "make msvc debug"
  97. + # PROP Rebuild_Opt ""
  98. + # PROP Target_File "bin\doxygen.exe"
  99. + # PROP Bsc_Name ""
  100. + # PROP Target_Dir ""
  101. + !ENDIF 
  102. + # Begin Target
  103. + # Name "doxygen - Win32 Release"
  104. + # Name "doxygen - Win32 Debug"
  105. + !IF  "$(CFG)" == "doxygen - Win32 Release"
  106. + !ELSEIF  "$(CFG)" == "doxygen - Win32 Debug"
  107. + !ENDIF 
  108. + # Begin Group "Source Files"
  109. + # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
  110. + # Begin Source File
  111. + SOURCE=.\src\ce_lex.cpp
  112. + # End Source File
  113. + # Begin Source File
  114. + SOURCE=.\src\ce_parse.cpp
  115. + # End Source File
  116. + # Begin Source File
  117. + SOURCE=.\src\classdef.cpp
  118. + # End Source File
  119. + # Begin Source File
  120. + SOURCE=.\src\classlist.cpp
  121. + # End Source File
  122. + # Begin Source File
  123. + SOURCE=.\src\code.cpp
  124. + # End Source File
  125. + # Begin Source File
  126. + SOURCE=.\src\config.cpp
  127. + # End Source File
  128. + # Begin Source File
  129. + SOURCE=.\src\cppvalue.cpp
  130. + # End Source File
  131. + # Begin Source File
  132. + SOURCE=.\src\debug.cpp
  133. + # End Source File
  134. + # Begin Source File
  135. + SOURCE=.\src\declinfo.cpp
  136. + # End Source File
  137. + # Begin Source File
  138. + SOURCE=.\src\defargs.cpp
  139. + # End Source File
  140. + # Begin Source File
  141. + SOURCE=.\src\defgen.cpp
  142. + # End Source File
  143. + # Begin Source File
  144. + SOURCE=.\src\define.cpp
  145. + # End Source File
  146. + # Begin Source File
  147. + SOURCE=.\src\definition.cpp
  148. + # End Source File
  149. + # Begin Source File
  150. + SOURCE=.\src\diagram.cpp
  151. + # End Source File
  152. + # Begin Source File
  153. + SOURCE=.\src\doc.cpp
  154. + # End Source File
  155. + # Begin Source File
  156. + SOURCE=.\src\dot.cpp
  157. + # End Source File
  158. + # Begin Source File
  159. + SOURCE=.\src\doxygen.cpp
  160. + # End Source File
  161. + # Begin Source File
  162. + SOURCE=.\src\doxysearch.cpp
  163. + # End Source File
  164. + # Begin Source File
  165. + SOURCE=.\src\doxytag.cpp
  166. + # End Source File
  167. + # Begin Source File
  168. + SOURCE=.\src\entry.cpp
  169. + # End Source File
  170. + # Begin Source File
  171. + SOURCE=.\src\filedef.cpp
  172. + # End Source File
  173. + # Begin Source File
  174. + SOURCE=.\src\filename.cpp
  175. + # End Source File
  176. + # Begin Source File
  177. + SOURCE=.\src\formula.cpp
  178. + # End Source File
  179. + # Begin Source File
  180. + SOURCE=.\src\ftvhelp.cpp
  181. + # End Source File
  182. + # Begin Source File
  183. + SOURCE=.\src\gifenc.cpp
  184. + # End Source File
  185. + # Begin Source File
  186. + SOURCE=.\src\groupdef.cpp
  187. + # End Source File
  188. + # Begin Source File
  189. + SOURCE=.\src\htmlgen.cpp
  190. + # End Source File
  191. + # Begin Source File
  192. + SOURCE=.\src\htmlhelp.cpp
  193. + # End Source File
  194. + # Begin Source File
  195. + SOURCE=.\src\image.cpp
  196. + # End Source File
  197. + # Begin Source File
  198. + SOURCE=.\src\index.cpp
  199. + # End Source File
  200. + # Begin Source File
  201. + SOURCE=.\src\instdox.cpp
  202. + # End Source File
  203. + # Begin Source File
  204. + SOURCE=.\src\language.cpp
  205. + # End Source File
  206. + # Begin Source File
  207. + SOURCE=.\src\latexgen.cpp
  208. + # End Source File
  209. + # Begin Source File
  210. + SOURCE=.\src\logos.cpp
  211. + # End Source File
  212. + # Begin Source File
  213. + SOURCE=.\src\main.cpp
  214. + # End Source File
  215. + # Begin Source File
  216. + SOURCE=.\src\mangen.cpp
  217. + # End Source File
  218. + # Begin Source File
  219. + SOURCE=.\src\memberdef.cpp
  220. + # End Source File
  221. + # Begin Source File
  222. + SOURCE=.\src\membergroup.cpp
  223. + # End Source File
  224. + # Begin Source File
  225. + SOURCE=.\src\memberlist.cpp
  226. + # End Source File
  227. + # Begin Source File
  228. + SOURCE=.\src\membername.cpp
  229. + # End Source File
  230. + # Begin Source File
  231. + SOURCE=.\src\message.cpp
  232. + # End Source File
  233. + # Begin Source File
  234. + SOURCE=.\src\namespacedef.cpp
  235. + # End Source File
  236. + # Begin Source File
  237. + SOURCE=.\src\outputgen.cpp
  238. + # End Source File
  239. + # Begin Source File
  240. + SOURCE=.\src\outputlist.cpp
  241. + # End Source File
  242. + # Begin Source File
  243. + SOURCE=.\src\packagedef.cpp
  244. + # End Source File
  245. + # Begin Source File
  246. + SOURCE=.\src\pre.cpp
  247. + # End Source File
  248. + # Begin Source File
  249. + SOURCE=.\src\reflist.cpp
  250. + # End Source File
  251. + # Begin Source File
  252. + SOURCE=.\src\rtfgen.cpp
  253. + # End Source File
  254. + # Begin Source File
  255. + SOURCE=.\src\scanner.cpp
  256. + # End Source File
  257. + # Begin Source File
  258. + SOURCE=.\src\searchindex.cpp
  259. + # End Source File
  260. + # Begin Source File
  261. + SOURCE=.\src\suffixtree.cpp
  262. + # End Source File
  263. + # Begin Source File
  264. + SOURCE=.\src\tagreader.cpp
  265. + # End Source File
  266. + # Begin Source File
  267. + SOURCE=.\src\translator.cpp
  268. + # End Source File
  269. + # Begin Source File
  270. + SOURCE=.\src\util.cpp
  271. + # End Source File
  272. + # Begin Source File
  273. + SOURCE=.\src\version.cpp
  274. + # End Source File
  275. + # Begin Source File
  276. + SOURCE=.\src\xmlgen.cpp
  277. + # End Source File
  278. + # End Group
  279. + # Begin Group "Header Files"
  280. + # PROP Default_Filter "h;hpp;hxx;hm;inl"
  281. + # Begin Source File
  282. + SOURCE=.\src\bufstr.h
  283. + # End Source File
  284. + # Begin Source File
  285. + SOURCE=.\src\ce_parse.h
  286. + # End Source File
  287. + # Begin Source File
  288. + SOURCE=.\src\classdef.h
  289. + # End Source File
  290. + # Begin Source File
  291. + SOURCE=.\src\classlist.h
  292. + # End Source File
  293. + # Begin Source File
  294. + SOURCE=.\src\code.h
  295. + # End Source File
  296. + # Begin Source File
  297. + SOURCE=.\src\config.h
  298. + # End Source File
  299. + # Begin Source File
  300. + SOURCE=.\src\constexp.h
  301. + # End Source File
  302. + # Begin Source File
  303. + SOURCE=.\src\cppvalue.h
  304. + # End Source File
  305. + # Begin Source File
  306. + SOURCE=.\src\debug.h
  307. + # End Source File
  308. + # Begin Source File
  309. + SOURCE=.\src\declinfo.h
  310. + # End Source File
  311. + # Begin Source File
  312. + SOURCE=.\src\defargs.h
  313. + # End Source File
  314. + # Begin Source File
  315. + SOURCE=.\src\defgen.h
  316. + # End Source File
  317. + # Begin Source File
  318. + SOURCE=.\src\define.h
  319. + # End Source File
  320. + # Begin Source File
  321. + SOURCE=.\src\definition.h
  322. + # End Source File
  323. + # Begin Source File
  324. + SOURCE=.\src\diagram.h
  325. + # End Source File
  326. + # Begin Source File
  327. + SOURCE=.\src\doc.h
  328. + # End Source File
  329. + # Begin Source File
  330. + SOURCE=.\src\dot.h
  331. + # End Source File
  332. + # Begin Source File
  333. + SOURCE=.\src\doxygen.h
  334. + # End Source File
  335. + # Begin Source File
  336. + SOURCE=.\src\entry.h
  337. + # End Source File
  338. + # Begin Source File
  339. + SOURCE=.\src\example.h
  340. + # End Source File
  341. + # Begin Source File
  342. + SOURCE=.\src\filedef.h
  343. + # End Source File
  344. + # Begin Source File
  345. + SOURCE=.\src\filename.h
  346. + # End Source File
  347. + # Begin Source File
  348. + SOURCE=.\src\formula.h
  349. + # End Source File
  350. + # Begin Source File
  351. + SOURCE=.\src\ftvhelp.h
  352. + # End Source File
  353. + # Begin Source File
  354. + SOURCE=.\src\gifenc.h
  355. + # End Source File
  356. + # Begin Source File
  357. + SOURCE=.\src\groupdef.h
  358. + # End Source File
  359. + # Begin Source File
  360. + SOURCE=.\src\htmlgen.h
  361. + # End Source File
  362. + # Begin Source File
  363. + SOURCE=.\src\htmlhelp.h
  364. + # End Source File
  365. + # Begin Source File
  366. + SOURCE=.\src\image.h
  367. + # End Source File
  368. + # Begin Source File
  369. + SOURCE=.\src\index.h
  370. + # End Source File
  371. + # Begin Source File
  372. + SOURCE=.\src\instdox.h
  373. + # End Source File
  374. + # Begin Source File
  375. + SOURCE=.\src\lang_cfg.h
  376. + # End Source File
  377. + # Begin Source File
  378. + SOURCE=.\src\language.h
  379. + # End Source File
  380. + # Begin Source File
  381. + SOURCE=.\src\latexgen.h
  382. + # End Source File
  383. + # Begin Source File
  384. + SOURCE=.\src\logos.h
  385. + # End Source File
  386. + # Begin Source File
  387. + SOURCE=.\src\mangen.h
  388. + # End Source File
  389. + # Begin Source File
  390. + SOURCE=.\src\memberdef.h
  391. + # End Source File
  392. + # Begin Source File
  393. + SOURCE=.\src\membergroup.h
  394. + # End Source File
  395. + # Begin Source File
  396. + SOURCE=.\src\memberlist.h
  397. + # End Source File
  398. + # Begin Source File
  399. + SOURCE=.\src\membername.h
  400. + # End Source File
  401. + # Begin Source File
  402. + SOURCE=.\src\message.h
  403. + # End Source File
  404. + # Begin Source File
  405. + SOURCE=.\src\namespacedef.h
  406. + # End Source File
  407. + # Begin Source File
  408. + SOURCE=.\src\outputgen.h
  409. + # End Source File
  410. + # Begin Source File
  411. + SOURCE=.\src\outputlist.h
  412. + # End Source File
  413. + # Begin Source File
  414. + SOURCE=.\src\packagedef.h
  415. + # End Source File
  416. + # Begin Source File
  417. + SOURCE=.\src\page.h
  418. + # End Source File
  419. + # Begin Source File
  420. + SOURCE=.\src\pre.h
  421. + # End Source File
  422. + # Begin Source File
  423. + SOURCE=.\src\qtbc.h
  424. + # End Source File
  425. + # Begin Source File
  426. + SOURCE=.\src\reflist.h
  427. + # End Source File
  428. + # Begin Source File
  429. + SOURCE=.\src\rtfgen.h
  430. + # End Source File
  431. + # Begin Source File
  432. + SOURCE=.\src\scanner.h
  433. + # End Source File
  434. + # Begin Source File
  435. + SOURCE=.\src\searchindex.h
  436. + # End Source File
  437. + # Begin Source File
  438. + SOURCE=.\src\section.h
  439. + # End Source File
  440. + # Begin Source File
  441. + SOURCE=.\src\sortdict.h
  442. + # End Source File
  443. + # Begin Source File
  444. + SOURCE=.\src\suffixtree.h
  445. + # End Source File
  446. + # Begin Source File
  447. + SOURCE=.\src\tagreader.h
  448. + # End Source File
  449. + # Begin Source File
  450. + SOURCE=.\src\translator.h
  451. + # End Source File
  452. + # Begin Source File
  453. + SOURCE=.\src\translator_adapter.h
  454. + # End Source File
  455. + # Begin Source File
  456. + SOURCE=.\src\translator_br.h
  457. + # End Source File
  458. + # Begin Source File
  459. + SOURCE=.\src\translator_cn.h
  460. + # End Source File
  461. + # Begin Source File
  462. + SOURCE=.\src\translator_cz.h
  463. + # End Source File
  464. + # Begin Source File
  465. + SOURCE=.\src\translator_de.h
  466. + # End Source File
  467. + # Begin Source File
  468. + SOURCE=.\src\translator_dk.h
  469. + # End Source File
  470. + # Begin Source File
  471. + SOURCE=.\src\translator_en.h
  472. + # End Source File
  473. + # Begin Source File
  474. + SOURCE=.\src\translator_es.h
  475. + # End Source File
  476. + # Begin Source File
  477. + SOURCE=.\src\translator_fi.h
  478. + # End Source File
  479. + # Begin Source File
  480. + SOURCE=.\src\translator_fr.h
  481. + # End Source File
  482. + # Begin Source File
  483. + SOURCE=.\src\translator_gr.h
  484. + # End Source File
  485. + # Begin Source File
  486. + SOURCE=.\src\translator_hr.h
  487. + # End Source File
  488. + # Begin Source File
  489. + SOURCE=.\src\translator_hu.h
  490. + # End Source File
  491. + # Begin Source File
  492. + SOURCE=.\src\translator_it.h
  493. + # End Source File
  494. + # Begin Source File
  495. + SOURCE=.\src\translator_jp.h
  496. + # End Source File
  497. + # Begin Source File
  498. + SOURCE=.\src\translator_kr.h
  499. + # End Source File
  500. + # Begin Source File
  501. + SOURCE=.\src\translator_nl.h
  502. + # End Source File
  503. + # Begin Source File
  504. + SOURCE=.\src\translator_no.h
  505. + # End Source File
  506. + # Begin Source File
  507. + SOURCE=.\src\translator_pl.h
  508. + # End Source File
  509. + # Begin Source File
  510. + SOURCE=.\src\translator_pt.h
  511. + # End Source File
  512. + # Begin Source File
  513. + SOURCE=.\src\translator_ro.h
  514. + # End Source File
  515. + # Begin Source File
  516. + SOURCE=.\src\translator_ru.h
  517. + # End Source File
  518. + # Begin Source File
  519. + SOURCE=.\src\translator_se.h
  520. + # End Source File
  521. + # Begin Source File
  522. + SOURCE=.\src\translator_si.h
  523. + # End Source File
  524. + # Begin Source File
  525. + SOURCE=.\src\translator_sk.h
  526. + # End Source File
  527. + # Begin Source File
  528. + SOURCE=.\src\translator_ua.h
  529. + # End Source File
  530. + # Begin Source File
  531. + SOURCE=.\src\treeview.h
  532. + # End Source File
  533. + # Begin Source File
  534. + SOURCE=.\src\unistd.h
  535. + # End Source File
  536. + # Begin Source File
  537. + SOURCE=.\src\util.h
  538. + # End Source File
  539. + # Begin Source File
  540. + SOURCE=.\src\version.h
  541. + # End Source File
  542. + # Begin Source File
  543. + SOURCE=.\src\xmlgen.h
  544. + # End Source File
  545. + # End Group
  546. + # Begin Group "Resource Files"
  547. + # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
  548. + # End Group
  549. + # Begin Source File
  550. + SOURCE=.\src\code.l
  551. + # End Source File
  552. + # Begin Source File
  553. + SOURCE=.\src\config.l
  554. + # End Source File
  555. + # Begin Source File
  556. + SOURCE=.\src\constexp.l
  557. + # End Source File
  558. + # Begin Source File
  559. + SOURCE=.\src\declinfo.l
  560. + # End Source File
  561. + # Begin Source File
  562. + SOURCE=.\src\defargs.l
  563. + # End Source File
  564. + # Begin Source File
  565. + SOURCE=.\src\doc.l
  566. + # End Source File
  567. + # Begin Source File
  568. + SOURCE=.\src\doxytag.l
  569. + # End Source File
  570. + # Begin Source File
  571. + SOURCE=.\src\pre.l
  572. + # End Source File
  573. + # Begin Source File
  574. + SOURCE=.\src\scanner.l
  575. + # End Source File
  576. + # End Target
  577. + # End Project
  578. Index: doxygen.dsw
  579. ===================================================================
  580. RCS file: doxygen.dsw
  581. diff -N doxygen.dsw
  582. *** /dev/null    1 Jan 1970 00:00:00 -0000
  583. --- doxygen.dsw    5 Mar 2002 00:08:57 -0000    1.1
  584. ***************
  585. *** 0 ****
  586. --- 1,29 ----
  587. + Microsoft Developer Studio Workspace File, Format Version 6.00
  588. + # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
  589. + ###############################################################################
  590. + Project: "doxygen"=.\doxygen.dsp - Package Owner=<4>
  591. + Package=<5>
  592. + {{{
  593. + }}}
  594. + Package=<4>
  595. + {{{
  596. + }}}
  597. + ###############################################################################
  598. + Global:
  599. + Package=<5>
  600. + {{{
  601. + }}}
  602. + Package=<3>
  603. + {{{
  604. + }}}
  605. + ###############################################################################
  606. Index: addon/doxywizard/Makefile.doxywizard
  607. ===================================================================
  608. RCS file: addon/doxywizard/Makefile.doxywizard
  609. diff -N addon/doxywizard/Makefile.doxywizard
  610. *** /dev/null    1 Jan 1970 00:00:00 -0000
  611. --- addon/doxywizard/Makefile.doxywizard    20 Nov 2001 05:17:17 -0000    1.1.1.2
  612. ***************
  613. *** 0 ****
  614. --- 1,202 ----
  615. + #############################################################################
  616. + # Makefile for building ../../bin/doxywizard
  617. + # Generated by tmake at 18:58, 2001/11/18
  618. + #     Project: doxywizard
  619. + #    Template: app.t
  620. + #############################################################################
  621. + ####### Compiler, tools and options
  622. + CC    =    gcc
  623. + CXX    =    g++
  624. + CFLAGS    =    -pipe -Wall -W -fno-exceptions -O2 -DNO_DEBUG
  625. + CXXFLAGS=    -pipe -Wall -W -fno-exceptions -O2 -DNO_DEBUG
  626. + INCPATH    =    -I../../src -I$(QTDIR)/include
  627. + LINK    =    g++
  628. + LFLAGS    =    
  629. + LIBS    =    -L../../lib -ldoxycfg -L$(QTDIR)/lib -lqt -L/usr/X11R6/lib -lXext -lX11 -lm
  630. + MOC    =    moc
  631. + TAR    =    tar -cf
  632. + GZIP    =    gzip -9f
  633. + ####### Files
  634. + HEADERS =    doxywizard.h \
  635. +         version.h \
  636. +         pagewidget.h \
  637. +         inputstring.h \
  638. +         inputbool.h \
  639. +         inputstrlist.h \
  640. +         inputint.h \
  641. +         pixmaps.h
  642. + SOURCES =    doxywizard.cpp \
  643. +         version.cpp \
  644. +         pagewidget.cpp \
  645. +         inputstring.cpp \
  646. +         inputbool.cpp \
  647. +         inputstrlist.cpp \
  648. +         inputint.cpp \
  649. +         pixmaps.cpp
  650. + OBJECTS =    obj/doxywizard.o \
  651. +         obj/version.o \
  652. +         obj/pagewidget.o \
  653. +         obj/inputstring.o \
  654. +         obj/inputbool.o \
  655. +         obj/inputstrlist.o \
  656. +         obj/inputint.o \
  657. +         obj/pixmaps.o
  658. + SRCMOC    =    moc/moc_doxywizard.cpp \
  659. +         moc/moc_pagewidget.cpp \
  660. +         moc/moc_inputstring.cpp \
  661. +         moc/moc_inputbool.cpp \
  662. +         moc/moc_inputstrlist.cpp \
  663. +         moc/moc_inputint.cpp
  664. + OBJMOC    =    obj/moc_doxywizard.o \
  665. +         obj/moc_pagewidget.o \
  666. +         obj/moc_inputstring.o \
  667. +         obj/moc_inputbool.o \
  668. +         obj/moc_inputstrlist.o \
  669. +         obj/moc_inputint.o
  670. + DIST    =    
  671. + TARGET    =    ../../bin/doxywizard
  672. + ####### Implicit rules
  673. + .SUFFIXES: .cpp .cxx .cc .C .c
  674. + .cpp.o:
  675. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  676. + .cxx.o:
  677. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  678. + .cc.o:
  679. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  680. + .C.o:
  681. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  682. + .c.o:
  683. +     $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
  684. + ####### Build rules
  685. + all: $(TARGET)
  686. + $(TARGET): $(OBJECTS) $(OBJMOC) 
  687. +     $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
  688. + moc: $(SRCMOC)
  689. + tmake:
  690. +     tmake doxywizard.pro
  691. + dist:
  692. +     $(TAR) doxywizard.tar doxywizard.pro $(SOURCES) $(HEADERS) $(DIST)
  693. +     $(GZIP) doxywizard.tar
  694. + clean:
  695. +     -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
  696. +     -rm -f *~ core
  697. + ####### Compile
  698. + obj/doxywizard.o: doxywizard.cpp \
  699. +         doxywizard.h \
  700. +         pagewidget.h \
  701. +         inputbool.h \
  702. +         input.h \
  703. +         inputstring.h \
  704. +         qtbc.h \
  705. +         inputstrlist.h \
  706. +         inputint.h \
  707. +         version.h \
  708. +         pixmaps.h
  709. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/doxywizard.o doxywizard.cpp
  710. + obj/version.o: version.cpp
  711. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/version.o version.cpp
  712. + obj/pagewidget.o: pagewidget.cpp \
  713. +         pagewidget.h
  714. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/pagewidget.o pagewidget.cpp
  715. + obj/inputstring.o: inputstring.cpp \
  716. +         inputstring.h \
  717. +         qtbc.h \
  718. +         input.h \
  719. +         pagewidget.h \
  720. +         pixmaps.h
  721. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputstring.o inputstring.cpp
  722. + obj/inputbool.o: inputbool.cpp \
  723. +         inputbool.h \
  724. +         input.h \
  725. +         pagewidget.h
  726. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputbool.o inputbool.cpp
  727. + obj/inputstrlist.o: inputstrlist.cpp \
  728. +         inputstrlist.h \
  729. +         input.h \
  730. +         pagewidget.h \
  731. +         pixmaps.h
  732. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputstrlist.o inputstrlist.cpp
  733. + obj/inputint.o: inputint.cpp \
  734. +         inputint.h \
  735. +         input.h \
  736. +         pagewidget.h
  737. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputint.o inputint.cpp
  738. + obj/pixmaps.o: pixmaps.cpp \
  739. +         pixmaps.h
  740. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/pixmaps.o pixmaps.cpp
  741. + obj/moc_doxywizard.o: moc/moc_doxywizard.cpp \
  742. +         doxywizard.h
  743. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_doxywizard.o moc/moc_doxywizard.cpp
  744. + obj/moc_pagewidget.o: moc/moc_pagewidget.cpp \
  745. +         pagewidget.h
  746. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_pagewidget.o moc/moc_pagewidget.cpp
  747. + obj/moc_inputstring.o: moc/moc_inputstring.cpp \
  748. +         inputstring.h \
  749. +         qtbc.h \
  750. +         input.h
  751. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputstring.o moc/moc_inputstring.cpp
  752. + obj/moc_inputbool.o: moc/moc_inputbool.cpp \
  753. +         inputbool.h \
  754. +         input.h
  755. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputbool.o moc/moc_inputbool.cpp
  756. + obj/moc_inputstrlist.o: moc/moc_inputstrlist.cpp \
  757. +         inputstrlist.h \
  758. +         input.h
  759. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputstrlist.o moc/moc_inputstrlist.cpp
  760. + obj/moc_inputint.o: moc/moc_inputint.cpp \
  761. +         inputint.h \
  762. +         input.h
  763. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputint.o moc/moc_inputint.cpp
  764. + moc/moc_doxywizard.cpp: doxywizard.h
  765. +     $(MOC) doxywizard.h -o moc/moc_doxywizard.cpp
  766. + moc/moc_pagewidget.cpp: pagewidget.h
  767. +     $(MOC) pagewidget.h -o moc/moc_pagewidget.cpp
  768. + moc/moc_inputstring.cpp: inputstring.h
  769. +     $(MOC) inputstring.h -o moc/moc_inputstring.cpp
  770. + moc/moc_inputbool.cpp: inputbool.h
  771. +     $(MOC) inputbool.h -o moc/moc_inputbool.cpp
  772. + moc/moc_inputstrlist.cpp: inputstrlist.h
  773. +     $(MOC) inputstrlist.h -o moc/moc_inputstrlist.cpp
  774. + moc/moc_inputint.cpp: inputint.h
  775. +     $(MOC) inputint.h -o moc/moc_inputint.cpp
  776. Index: addon/doxywizard/doxywizard.pro.in
  777. ===================================================================
  778. RCS file: /usr/local/cvs/tools/doxygen/addon/doxywizard/doxywizard.pro.in,v
  779. retrieving revision 1.1.1.7
  780. retrieving revision 1.3
  781. diff -b -c -b -c -r1.1.1.7 -r1.3
  782. *** addon/doxywizard/doxywizard.pro.in    7 Feb 2002 23:10:03 -0000    1.1.1.7
  783. --- addon/doxywizard/doxywizard.pro.in    7 Feb 2002 23:29:19 -0000    1.3
  784. ***************
  785. *** 50,55 ****
  786. --- 50,57 ----
  787.   
  788.   # extra C++ compiler options
  789.   INCLUDEPATH             += ../../src
  790. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  791. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  792.   win32:TMAKE_CXXFLAGS    += -DQT_DLL
  793.   win32:INCLUDEPATH       += .
  794.   
  795. Index: addon/xmlparse/Doxyfile
  796. ===================================================================
  797. RCS file: addon/xmlparse/Doxyfile
  798. diff -N addon/xmlparse/Doxyfile
  799. *** /dev/null    1 Jan 1970 00:00:00 -0000
  800. --- addon/xmlparse/Doxyfile    30 Sep 2001 22:25:24 -0000    1.1.1.2
  801. ***************
  802. *** 0 ****
  803. --- 1,161 ----
  804. + # Doxyfile 1.2.8-20010715
  805. + #---------------------------------------------------------------------------
  806. + # General configuration options
  807. + #---------------------------------------------------------------------------
  808. + PROJECT_NAME           = xmlparse
  809. + PROJECT_NUMBER         = 
  810. + OUTPUT_DIRECTORY       = doc
  811. + OUTPUT_LANGUAGE        = English
  812. + EXTRACT_ALL            = YES
  813. + EXTRACT_PRIVATE        = YES
  814. + EXTRACT_STATIC         = YES
  815. + HIDE_UNDOC_MEMBERS     = NO
  816. + HIDE_UNDOC_CLASSES     = NO
  817. + BRIEF_MEMBER_DESC      = YES
  818. + REPEAT_BRIEF           = YES
  819. + ALWAYS_DETAILED_SEC    = NO
  820. + FULL_PATH_NAMES        = NO
  821. + STRIP_FROM_PATH        = 
  822. + INTERNAL_DOCS          = NO
  823. + CLASS_DIAGRAMS         = YES
  824. + SOURCE_BROWSER         = YES
  825. + INLINE_SOURCES         = NO
  826. + STRIP_CODE_COMMENTS    = YES
  827. + CASE_SENSE_NAMES       = YES
  828. + SHORT_NAMES            = NO
  829. + HIDE_SCOPE_NAMES       = NO
  830. + VERBATIM_HEADERS       = YES
  831. + SHOW_INCLUDE_FILES     = YES
  832. + JAVADOC_AUTOBRIEF      = NO
  833. + INHERIT_DOCS           = YES
  834. + INLINE_INFO            = YES
  835. + SORT_MEMBER_DOCS       = YES
  836. + DISTRIBUTE_GROUP_DOC   = NO
  837. + TAB_SIZE               = 8
  838. + ENABLED_SECTIONS       = 
  839. + GENERATE_TODOLIST      = YES
  840. + GENERATE_TESTLIST      = YES
  841. + GENERATE_BUGLIST       = YES
  842. + ALIASES                = 
  843. + MAX_INITIALIZER_LINES  = 30
  844. + OPTIMIZE_OUTPUT_FOR_C  = NO
  845. + SHOW_USED_FILES        = YES
  846. + #---------------------------------------------------------------------------
  847. + # configuration options related to warning and progress messages
  848. + #---------------------------------------------------------------------------
  849. + QUIET                  = NO
  850. + WARNINGS               = YES
  851. + WARN_IF_UNDOCUMENTED   = YES
  852. + WARN_FORMAT            = 
  853. + WARN_LOGFILE           = 
  854. + #---------------------------------------------------------------------------
  855. + # configuration options related to the input files
  856. + #---------------------------------------------------------------------------
  857. + INPUT                  = .
  858. + FILE_PATTERNS          = *.h *.cpp
  859. + RECURSIVE              = NO
  860. + EXCLUDE                = 
  861. + EXCLUDE_PATTERNS       = 
  862. + EXAMPLE_PATH           = 
  863. + EXAMPLE_PATTERNS       = 
  864. + IMAGE_PATH             = 
  865. + INPUT_FILTER           = 
  866. + FILTER_SOURCE_FILES    = NO
  867. + #---------------------------------------------------------------------------
  868. + # configuration options related to the alphabetical class index
  869. + #---------------------------------------------------------------------------
  870. + ALPHABETICAL_INDEX     = NO
  871. + COLS_IN_ALPHA_INDEX    = 5
  872. + IGNORE_PREFIX          = 
  873. + #---------------------------------------------------------------------------
  874. + # configuration options related to the HTML output
  875. + #---------------------------------------------------------------------------
  876. + GENERATE_HTML          = NO
  877. + HTML_OUTPUT            = 
  878. + HTML_HEADER            = 
  879. + HTML_FOOTER            = 
  880. + HTML_STYLESHEET        = 
  881. + HTML_ALIGN_MEMBERS     = YES
  882. + GENERATE_HTMLHELP      = NO
  883. + GENERATE_CHI           = NO
  884. + BINARY_TOC             = NO
  885. + TOC_EXPAND             = NO
  886. + DISABLE_INDEX          = NO
  887. + ENUM_VALUES_PER_LINE   = 4
  888. + GENERATE_TREEVIEW      = NO
  889. + TREEVIEW_WIDTH         = 250
  890. + #---------------------------------------------------------------------------
  891. + # configuration options related to the LaTeX output
  892. + #---------------------------------------------------------------------------
  893. + GENERATE_LATEX         = NO
  894. + LATEX_OUTPUT           = 
  895. + COMPACT_LATEX          = NO
  896. + PAPER_TYPE             = a4wide
  897. + EXTRA_PACKAGES         = 
  898. + LATEX_HEADER           = 
  899. + PDF_HYPERLINKS         = NO
  900. + USE_PDFLATEX           = NO
  901. + LATEX_BATCHMODE        = NO
  902. + #---------------------------------------------------------------------------
  903. + # configuration options related to the RTF output
  904. + #---------------------------------------------------------------------------
  905. + GENERATE_RTF           = NO
  906. + RTF_OUTPUT             = 
  907. + COMPACT_RTF            = NO
  908. + RTF_HYPERLINKS         = NO
  909. + RTF_STYLESHEET_FILE    = 
  910. + RTF_EXTENSIONS_FILE    = 
  911. + #---------------------------------------------------------------------------
  912. + # configuration options related to the man page output
  913. + #---------------------------------------------------------------------------
  914. + GENERATE_MAN           = NO
  915. + MAN_OUTPUT             = 
  916. + MAN_EXTENSION          = 
  917. + MAN_LINKS              = NO
  918. + #---------------------------------------------------------------------------
  919. + # configuration options related to the XML output
  920. + #---------------------------------------------------------------------------
  921. + GENERATE_XML           = YES
  922. + #---------------------------------------------------------------------------
  923. + # Configuration options related to the preprocessor   
  924. + #---------------------------------------------------------------------------
  925. + ENABLE_PREPROCESSING   = YES
  926. + MACRO_EXPANSION        = NO
  927. + EXPAND_ONLY_PREDEF     = NO
  928. + SEARCH_INCLUDES        = YES
  929. + INCLUDE_PATH           = 
  930. + INCLUDE_FILE_PATTERNS  = 
  931. + PREDEFINED             = 
  932. + EXPAND_AS_DEFINED      = 
  933. + #---------------------------------------------------------------------------
  934. + # Configuration::addtions related to external references   
  935. + #---------------------------------------------------------------------------
  936. + TAGFILES               = ../../qtools_docs/qtools.tag=../../../../qtools_docs/html
  937. + GENERATE_TAGFILE       = 
  938. + ALLEXTERNALS           = NO
  939. + PERL_PATH              = 
  940. + #---------------------------------------------------------------------------
  941. + # Configuration options related to the dot tool   
  942. + #---------------------------------------------------------------------------
  943. + HAVE_DOT               = YES
  944. + CLASS_GRAPH            = YES
  945. + COLLABORATION_GRAPH    = YES
  946. + INCLUDE_GRAPH          = YES
  947. + INCLUDED_BY_GRAPH      = YES
  948. + GRAPHICAL_HIERARCHY    = YES
  949. + DOT_PATH               = 
  950. + MAX_DOT_GRAPH_WIDTH    = 1280
  951. + MAX_DOT_GRAPH_HEIGHT   = 1024
  952. + GENERATE_LEGEND        = YES
  953. + DOT_CLEANUP            = YES
  954. + #---------------------------------------------------------------------------
  955. + # Configuration::addtions related to the search engine   
  956. + #---------------------------------------------------------------------------
  957. + SEARCHENGINE           = NO
  958. + CGI_NAME               = 
  959. + CGI_URL                = 
  960. + DOC_URL                = 
  961. + DOC_ABSPATH            = 
  962. + BIN_ABSPATH            = 
  963. + EXT_DOC_PATHS          = 
  964. Index: addon/xmlparse/Makefile
  965. ===================================================================
  966. RCS file: addon/xmlparse/Makefile
  967. diff -N addon/xmlparse/Makefile
  968. *** /dev/null    1 Jan 1970 00:00:00 -0000
  969. --- addon/xmlparse/Makefile    16 Dec 2001 23:18:58 -0000    1.2
  970. ***************
  971. *** 0 ****
  972. --- 1,34 ----
  973. + #
  974. + # This file was generated from Makefile.in on Wed Nov 21 10:56:11  2001
  975. + #
  976. + DOXYGEN   = 
  977. + TMAKEPATH = /tmake/lib/gnu-g++
  978. + ENV       = env TMAKEPATH=$(TMAKEPATH)
  979. + TMAKE     = /tmake/bin/tmake
  980. + MAKE      = /usr/bin/make
  981. + PERL      = /usr/bin/perl
  982. + RM        = rm -f
  983. + CP        = cp
  984. + VERSION   = 1.2.12
  985. + INSTALL   = /usr
  986. + INSTTOOL  = /usr/bin/install
  987. + DOXYDOCS  = ..
  988. + DOCDIR    = /usr/share/doc/packages/doxygen
  989. + HAVE_DOT  = /USR/LOCAL/BIN/dot
  990. + all clean depend: Makefile.xmlparse 
  991. +     $(MAKE) -f Makefile.xmlparse $@
  992. + distclean: clean
  993. +     $(RM) -rf Makefile.xmlparse xmlparse.pro Makefile obj
  994. + tmake:
  995. +     $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
  996. + Makefile.xmlparse: xmlparse.pro
  997. +     $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
  998. + install:
  999. +     $(INSTTOOL) -d $(INSTALL)/bin    
  1000. +     $(INSTTOOL) -m 755 ../../bin/xmlparse $(INSTALL)/bin    
  1001. Index: addon/xmlparse/Makefile.in
  1002. ===================================================================
  1003. RCS file: addon/xmlparse/Makefile.in
  1004. diff -N addon/xmlparse/Makefile.in
  1005. *** /dev/null    1 Jan 1970 00:00:00 -0000
  1006. --- addon/xmlparse/Makefile.in    10 Sep 2001 06:22:23 -0000    1.1.1.1
  1007. ***************
  1008. *** 0 ****
  1009. --- 1,16 ----
  1010. + all clean depend: Makefile.xmlparse 
  1011. +     $(MAKE) -f Makefile.xmlparse $@
  1012. + distclean: clean
  1013. +     $(RM) -rf Makefile.xmlparse xmlparse.pro Makefile obj
  1014. + tmake:
  1015. +     $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
  1016. + Makefile.xmlparse: xmlparse.pro
  1017. +     $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
  1018. + install:
  1019. +     $(INSTTOOL) -d $(INSTALL)/bin    
  1020. +     $(INSTTOOL) -m 755 ../../bin/xmlparse $(INSTALL)/bin    
  1021. Index: addon/xmlparse/Makefile.xmlparse
  1022. ===================================================================
  1023. RCS file: addon/xmlparse/Makefile.xmlparse
  1024. diff -N addon/xmlparse/Makefile.xmlparse
  1025. *** /dev/null    1 Jan 1970 00:00:00 -0000
  1026. --- addon/xmlparse/Makefile.xmlparse    20 Nov 2001 05:17:19 -0000    1.1.1.2
  1027. ***************
  1028. *** 0 ****
  1029. --- 1,147 ----
  1030. + #############################################################################
  1031. + # Makefile for building xmlparse
  1032. + # Generated by tmake at 18:58, 2001/11/18
  1033. + #     Project: xmlparse
  1034. + #    Template: app.t
  1035. + #############################################################################
  1036. + ####### Compiler, tools and options
  1037. + CC    =    gcc
  1038. + CXX    =    g++
  1039. + CFLAGS    =    -pipe -Wall -W -fno-exceptions
  1040. + CXXFLAGS=    -pipe -Wall -W -fno-exceptions
  1041. + INCPATH    =    -I../../qtools -I../../src
  1042. + LINK    =    g++
  1043. + LFLAGS    =    
  1044. + LIBS    =    -L../../lib -ldoxycfg -lqtools 
  1045. + MOC    =    moc
  1046. + TAR    =    tar -cf
  1047. + GZIP    =    gzip -9f
  1048. + ####### Files
  1049. + HEADERS =    basehandler.h \
  1050. +         mainhandler.h \
  1051. +         compoundhandler.h \
  1052. +         sectionhandler.h \
  1053. +         memberhandler.h \
  1054. +         paramhandler.h \
  1055. +         dochandler.h
  1056. + SOURCES =    main.cpp \
  1057. +         mainhandler.cpp \
  1058. +         compoundhandler.cpp \
  1059. +         sectionhandler.cpp \
  1060. +         memberhandler.cpp \
  1061. +         paramhandler.cpp \
  1062. +         dochandler.cpp
  1063. + OBJECTS =    obj/main.o \
  1064. +         obj/mainhandler.o \
  1065. +         obj/compoundhandler.o \
  1066. +         obj/sectionhandler.o \
  1067. +         obj/memberhandler.o \
  1068. +         obj/paramhandler.o \
  1069. +         obj/dochandler.o
  1070. + SRCMOC    =    
  1071. + OBJMOC    =    
  1072. + DIST    =    
  1073. + TARGET    =    xmlparse
  1074. + ####### Implicit rules
  1075. + .SUFFIXES: .cpp .cxx .cc .C .c
  1076. + .cpp.o:
  1077. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  1078. + .cxx.o:
  1079. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  1080. + .cc.o:
  1081. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  1082. + .C.o:
  1083. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
  1084. + .c.o:
  1085. +     $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
  1086. + ####### Build rules
  1087. + all: $(TARGET)
  1088. + $(TARGET): $(OBJECTS) $(OBJMOC) ../../lib/libdoxycfg.a
  1089. +     $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
  1090. + moc: $(SRCMOC)
  1091. + tmake:
  1092. +     tmake xmlparse.pro
  1093. + dist:
  1094. +     $(TAR) xmlparse.tar xmlparse.pro $(SOURCES) $(HEADERS) $(DIST)
  1095. +     $(GZIP) xmlparse.tar
  1096. + clean:
  1097. +     -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
  1098. +     -rm -f *~ core
  1099. + ####### Compile
  1100. + obj/main.o: main.cpp \
  1101. +         doxmlintf.h
  1102. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/main.o main.cpp
  1103. + obj/mainhandler.o: mainhandler.cpp \
  1104. +         mainhandler.h \
  1105. +         basehandler.h \
  1106. +         compoundhandler.h \
  1107. +         sectionhandler.h \
  1108. +         memberhandler.h \
  1109. +         paramhandler.h \
  1110. +         doxmlintf.h
  1111. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/mainhandler.o mainhandler.cpp
  1112. + obj/compoundhandler.o: compoundhandler.cpp \
  1113. +         mainhandler.h \
  1114. +         basehandler.h \
  1115. +         compoundhandler.h \
  1116. +         sectionhandler.h \
  1117. +         memberhandler.h \
  1118. +         paramhandler.h \
  1119. +         doxmlintf.h \
  1120. +         dochandler.h
  1121. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/compoundhandler.o compoundhandler.cpp
  1122. + obj/sectionhandler.o: sectionhandler.cpp \
  1123. +         mainhandler.h \
  1124. +         basehandler.h \
  1125. +         compoundhandler.h \
  1126. +         sectionhandler.h \
  1127. +         memberhandler.h \
  1128. +         paramhandler.h \
  1129. +         doxmlintf.h
  1130. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/sectionhandler.o sectionhandler.cpp
  1131. + obj/memberhandler.o: memberhandler.cpp \
  1132. +         memberhandler.h \
  1133. +         basehandler.h \
  1134. +         paramhandler.h \
  1135. +         doxmlintf.h \
  1136. +         sectionhandler.h \
  1137. +         dochandler.h
  1138. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/memberhandler.o memberhandler.cpp
  1139. + obj/paramhandler.o: paramhandler.cpp \
  1140. +         paramhandler.h \
  1141. +         basehandler.h \
  1142. +         doxmlintf.h \
  1143. +         memberhandler.h
  1144. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/paramhandler.o paramhandler.cpp
  1145. + obj/dochandler.o: dochandler.cpp \
  1146. +         dochandler.h \
  1147. +         basehandler.h
  1148. +     $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/dochandler.o dochandler.cpp
  1149. Index: addon/xmlparse/basehandler.h
  1150. ===================================================================
  1151. RCS file: addon/xmlparse/basehandler.h
  1152. diff -N addon/xmlparse/basehandler.h
  1153. *** /dev/null    1 Jan 1970 00:00:00 -0000
  1154. --- addon/xmlparse/basehandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  1155. ***************
  1156. *** 0 ****
  1157. --- 1,279 ----
  1158. + /******************************************************************************
  1159. +  *
  1160. +  * $Id$
  1161. +  *
  1162. +  *
  1163. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  1164. +  *
  1165. +  * Permission to use, copy, modify, and distribute this software and its
  1166. +  * documentation under the terms of the GNU General Public License is hereby 
  1167. +  * granted. No representations are made about the suitability of this software 
  1168. +  * for any purpose. It is provided "as is" without express or implied warranty.
  1169. +  * See the GNU General Public License for more details.
  1170. +  *
  1171. +  */
  1172. + #ifndef _BASEHANDLER_H
  1173. + #define _BASEHANDLER_H
  1174. + #include <qxml.h>
  1175. + #include <qdict.h>
  1176. + #include <qstring.h>
  1177. + class IBaseHandler
  1178. + {
  1179. +   public:
  1180. +     virtual void setDelegate(QXmlDefaultHandler *delegate) = 0;
  1181. +     virtual QXmlDefaultHandler *delegate() const = 0;
  1182. + };
  1183. + class IFallBackHandler
  1184. + {
  1185. +   public:
  1186. +     virtual bool handleStartElement(const QString & name, 
  1187. +                                     const QXmlAttributes & attrib) = 0;
  1188. +     virtual bool handleEndElement(const QString &name) = 0;
  1189. + };
  1190. + template<class T> class ElementMapper
  1191. + {
  1192. +     class StartElementHandler
  1193. +     {
  1194. +          typedef void (T::*Handler)(const QXmlAttributes &attrib);
  1195. +        public:
  1196. +          StartElementHandler() : m_parent(0) {}
  1197. +          StartElementHandler(T *parent, Handler h) 
  1198. +            : m_parent(parent), m_handler(h) {}
  1199. +          void operator()(const QXmlAttributes &attrib) 
  1200. +            { if (m_parent) (m_parent->*m_handler)(attrib); }
  1201. +        private:
  1202. +          T *m_parent;
  1203. +          Handler m_handler;
  1204. +     };
  1205. +     class EndElementHandler
  1206. +     {
  1207. +         typedef void (T::*Handler)();
  1208. +       public:
  1209. +         EndElementHandler() : m_parent(0) {}
  1210. +         EndElementHandler(T *parent, Handler h) 
  1211. +           : m_parent(parent), m_handler(h) {}
  1212. +         void operator()() 
  1213. +           { if (m_parent) (m_parent->*m_handler)(); }
  1214. +       private:
  1215. +         T *m_parent;
  1216. +         Handler m_handler;
  1217. +     };
  1218. +     typedef StartElementHandler<T> StartElementHandlerT;
  1219. +     typedef EndElementHandler<T>   EndElementHandlerT;
  1220. +   
  1221. +   public:
  1222. +     ElementMapper() : m_startHandlers(67), m_endHandlers(67)
  1223. +     {
  1224. +       m_startHandlers.setAutoDelete(TRUE);
  1225. +       m_endHandlers.setAutoDelete(TRUE);
  1226. +     }
  1227. +     virtual ~ElementMapper()
  1228. +     {
  1229. +     }
  1230. +     void addStartHandler(const char *key)
  1231. +     {
  1232. +       m_startHandlers.insert(key,new StartElementHandlerT);
  1233. +     }
  1234. +     void addStartHandler(const char *key, T *obj, void (T::*handler)(const QXmlAttributes &))
  1235. +     {
  1236. +       m_startHandlers.insert(key,new StartElementHandlerT(obj,handler));
  1237. +     }
  1238. +     
  1239. +     void addEndHandler(const char *key)
  1240. +     {
  1241. +       m_endHandlers.insert(key,new EndElementHandlerT);
  1242. +     }
  1243. +     void addEndHandler(const char *key, T *obj, void (T::*handler)())
  1244. +     {
  1245. +       m_endHandlers.insert(key,new EndElementHandlerT(obj,handler));
  1246. +     }
  1247. +   protected:
  1248. +     QDict<StartElementHandlerT> m_startHandlers;
  1249. +     QDict<EndElementHandlerT>   m_endHandlers;
  1250. + };
  1251. + template<class T> class BaseHandler : public IBaseHandler, 
  1252. +                                       public QXmlDefaultHandler,
  1253. +                                       public ElementMapper<T>
  1254. + {
  1255. +   public:
  1256. +     BaseHandler() : m_delegateHandler(0), m_fallBackHandler(0)
  1257. +     {
  1258. +     }
  1259. +     virtual ~BaseHandler() 
  1260. +     {
  1261. +       ASSERT(m_delegateHandler==0);
  1262. +     }
  1263. +     virtual bool startDocument() 
  1264. +     {
  1265. +       return TRUE;
  1266. +     }
  1267. +     virtual bool startElement(  const QString & namespaceURI, 
  1268. +                                 const QString & localName, 
  1269. +                                 const QString & name, 
  1270. +                                 const QXmlAttributes & attrib
  1271. +                              )
  1272. +     {
  1273. +       if (m_delegateHandler) 
  1274. +       {
  1275. +         return m_delegateHandler->startElement(namespaceURI,localName,name,attrib);
  1276. +       }
  1277. +       if (!m_skipUntil.isEmpty()) // skip mode 
  1278. +       {
  1279. +         if (m_skipUntil==name) m_skipCount++;
  1280. +         printf("skipping start tag %s count=%d\n",name.data(),m_skipCount);
  1281. +         return TRUE; 
  1282. +       }
  1283. +       StartElementHandlerT *handler = m_startHandlers[name];
  1284. +       if (handler)
  1285. +       {
  1286. +         (*handler)(attrib);
  1287. +         //printf("found start tag %s\n",name.data());
  1288. +       }
  1289. +       else if (!m_fallBackHandler ||
  1290. +                !m_fallBackHandler->handleStartElement(name,attrib)
  1291. +               )
  1292. +       {
  1293. +         printf("found unexpected tag `%s', skipping until matching end tag\n",name.data());
  1294. +         m_skipUntil = name;
  1295. +         m_skipCount=1;
  1296. +       }
  1297. +       return TRUE;
  1298. +     }
  1299. +     virtual bool endElement( const QString& namespaceURI, const QString& localName, const QString& name )
  1300. +     {
  1301. +       if (m_delegateHandler) 
  1302. +       {
  1303. +         return m_delegateHandler->endElement(namespaceURI,localName,name);
  1304. +       }
  1305. +       if (name==m_skipUntil)
  1306. +       {
  1307. +         m_skipCount--;
  1308. +         printf("skipping end tag %s count=%d\n",name.data(),m_skipCount);
  1309. +         if (m_skipCount==0)
  1310. +         {
  1311. +           m_skipUntil="";
  1312. +         }
  1313. +         //printf("found end tag %s\n",name.data());
  1314. +       }
  1315. +       else if (m_skipUntil.isEmpty())
  1316. +       {
  1317. +         EndElementHandlerT *handler = m_endHandlers[name];
  1318. +         if (handler)
  1319. +         {
  1320. +           (*handler)();
  1321. +           //printf("found end tag %s\n",name.data());
  1322. +         }
  1323. +         else if (m_fallBackHandler)
  1324. +         {
  1325. +           m_fallBackHandler->handleEndElement(name);
  1326. +         }
  1327. +       }
  1328. +       m_curString="";
  1329. +       return TRUE;
  1330. +     }
  1331. +     
  1332. +     bool skippedEntity ( const QString &s )
  1333. +     {
  1334. +       if (m_delegateHandler)
  1335. +       {
  1336. +         return m_delegateHandler->skippedEntity(s);
  1337. +       }
  1338. +       
  1339. +       printf("Skipped unhandled entity %s\n",s.data());
  1340. +       return TRUE;
  1341. +     }
  1342. +     virtual bool characters ( const QString & ch ) 
  1343. +     {
  1344. +       if (m_delegateHandler) 
  1345. +       {
  1346. +         return m_delegateHandler->characters(ch);
  1347. +       }
  1348. +       //printf("Found characters \"%s\"\n",ch.data());
  1349. +       m_curString+=ch;
  1350. +       return TRUE;
  1351. +     }
  1352. +     void setDelegate(QXmlDefaultHandler *delegate)
  1353. +     {
  1354. +       m_delegateHandler = delegate;
  1355. +     }
  1356. +     QXmlDefaultHandler *delegate() const
  1357. +     {
  1358. +       return m_delegateHandler;
  1359. +     }
  1360. +     void setFallBackHandler(IFallBackHandler *h)
  1361. +     {
  1362. +       m_fallBackHandler = h;
  1363. +     }
  1364. +     IFallBackHandler *fallBackHandler() const
  1365. +     {
  1366. +       return m_fallBackHandler;
  1367. +     }
  1368. +   protected:
  1369. +     QString                     m_curString;
  1370. +     QString                     m_skipUntil;
  1371. +     int                         m_skipCount;
  1372. +     QXmlDefaultHandler         *m_delegateHandler;
  1373. +     IFallBackHandler           *m_fallBackHandler;
  1374. + };
  1375. + template<class T> class BaseFallBackHandler : public ElementMapper<T>,
  1376. +                                               public IFallBackHandler
  1377. + {
  1378. +   public:
  1379. +     BaseFallBackHandler() 
  1380. +     {
  1381. +     }
  1382. +     virtual ~BaseFallBackHandler()
  1383. +     {
  1384. +     }
  1385. +     bool handleStartElement(const QString & name, 
  1386. +                                     const QXmlAttributes & attrib)
  1387. +     {
  1388. +       StartElementHandlerT *handler = m_startHandlers[name];
  1389. +       if (handler)
  1390. +       {
  1391. +         (*handler)(attrib);
  1392. +         return TRUE;
  1393. +       }
  1394. +       return FALSE;
  1395. +     }
  1396. +     bool handleEndElement(const QString &name)
  1397. +     {
  1398. +       EndElementHandlerT *handler = m_endHandlers[name];
  1399. +       if (handler)
  1400. +       {
  1401. +         (*handler)();
  1402. +         return TRUE;
  1403. +       }
  1404. +       return FALSE;
  1405. +     }
  1406. + };
  1407. + #endif
  1408. Index: addon/xmlparse/compoundhandler.cpp
  1409. ===================================================================
  1410. RCS file: addon/xmlparse/compoundhandler.cpp
  1411. diff -N addon/xmlparse/compoundhandler.cpp
  1412. *** /dev/null    1 Jan 1970 00:00:00 -0000
  1413. --- addon/xmlparse/compoundhandler.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  1414. ***************
  1415. *** 0 ****
  1416. --- 1,148 ----
  1417. + /******************************************************************************
  1418. +  *
  1419. +  * $Id$
  1420. +  *
  1421. +  *
  1422. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  1423. +  *
  1424. +  * Permission to use, copy, modify, and distribute this software and its
  1425. +  * documentation under the terms of the GNU General Public License is hereby 
  1426. +  * granted. No representations are made about the suitability of this software 
  1427. +  * for any purpose. It is provided "as is" without express or implied warranty.
  1428. +  * See the GNU General Public License for more details.
  1429. +  *
  1430. +  */
  1431. + #include "mainhandler.h"
  1432. + #include "compoundhandler.h"
  1433. + #include "dochandler.h"
  1434. + CompoundHandler::CompoundHandler(IBaseHandler *parent) 
  1435. +   : m_parent(parent), m_brief(0), m_detailed(0), m_programListing(0)
  1436. + {
  1437. +   m_superClasses.setAutoDelete(TRUE);
  1438. +   m_subClasses.setAutoDelete(TRUE);
  1439. +   m_sections.setAutoDelete(TRUE);
  1440. +   addEndHandler("compounddef",this,&CompoundHandler::endCompound);
  1441. +   addStartHandler("compoundname");
  1442. +   addEndHandler("compoundname",this,&CompoundHandler::endCompoundName);
  1443. +   addStartHandler("derivedcompoundref",this,&CompoundHandler::addSubClass);
  1444. +   addEndHandler("derivedcompoundref");
  1445. +   addStartHandler("basecompoundref",this,&CompoundHandler::addSuperClass);
  1446. +   addEndHandler("basecompoundref");
  1447. +   addStartHandler("briefdescription",this,&CompoundHandler::startBriefDesc);
  1448. +   addStartHandler("detaileddescription",this,&CompoundHandler::startDetailedDesc);
  1449. +   
  1450. +   addStartHandler("sectiondef",this,&CompoundHandler::startSection);
  1451. +   
  1452. +   addStartHandler("location",this,&CompoundHandler::startLocation);
  1453. +   addEndHandler("location");
  1454. +   addStartHandler("programlisting",this,&CompoundHandler::startProgramListing);
  1455. + }
  1456. + CompoundHandler::~CompoundHandler()
  1457. + {
  1458. +   delete m_brief;
  1459. +   delete m_detailed;
  1460. +   delete m_programListing;
  1461. + }
  1462. + void CompoundHandler::startSection(const QXmlAttributes& attrib)
  1463. + {
  1464. +   SectionHandler *sectHandler = new SectionHandler(this);
  1465. +   sectHandler->startSection(attrib);
  1466. +   m_sections.append(sectHandler);
  1467. + }
  1468. + void CompoundHandler::startBriefDesc(const QXmlAttributes& attrib)
  1469. + {
  1470. +   DocHandler *docHandler = new DocHandler(this);
  1471. +   docHandler->startDoc(attrib);
  1472. +   m_brief = docHandler;
  1473. + }
  1474. + void CompoundHandler::startDetailedDesc(const QXmlAttributes& attrib)
  1475. + {
  1476. +   DocHandler *docHandler = new DocHandler(this);
  1477. +   docHandler->startDoc(attrib);
  1478. +   m_detailed = docHandler;
  1479. + }
  1480. + void CompoundHandler::startProgramListing(const QXmlAttributes& attrib)
  1481. + {
  1482. +   ProgramListingHandler *plHandler = new ProgramListingHandler(this);
  1483. +   plHandler->startProgramListing(attrib);
  1484. +   m_programListing = plHandler;
  1485. + }
  1486. + void CompoundHandler::startCompound(const QXmlAttributes& attrib)
  1487. + {
  1488. +   m_parent->setDelegate(this);
  1489. +   m_id = attrib.value("id");
  1490. +   m_kind = attrib.value("kind");
  1491. +   printf("startCompound(id=`%s' type=`%s')\n",m_id.data(),m_kind.data());
  1492. + }
  1493. + void CompoundHandler::startLocation(const QXmlAttributes& attrib)
  1494. + {
  1495. +   m_defFile = attrib.value("file");
  1496. +   m_defLine = attrib.value("line").toInt();
  1497. + }
  1498. + void CompoundHandler::endCompound()
  1499. + {
  1500. +    printf("endCompound()\n");
  1501. +    m_parent->setDelegate(0);
  1502. + }
  1503. + void CompoundHandler::endCompoundName()
  1504. + {
  1505. +   m_name = m_curString.stripWhiteSpace();
  1506. +   printf("Compound name `%s'\n",m_name.data());
  1507. + }
  1508. + void CompoundHandler::addSuperClass(const QXmlAttributes& attrib)
  1509. + {
  1510. +   SuperClass *sc=new SuperClass(
  1511. +           attrib.value("idref"),
  1512. +           attrib.value("prot"),
  1513. +           attrib.value("virt")
  1514. +          );
  1515. +   printf("super class id=`%s' prot=`%s' virt=`%s'\n",
  1516. +       sc->m_id.data(),
  1517. +       sc->m_protection.data(),
  1518. +       sc->m_virtualness.data());
  1519. +   m_superClasses.append(sc);
  1520. + }
  1521. + void CompoundHandler::addSubClass(const QXmlAttributes& attrib)
  1522. + {
  1523. +   SubClass *sc = new SubClass(
  1524. +           attrib.value("idref"),
  1525. +           attrib.value("prot"),
  1526. +           attrib.value("virt")
  1527. +          );
  1528. +   printf("sub class id=`%s' prot=`%s' virt=`%s'\n",
  1529. +       sc->m_id.data(),
  1530. +       sc->m_protection.data(),
  1531. +       sc->m_virtualness.data());
  1532. +   m_subClasses.append(sc);
  1533. + }
  1534. + void CompoundHandler::initialize(MainHandler *m)
  1535. + {
  1536. +   QListIterator<ISection> msi(m_sections);
  1537. +   SectionHandler *sec;
  1538. +   for (;(sec=(SectionHandler *)msi.current());++msi)
  1539. +   {
  1540. +     sec->initialize(m);
  1541. +   }
  1542. + }
  1543. Index: addon/xmlparse/compoundhandler.h
  1544. ===================================================================
  1545. RCS file: addon/xmlparse/compoundhandler.h
  1546. diff -N addon/xmlparse/compoundhandler.h
  1547. *** /dev/null    1 Jan 1970 00:00:00 -0000
  1548. --- addon/xmlparse/compoundhandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  1549. ***************
  1550. *** 0 ****
  1551. --- 1,87 ----
  1552. + /******************************************************************************
  1553. +  *
  1554. +  * $Id$
  1555. +  *
  1556. +  *
  1557. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  1558. +  *
  1559. +  * Permission to use, copy, modify, and distribute this software and its
  1560. +  * documentation under the terms of the GNU General Public License is hereby 
  1561. +  * granted. No representations are made about the suitability of this software 
  1562. +  * for any purpose. It is provided "as is" without express or implied warranty.
  1563. +  * See the GNU General Public License for more details.
  1564. +  *
  1565. +  */
  1566. + #ifndef _COMPOUNDHANDLER_H
  1567. + #define _COMPOUNDHANDLER_H
  1568. + #include <qstring.h>
  1569. + #include <qlist.h>
  1570. + #include <qxml.h>
  1571. + #include "basehandler.h"
  1572. + #include "sectionhandler.h"
  1573. + #include "doxmlintf.h"
  1574. + class MainHandler;
  1575. + class DocHandler;
  1576. + class ProgramListingHandler;
  1577. + class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
  1578. + {
  1579. +   public:
  1580. +     virtual void startSection(const QXmlAttributes& attrib);
  1581. +     virtual void startCompound(const QXmlAttributes& attrib);
  1582. +     virtual void addSuperClass(const QXmlAttributes& attrib);
  1583. +     virtual void addSubClass(const QXmlAttributes& attrib);
  1584. +     virtual void endCompound();
  1585. +     virtual void endCompoundName();
  1586. +     virtual void startBriefDesc(const QXmlAttributes& attrib);
  1587. +     virtual void startDetailedDesc(const QXmlAttributes& attrib);
  1588. +     virtual void startLocation(const QXmlAttributes& attrib);
  1589. +     virtual void startProgramListing(const QXmlAttributes& attrib);
  1590. +     CompoundHandler(IBaseHandler *parent);
  1591. +     virtual ~CompoundHandler();
  1592. +     // ICompound
  1593. +     QString name() const { return m_name; }
  1594. +     QString id()   const { return m_id;   }
  1595. +     QString kind() const { return m_kind; }
  1596. +     QListIterator<ISection> getSectionIterator() const { return m_sections; }
  1597. +     void initialize(MainHandler *m);
  1598. +   private:
  1599. +     struct SuperClass
  1600. +     {
  1601. +       SuperClass(const QString &id,const QString &prot,const QString &virt) :
  1602. +         m_id(id),m_protection(prot),m_virtualness(virt) {}
  1603. +       QString m_id;
  1604. +       QString m_protection;
  1605. +       QString m_virtualness;
  1606. +     };
  1607. +     struct SubClass
  1608. +     {
  1609. +       SubClass(const QString &id,const QString &prot,const QString &virt) :
  1610. +         m_id(id),m_protection(prot),m_virtualness(virt) {}
  1611. +       QString m_id;
  1612. +       QString m_protection;
  1613. +       QString m_virtualness;
  1614. +     };
  1615. +     QList<SuperClass>       m_superClasses;
  1616. +     QList<SubClass>         m_subClasses;
  1617. +     QList<ISection>         m_sections;
  1618. +     IBaseHandler           *m_parent;
  1619. +     DocHandler             *m_brief;
  1620. +     DocHandler             *m_detailed;
  1621. +     ProgramListingHandler  *m_programListing;
  1622. +     QString                 m_id;
  1623. +     QString                 m_kind;
  1624. +     QString                 m_name;
  1625. +     QString                 m_defFile;
  1626. +     int                     m_defLine;
  1627. + };
  1628. + #endif
  1629. Index: addon/xmlparse/dochandler.cpp
  1630. ===================================================================
  1631. RCS file: addon/xmlparse/dochandler.cpp
  1632. diff -N addon/xmlparse/dochandler.cpp
  1633. *** /dev/null    1 Jan 1970 00:00:00 -0000
  1634. --- addon/xmlparse/dochandler.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  1635. ***************
  1636. *** 0 ****
  1637. --- 1,1373 ----
  1638. + /******************************************************************************
  1639. +  *
  1640. +  * $Id$
  1641. +  *
  1642. +  *
  1643. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  1644. +  *
  1645. +  * Permission to use, copy, modify, and distribute this software and its
  1646. +  * documentation under the terms of the GNU General Public License is hereby 
  1647. +  * granted. No representations are made about the suitability of this software 
  1648. +  * for any purpose. It is provided "as is" without express or implied warranty.
  1649. +  * See the GNU General Public License for more details.
  1650. +  *
  1651. +  */
  1652. + #include "dochandler.h"
  1653. + #include <qmap.h>
  1654. + class TypeNameMapper
  1655. + {
  1656. +   public:
  1657. +     TypeNameMapper()
  1658. +     {
  1659. +       m_typeNameMap.insert("see",       SimpleSectHandler::See);
  1660. +       m_typeNameMap.insert("return",    SimpleSectHandler::Return);
  1661. +       m_typeNameMap.insert("author",    SimpleSectHandler::Author);
  1662. +       m_typeNameMap.insert("version",   SimpleSectHandler::Version);
  1663. +       m_typeNameMap.insert("since",     SimpleSectHandler::Since);
  1664. +       m_typeNameMap.insert("date",      SimpleSectHandler::Date);
  1665. +       m_typeNameMap.insert("bug",       SimpleSectHandler::Bug);
  1666. +       m_typeNameMap.insert("note",      SimpleSectHandler::Note);
  1667. +       m_typeNameMap.insert("warning",   SimpleSectHandler::Warning);
  1668. +       m_typeNameMap.insert("par",       SimpleSectHandler::Par);
  1669. +       m_typeNameMap.insert("deprecated",SimpleSectHandler::Deprecated);
  1670. +       m_typeNameMap.insert("pre",       SimpleSectHandler::Pre);
  1671. +       m_typeNameMap.insert("post",      SimpleSectHandler::Post);
  1672. +       m_typeNameMap.insert("invariant", SimpleSectHandler::Invar);
  1673. +       m_typeNameMap.insert("remark",    SimpleSectHandler::Remark);
  1674. +       m_typeNameMap.insert("attention", SimpleSectHandler::Attention);
  1675. +       m_typeNameMap.insert("todo",      SimpleSectHandler::Todo);
  1676. +       m_typeNameMap.insert("test",      SimpleSectHandler::Test);
  1677. +       m_typeNameMap.insert("rcs",       SimpleSectHandler::RCS);
  1678. +       m_typeNameMap.insert("enumvalues",SimpleSectHandler::EnumValues);
  1679. +       m_typeNameMap.insert("examples",  SimpleSectHandler::Examples);
  1680. +     }
  1681. +     SimpleSectHandler::Types stringToType(const QString &typeStr)
  1682. +     {
  1683. +       return m_typeNameMap[typeStr];
  1684. +     }
  1685. +   private:
  1686. +     QMap<QString,SimpleSectHandler::Types> m_typeNameMap;
  1687. + };
  1688. + static TypeNameMapper g_typeMapper;
  1689. +   
  1690. + //----------------------------------------------------------------------
  1691. + // MarkupHandler
  1692. + //----------------------------------------------------------------------
  1693. + MarkupHandler::MarkupHandler(QList<DocNode> &children,QString &curString)
  1694. +   : m_children(children), m_curString(curString), m_curMarkup(DocNode::Normal)
  1695. + {
  1696. +   addStartHandler("bold",this,&MarkupHandler::startBold);
  1697. +   addEndHandler("bold",this,&MarkupHandler::endBold);
  1698. +   
  1699. +   addStartHandler("emphasis",this,&MarkupHandler::startEmphasis);
  1700. +   addEndHandler("emphasis",this,&MarkupHandler::endEmphasis);
  1701. +   
  1702. +   addStartHandler("computeroutput",this,&MarkupHandler::startComputerOutput);
  1703. +   addEndHandler("computeroutput",this,&MarkupHandler::endComputerOutput);
  1704. +   addStartHandler("center",this,&MarkupHandler::startCenter);
  1705. +   addEndHandler("center",this,&MarkupHandler::endCenter);
  1706. +   addStartHandler("small",this,&MarkupHandler::startSmallFont);
  1707. +   addEndHandler("small",this,&MarkupHandler::endSmallFont);
  1708. +   addStartHandler("subscript",this,&MarkupHandler::startSubscript);
  1709. +   addEndHandler("subscript",this,&MarkupHandler::endSubscript);
  1710. +   addStartHandler("superscript",this,&MarkupHandler::startSuperscript);
  1711. +   addEndHandler("superscript",this,&MarkupHandler::endSuperscript);
  1712. + }
  1713. + MarkupHandler::~MarkupHandler()
  1714. + {
  1715. + }
  1716. + void MarkupHandler::addTextNode()
  1717. + {
  1718. +   if (!m_curString.isEmpty())
  1719. +   {
  1720. +     m_children.append(new TextNode(m_curString,m_curMarkup));
  1721. +     printf("addTextNode() text=%s markup=%x\n",m_curString.data(),m_curMarkup);
  1722. +     m_curString="";
  1723. +   }
  1724. + }
  1725. + void MarkupHandler::startBold(const QXmlAttributes & /*attrib*/)
  1726. + {
  1727. +   addTextNode();
  1728. +   m_children.append(new MarkupModifierNode(DocNode::Bold,TRUE));
  1729. +   m_curMarkup |= DocNode::Bold;
  1730. + }
  1731. + void MarkupHandler::endBold()
  1732. + {
  1733. +   addTextNode();
  1734. +   m_children.append(new MarkupModifierNode(DocNode::Bold,FALSE));
  1735. +   m_curMarkup &= ~DocNode::Bold;
  1736. + }
  1737. + void MarkupHandler::startEmphasis(const QXmlAttributes & /*attrib*/)
  1738. + {
  1739. +   addTextNode();
  1740. +   m_children.append(new MarkupModifierNode(DocNode::Emphasis,TRUE));
  1741. +   m_curMarkup |= DocNode::Emphasis;
  1742. + }
  1743. + void MarkupHandler::endEmphasis()
  1744. + {
  1745. +   addTextNode();
  1746. +   m_children.append(new MarkupModifierNode(DocNode::Emphasis,FALSE));
  1747. +   m_curMarkup &= ~DocNode::Emphasis;
  1748. + }
  1749. + void MarkupHandler::startComputerOutput(const QXmlAttributes & /*attrib*/)
  1750. + {
  1751. +   addTextNode();
  1752. +   m_children.append(new MarkupModifierNode(DocNode::ComputerOutput,TRUE));
  1753. +   m_curMarkup |= DocNode::ComputerOutput;
  1754. + }
  1755. + void MarkupHandler::endComputerOutput()
  1756. + {
  1757. +   addTextNode();
  1758. +   m_children.append(new MarkupModifierNode(DocNode::ComputerOutput,FALSE));
  1759. +   m_curMarkup &= ~DocNode::ComputerOutput;
  1760. + }
  1761. + void MarkupHandler::startCenter(const QXmlAttributes & /*attrib*/)
  1762. + {
  1763. +   addTextNode();
  1764. +   m_children.append(new MarkupModifierNode(DocNode::Center,TRUE));
  1765. +   m_curMarkup |= DocNode::Center;
  1766. + }
  1767. + void MarkupHandler::endCenter()
  1768. + {
  1769. +   addTextNode();
  1770. +   m_children.append(new MarkupModifierNode(DocNode::Center,FALSE));
  1771. +   m_curMarkup &= ~DocNode::Center;
  1772. + }
  1773. + void MarkupHandler::startSmallFont(const QXmlAttributes & /*attrib*/)
  1774. + {
  1775. +   addTextNode();
  1776. +   m_children.append(new MarkupModifierNode(DocNode::SmallFont,TRUE));
  1777. +   m_curMarkup |= DocNode::SmallFont;
  1778. + }
  1779. + void MarkupHandler::endSmallFont()
  1780. + {
  1781. +   addTextNode();
  1782. +   m_children.append(new MarkupModifierNode(DocNode::SmallFont,FALSE));
  1783. +   m_curMarkup &= ~DocNode::SmallFont;
  1784. + }
  1785. + void MarkupHandler::startSubscript(const QXmlAttributes & /*attrib*/)
  1786. + {
  1787. +   addTextNode();
  1788. +   m_children.append(new MarkupModifierNode(DocNode::Subscript,TRUE));
  1789. +   m_curMarkup |= DocNode::Subscript;
  1790. + }
  1791. + void MarkupHandler::endSubscript()
  1792. + {
  1793. +   addTextNode();
  1794. +   m_children.append(new MarkupModifierNode(DocNode::Subscript,FALSE));
  1795. +   m_curMarkup &= ~DocNode::Subscript;
  1796. + }
  1797. + void MarkupHandler::startSuperscript(const QXmlAttributes & /*attrib*/)
  1798. + {
  1799. +   addTextNode();
  1800. +   m_children.append(new MarkupModifierNode(DocNode::Superscript,TRUE));
  1801. +   m_curMarkup |= DocNode::Superscript;
  1802. + }
  1803. + void MarkupHandler::endSuperscript()
  1804. + {
  1805. +   addTextNode();
  1806. +   m_children.append(new MarkupModifierNode(DocNode::Superscript,FALSE));
  1807. +   m_curMarkup &= ~DocNode::Superscript;
  1808. + }
  1809. + //----------------------------------------------------------------------
  1810. + // ListItemHandler
  1811. + //----------------------------------------------------------------------
  1812. + ListItemHandler::ListItemHandler(IBaseHandler *parent) 
  1813. +   : DocNode(ListItem), m_parent(parent)
  1814. + {
  1815. +   m_children.setAutoDelete(TRUE);
  1816. +   
  1817. +   addEndHandler("listitem",this,&ListItemHandler::endListItem);
  1818. +   addStartHandler("para",this,&ListItemHandler::startParagraph);
  1819. + }
  1820. + ListItemHandler::~ListItemHandler()
  1821. + {
  1822. + }
  1823. + void ListItemHandler::startListItem(const QXmlAttributes& /*attrib*/)
  1824. + {
  1825. +   m_parent->setDelegate(this);
  1826. +   printf("start list item handler\n");
  1827. + }
  1828. + void ListItemHandler::endListItem()
  1829. + {
  1830. +   printf("end list item handler\n");
  1831. +   m_parent->setDelegate(0);
  1832. + }
  1833. + void ListItemHandler::startParagraph(const QXmlAttributes& attrib)
  1834. + {
  1835. +   ParagraphHandler *parHandler = new ParagraphHandler(this);
  1836. +   parHandler->startParagraph(attrib);
  1837. +   m_children.append(parHandler);
  1838. + }
  1839. + //----------------------------------------------------------------------
  1840. + // ListHandler
  1841. + //----------------------------------------------------------------------
  1842. + ListHandler::ListHandler(NodeKind k,IBaseHandler *parent) 
  1843. +   : DocNode(k), m_parent(parent)
  1844. + {
  1845. +   m_children.setAutoDelete(TRUE);
  1846. +   const char *endListName=0;
  1847. +   switch(k)
  1848. +   {
  1849. +     case ItemizedList : endListName="itemizedlist"; break;
  1850. +     case OrderedList :  endListName="orderedlist";  break;
  1851. +     default: ASSERT(0);
  1852. +   }
  1853. +   addEndHandler(endListName,this,&ListHandler::endList);
  1854. +   addStartHandler("listitem",this,&ListHandler::startListItem);
  1855. + }
  1856. + ListHandler::~ListHandler()
  1857. + {
  1858. + }
  1859. + void ListHandler::startList(const QXmlAttributes& /*attrib*/)
  1860. + {
  1861. +   m_parent->setDelegate(this);
  1862. + }
  1863. + void ListHandler::endList()
  1864. + {
  1865. +   m_parent->setDelegate(0);
  1866. + }
  1867. + void ListHandler::startListItem(const QXmlAttributes& attrib)
  1868. + {
  1869. +   ListItemHandler *liHandler = new ListItemHandler(this);
  1870. +   liHandler->startListItem(attrib);
  1871. +   m_children.append(liHandler);
  1872. + }
  1873. + //----------------------------------------------------------------------
  1874. + // ParameterHandler
  1875. + //----------------------------------------------------------------------
  1876. + ParameterHandler::ParameterHandler(IBaseHandler *parent) : DocNode(Parameter),
  1877. +   m_parent(parent), m_description(0)
  1878. + {
  1879. +   addEndHandler("parametername",this,&ParameterHandler::endParameterName);
  1880. +   addEndHandler("parameterdescription",this,&ParameterHandler::endParameterDescription);
  1881. +   addStartHandler("para",this,&ParameterHandler::startParagraph);
  1882. + }
  1883. + ParameterHandler::~ParameterHandler()
  1884. + {
  1885. +   delete m_description;
  1886. + }
  1887. + void ParameterHandler::startParameterName(const QXmlAttributes& /*attrib*/)
  1888. + {
  1889. +   m_parent->setDelegate(this);
  1890. + }
  1891. + void ParameterHandler::endParameterName()
  1892. + {
  1893. +   m_name = m_curString;
  1894. +   printf("parameter %s\n",m_name.data());
  1895. +   m_curString="";
  1896. +   m_parent->setDelegate(0);
  1897. + }
  1898. + void ParameterHandler::startParameterDescription(const QXmlAttributes& /*attrib*/)
  1899. + {
  1900. +   m_parent->setDelegate(this);
  1901. + }
  1902. + void ParameterHandler::endParameterDescription()
  1903. + {
  1904. +   m_parent->setDelegate(0);
  1905. + }
  1906. + void ParameterHandler::startParagraph(const QXmlAttributes& attrib)
  1907. + {
  1908. +   ASSERT(m_description==0);
  1909. +   m_description = new ParagraphHandler(this);
  1910. +   m_description->startParagraph(attrib);
  1911. + }
  1912. + //----------------------------------------------------------------------
  1913. + // ParameterListHandler
  1914. + //----------------------------------------------------------------------
  1915. + ParameterListHandler::ParameterListHandler(IBaseHandler *parent) 
  1916. +   : DocNode(ParameterList), m_parent(parent)
  1917. + {
  1918. +   addEndHandler("parameterlist",this,&ParameterListHandler::endParameterList);
  1919. +   addStartHandler("parametername",this,&ParameterListHandler::startParameterName);
  1920. +   addStartHandler("parameterdescription",this,&ParameterListHandler::startParameterDescription);
  1921. +   addStartHandler("title");
  1922. +   addEndHandler("title");
  1923. +   m_parameters.setAutoDelete(TRUE);
  1924. +   m_curParam=0;
  1925. + }
  1926. + ParameterListHandler::~ParameterListHandler()
  1927. + {
  1928. + }
  1929. + void ParameterListHandler::startParameterList(const QXmlAttributes& attrib)
  1930. + {
  1931. +   QString kind = attrib.value("kind");
  1932. +   if (kind=="retval")         m_type=RetVal;
  1933. +   else if (kind=="exception") m_type=Exception;
  1934. +   else if (kind=="param")     m_type=Param;
  1935. +   else
  1936. +   {
  1937. +     printf("Error: invalid parameterlist type: %s\n",kind.data());
  1938. +   }
  1939. +   printf("parameterlist kind=%s\n",kind.data());
  1940. +   m_parent->setDelegate(this);
  1941. + }
  1942. + void ParameterListHandler::endParameterList()
  1943. + {
  1944. +   m_parent->setDelegate(0);
  1945. + }
  1946. + void ParameterListHandler::startParameterName(const QXmlAttributes& attrib)
  1947. + {
  1948. +   m_curParam = new ParameterHandler(this);
  1949. +   m_parameters.append(m_curParam);
  1950. +   m_curParam->startParameterName(attrib);
  1951. + }
  1952. + void ParameterListHandler::startParameterDescription(const QXmlAttributes& attrib)
  1953. + {
  1954. +   ASSERT(m_curParam!=0);
  1955. +   m_curParam->startParameterDescription(attrib);
  1956. + }
  1957. + //----------------------------------------------------------------------
  1958. + // LinkHandler
  1959. + //----------------------------------------------------------------------
  1960. + LinkHandler::LinkHandler(IBaseHandler *parent)
  1961. +   : DocNode(Link), m_parent(parent)
  1962. + {
  1963. +   addEndHandler("link",this,&LinkHandler::endLink);
  1964. + }
  1965. + LinkHandler::~LinkHandler()
  1966. + {
  1967. + }
  1968. + void LinkHandler::startLink(const QXmlAttributes& attrib)
  1969. + {
  1970. +   m_parent->setDelegate(this);
  1971. +   printf("Start link\n");
  1972. +   m_ref = attrib.value("linkend");
  1973. +   m_curString="";
  1974. + }
  1975. + void LinkHandler::endLink()
  1976. + {
  1977. +   m_text = m_curString;
  1978. +   m_curString="";
  1979. +   m_parent->setDelegate(0);
  1980. +   printf("End link\n");
  1981. + }
  1982. + //----------------------------------------------------------------------
  1983. + // EMailHandler
  1984. + //----------------------------------------------------------------------
  1985. + EMailHandler::EMailHandler(IBaseHandler *parent)
  1986. +   : DocNode(EMail), m_parent(parent)
  1987. + {
  1988. +   addEndHandler("email",this,&EMailHandler::endEMail);
  1989. + }
  1990. + EMailHandler::~EMailHandler()
  1991. + {
  1992. + }
  1993. + void EMailHandler::startEMail(const QXmlAttributes& /*attrib*/)
  1994. + {
  1995. +   m_parent->setDelegate(this);
  1996. +   printf("Start email\n");
  1997. +   m_curString="";
  1998. + }
  1999. + void EMailHandler::endEMail()
  2000. + {
  2001. +   m_address = m_curString;
  2002. +   m_curString="";
  2003. +   m_parent->setDelegate(0);
  2004. +   printf("End email\n");
  2005. + }
  2006. + //----------------------------------------------------------------------
  2007. + // ULinkHandler
  2008. + //----------------------------------------------------------------------
  2009. + ULinkHandler::ULinkHandler(IBaseHandler *parent)
  2010. +   : DocNode(ULink), m_parent(parent)
  2011. + {
  2012. +   addEndHandler("ulink",this,&ULinkHandler::endULink);
  2013. + }
  2014. + ULinkHandler::~ULinkHandler()
  2015. + {
  2016. + }
  2017. + void ULinkHandler::startULink(const QXmlAttributes& attrib)
  2018. + {
  2019. +   m_parent->setDelegate(this);
  2020. +   printf("Start ulink\n");
  2021. +   m_url = attrib.value("url");
  2022. +   m_curString="";
  2023. + }
  2024. + void ULinkHandler::endULink()
  2025. + {
  2026. +   m_text = m_curString;
  2027. +   m_curString="";
  2028. +   m_parent->setDelegate(0);
  2029. +   printf("End ulink\n");
  2030. + }
  2031. + //----------------------------------------------------------------------
  2032. + // LineBreakHandler
  2033. + //----------------------------------------------------------------------
  2034. + LineBreakHandler::LineBreakHandler(IBaseHandler *parent)
  2035. +   : DocNode(LineBreak), m_parent(parent)
  2036. + {
  2037. +   addEndHandler("linebreak",this,&LineBreakHandler::endLineBreak);
  2038. + }
  2039. + LineBreakHandler::~LineBreakHandler()
  2040. + {
  2041. + }
  2042. + void LineBreakHandler::startLineBreak(const QXmlAttributes& /*attrib*/)
  2043. + {
  2044. +   m_parent->setDelegate(this);
  2045. +   printf("Start linebreak\n");
  2046. + }
  2047. + void LineBreakHandler::endLineBreak()
  2048. + {
  2049. +   m_parent->setDelegate(0);
  2050. +   printf("End linebreak\n");
  2051. + }
  2052. + //----------------------------------------------------------------------
  2053. + // HRulerHandler
  2054. + //----------------------------------------------------------------------
  2055. + HRulerHandler::HRulerHandler(IBaseHandler *parent)
  2056. +   : DocNode(HRuler), m_parent(parent)
  2057. + {
  2058. +   addEndHandler("hruler",this,&HRulerHandler::endHRuler);
  2059. + }
  2060. + HRulerHandler::~HRulerHandler()
  2061. + {
  2062. + }
  2063. + void HRulerHandler::startHRuler(const QXmlAttributes& /*attrib*/)
  2064. + {
  2065. +   m_parent->setDelegate(this);
  2066. +   printf("Start hruler\n");
  2067. + }
  2068. + void HRulerHandler::endHRuler()
  2069. + {
  2070. +   m_parent->setDelegate(0);
  2071. +   printf("End hruler\n");
  2072. + }
  2073. + //----------------------------------------------------------------------
  2074. + // RefHandler
  2075. + //----------------------------------------------------------------------
  2076. + RefHandler::RefHandler(IBaseHandler *parent)
  2077. +   : DocNode(Ref), m_parent(parent)
  2078. + {
  2079. +   addEndHandler("ref",this,&RefHandler::endRef);
  2080. + }
  2081. + RefHandler::~RefHandler()
  2082. + {
  2083. + }
  2084. + void RefHandler::startRef(const QXmlAttributes& attrib)
  2085. + {
  2086. +   m_parent->setDelegate(this);
  2087. +   m_refId = attrib.value("idref");
  2088. +   m_anchor = attrib.value("anchor");
  2089. +   printf("Start ref refId=%s anchor=%s\n",m_refId.data(),m_anchor.data());
  2090. +   m_curString="";
  2091. + }
  2092. + void RefHandler::endRef()
  2093. + {
  2094. +   m_linkText = m_curString;
  2095. +   m_parent->setDelegate(0);
  2096. +   printf("End ref: text=`%s'\n",m_linkText.data());
  2097. + }
  2098. + //----------------------------------------------------------------------
  2099. + // TitleHandler
  2100. + //----------------------------------------------------------------------
  2101. + TitleHandler::TitleHandler(IBaseHandler *parent)
  2102. +   : DocNode(Title), m_parent(parent)
  2103. + {
  2104. +   m_children.setAutoDelete(TRUE);
  2105. +   m_markupHandler = new MarkupHandler(m_children,m_curString);
  2106. +   setFallBackHandler(m_markupHandler);
  2107. +   addStartHandler("ref",this,&TitleHandler::startRef);
  2108. +   addEndHandler("title",this,&TitleHandler::endTitle);
  2109. + }
  2110. + TitleHandler::~TitleHandler()
  2111. + {
  2112. +   delete m_markupHandler;
  2113. + }
  2114. + void TitleHandler::startTitle(const QXmlAttributes& /*attrib*/)
  2115. + {
  2116. +   m_parent->setDelegate(this);
  2117. +   printf("Start title\n");
  2118. +   m_curString="";
  2119. + }
  2120. + void TitleHandler::endTitle()
  2121. + {
  2122. +   addTextNode();
  2123. +   m_parent->setDelegate(0);
  2124. +   printf("End title\n");
  2125. + }
  2126. + void TitleHandler::addTextNode()
  2127. + {
  2128. +   if (!m_curString.isEmpty())
  2129. +   {
  2130. +     m_children.append(new TextNode(m_curString,m_markupHandler->markup()));
  2131. +     printf("addTextNode() text=\"%s\" markup=%x\n",
  2132. +         m_curString.data(),m_markupHandler->markup());
  2133. +     m_curString="";
  2134. +   }
  2135. + }
  2136. + void TitleHandler::startRef(const QXmlAttributes& attrib)
  2137. + {
  2138. +   RefHandler *ref = new RefHandler(this);
  2139. +   ref->startRef(attrib);
  2140. +   m_children.append(ref);
  2141. + }
  2142. + //----------------------------------------------------------------------
  2143. + // SimpleSectHandler
  2144. + //----------------------------------------------------------------------
  2145. + SimpleSectHandler::SimpleSectHandler(IBaseHandler *parent)
  2146. +   : DocNode(Para), m_parent(parent), m_paragraph(0), m_title(0)
  2147. + {
  2148. +   addStartHandler("title",this,&SimpleSectHandler::startTitle);
  2149. +   addStartHandler("para",this,&SimpleSectHandler::startParagraph);
  2150. +   addEndHandler("simplesect",this,&SimpleSectHandler::endSimpleSect);
  2151. + }
  2152. + SimpleSectHandler::~SimpleSectHandler()
  2153. + {
  2154. + }
  2155. + void SimpleSectHandler::startSimpleSect(const QXmlAttributes& attrib)
  2156. + {
  2157. +   m_type = g_typeMapper.stringToType(attrib.value("kind"));
  2158. +   printf("start simple section %s\n",attrib.value("kind").data());
  2159. +   m_parent->setDelegate(this);
  2160. + }
  2161. + void SimpleSectHandler::endSimpleSect()
  2162. + {
  2163. +   printf("end simple section\n");
  2164. +   m_parent->setDelegate(0);
  2165. + }
  2166. + void SimpleSectHandler::startTitle(const QXmlAttributes& attrib)
  2167. + {
  2168. +   ASSERT(m_title==0);
  2169. +   m_title = new TitleHandler(this);
  2170. +   m_title->startTitle(attrib);
  2171. + }
  2172. + void SimpleSectHandler::startParagraph(const QXmlAttributes& attrib)
  2173. + {
  2174. +   ASSERT(m_paragraph==0);
  2175. +   m_paragraph = new ParagraphHandler(this);
  2176. +   m_paragraph->startParagraph(attrib);
  2177. + }
  2178. + //----------------------------------------------------------------------
  2179. + // VariableListEntryHandler
  2180. + //----------------------------------------------------------------------
  2181. + VariableListEntryHandler::VariableListEntryHandler(IBaseHandler *parent)
  2182. +    : DocNode(VariableListEntry), m_parent(parent), m_description(0)
  2183. + {
  2184. +   addStartHandler("term",this,&VariableListEntryHandler::startTerm);
  2185. +   addEndHandler("term",this,&VariableListEntryHandler::endTerm);
  2186. +   addStartHandler("para",this,&VariableListEntryHandler::startParagraph);
  2187. +   addEndHandler("varlistentry",this,&VariableListEntryHandler::endVarListEntry);
  2188. +   addEndHandler("listitem",this,&VariableListEntryHandler::endListItem);
  2189. + }
  2190. + VariableListEntryHandler::~VariableListEntryHandler()
  2191. + {
  2192. +   delete m_description;
  2193. + }
  2194. + void VariableListEntryHandler::startVarListEntry(const QXmlAttributes& /*attrib*/)
  2195. + {
  2196. +   m_parent->setDelegate(this);
  2197. +   printf("start varlistentry\n");
  2198. + }
  2199. + void VariableListEntryHandler::endVarListEntry()
  2200. + {
  2201. +   m_parent->setDelegate(0);
  2202. +   printf("end varlistentry\n");
  2203. + }
  2204. + void VariableListEntryHandler::startListItem(const QXmlAttributes& /*attrib*/)
  2205. + {
  2206. +   m_parent->setDelegate(this);
  2207. +   printf("start listitem\n");
  2208. + }
  2209. + void VariableListEntryHandler::endListItem()
  2210. + {
  2211. +   m_parent->setDelegate(0);
  2212. +   printf("end listitem\n");
  2213. + }
  2214. + void VariableListEntryHandler::startTerm(const QXmlAttributes& /*attrib*/)
  2215. + {
  2216. +   m_curString="";
  2217. + }
  2218. + void VariableListEntryHandler::endTerm()
  2219. + {
  2220. +   m_term = m_curString;
  2221. +   printf("term=%s\n",m_term.data());
  2222. + }
  2223. + void VariableListEntryHandler::startParagraph(const QXmlAttributes& attrib)
  2224. + {
  2225. +   ASSERT(m_description==0);
  2226. +   m_description = new ParagraphHandler(this);
  2227. +   m_description->startParagraph(attrib);
  2228. + }
  2229. + //----------------------------------------------------------------------
  2230. + // VariableListHandler
  2231. + //----------------------------------------------------------------------
  2232. + VariableListHandler::VariableListHandler(IBaseHandler *parent) 
  2233. +   : DocNode(VariableList), m_parent(parent)
  2234. + {
  2235. +   m_entries.setAutoDelete(TRUE);
  2236. +   addStartHandler("varlistentry",this,&VariableListHandler::startVarListEntry);
  2237. +   addStartHandler("listitem",this,&VariableListHandler::startListItem);
  2238. +   addEndHandler("variablelist",this,&VariableListHandler::endVariableList);
  2239. + }
  2240. + VariableListHandler::~VariableListHandler()
  2241. + {
  2242. + }
  2243. + void VariableListHandler::startVariableList(const QXmlAttributes& /*attrib*/)
  2244. + {
  2245. +   m_parent->setDelegate(this);
  2246. +   printf("start variablelist\n");
  2247. + }
  2248. + void VariableListHandler::endVariableList()
  2249. + {
  2250. +   printf("end variablelist\n");
  2251. +   m_parent->setDelegate(0);
  2252. + }
  2253. + void VariableListHandler::startVarListEntry(const QXmlAttributes& attrib)
  2254. + {
  2255. +   VariableListEntryHandler *vle = new VariableListEntryHandler(this);
  2256. +   vle->startVarListEntry(attrib);
  2257. +   m_curEntry = vle;
  2258. +   m_entries.append(vle);
  2259. + }
  2260. + void VariableListHandler::startListItem(const QXmlAttributes& attrib)
  2261. + {
  2262. +   ASSERT(m_curEntry!=0);
  2263. +   m_curEntry->startListItem(attrib);
  2264. + }
  2265. + //----------------------------------------------------------------------
  2266. + // HighlightHandler
  2267. + //----------------------------------------------------------------------
  2268. + HighlightHandler::HighlightHandler(IBaseHandler *parent)
  2269. +   : DocNode(Highlight), m_parent(parent)
  2270. + {
  2271. +   addEndHandler("highlight",this,&HighlightHandler::endHighlight);
  2272. + }
  2273. + HighlightHandler::~HighlightHandler()
  2274. + {
  2275. + }
  2276. + void HighlightHandler::startHighlight(const QXmlAttributes& attrib)
  2277. + {
  2278. +   m_class = attrib.value("class");
  2279. +   m_curString="";
  2280. +   m_parent->setDelegate(this);
  2281. + }
  2282. + void HighlightHandler::endHighlight()
  2283. + {
  2284. +   m_text = m_curString;
  2285. +   printf("highlight class=`%s' text=`%s'\n",m_class.data(),m_text.data());
  2286. +   m_parent->setDelegate(0);
  2287. + }
  2288. + //----------------------------------------------------------------------
  2289. + // CodeLineHandler
  2290. + //----------------------------------------------------------------------
  2291. + CodeLineHandler::CodeLineHandler(IBaseHandler *parent)
  2292. +   : DocNode(CodeLine), m_parent(parent)
  2293. + {
  2294. +   m_children.setAutoDelete(TRUE);
  2295. +   addEndHandler("codeline",this,&CodeLineHandler::endCodeLine);
  2296. +   addEndHandler("linenumber",this,&CodeLineHandler::endLineNumber);
  2297. +   addStartHandler("highlight",this,&CodeLineHandler::startHighlight);
  2298. +   addStartHandler("ref",this,&CodeLineHandler::startRef);
  2299. +   m_lineNumber = 0;
  2300. + }
  2301. + CodeLineHandler::~CodeLineHandler()
  2302. + {
  2303. + }
  2304. + void CodeLineHandler::startCodeLine(const QXmlAttributes& /*attrib*/)
  2305. + {
  2306. +   m_parent->setDelegate(this);
  2307. +   printf("start codeline\n");
  2308. + }
  2309. + void CodeLineHandler::endCodeLine()
  2310. + {
  2311. +   addTextNode();
  2312. +   printf("end codeline\n");
  2313. +   m_parent->setDelegate(0);
  2314. + }
  2315. + void CodeLineHandler::startLineNumber(const QXmlAttributes& attrib)
  2316. + {
  2317. +   m_parent->setDelegate(this);
  2318. +   printf("start linenumber\n");
  2319. +   m_lineNumber = attrib.value("line").toInt();
  2320. +   m_refId = attrib.value("refid");
  2321. + }
  2322. + void CodeLineHandler::endLineNumber()
  2323. + {
  2324. +   m_parent->setDelegate(0);
  2325. + }
  2326. + void CodeLineHandler::startHighlight(const QXmlAttributes& attrib)
  2327. + {
  2328. +   addTextNode();
  2329. +   HighlightHandler *hlh = new HighlightHandler(this);
  2330. +   m_children.append(hlh);
  2331. +   hlh->startHighlight(attrib);
  2332. + }
  2333. + void CodeLineHandler::startRef(const QXmlAttributes& attrib)
  2334. + {
  2335. +   addTextNode();
  2336. +   RefHandler *rh = new RefHandler(this);
  2337. +   m_children.append(rh);
  2338. +   rh->startRef(attrib);
  2339. + }
  2340. + void CodeLineHandler::addTextNode()
  2341. + {
  2342. +   if (!m_curString.isEmpty())
  2343. +   {
  2344. +     m_children.append(new TextNode(m_curString,DocNode::Normal));
  2345. +     printf("addTextNode() text=\"%s\"\n",
  2346. +         m_curString.data());
  2347. +     m_curString="";
  2348. +   }
  2349. + }
  2350. + //----------------------------------------------------------------------
  2351. + // ProgramListingHandler
  2352. + //----------------------------------------------------------------------
  2353. + ProgramListingHandler::ProgramListingHandler(IBaseHandler *parent)
  2354. +   : DocNode(ProgramListing), m_parent(parent)
  2355. + {
  2356. +   m_children.setAutoDelete(TRUE);
  2357. +   m_hasLineNumber=FALSE;
  2358. +   addEndHandler("programlisting",this,&ProgramListingHandler::endProgramListing);
  2359. +   addStartHandler("linenumber",this,&ProgramListingHandler::startLineNumber);
  2360. +   addStartHandler("codeline",this,&ProgramListingHandler::startCodeLine);
  2361. + }
  2362. + ProgramListingHandler::~ProgramListingHandler()
  2363. + {
  2364. + }
  2365. + void ProgramListingHandler::startProgramListing(const QXmlAttributes& /*attrib*/)
  2366. + {
  2367. +   m_parent->setDelegate(this);
  2368. +   printf("start programlisting\n");
  2369. + }
  2370. + void ProgramListingHandler::endProgramListing()
  2371. + {
  2372. +   printf("end programlisting\n");
  2373. +   m_parent->setDelegate(0);
  2374. + }
  2375. + void ProgramListingHandler::startLineNumber(const QXmlAttributes& attrib)
  2376. + {
  2377. +   CodeLineHandler *clh = new CodeLineHandler(this);
  2378. +   m_children.append(clh);
  2379. +   m_hasLineNumber=TRUE;
  2380. +   clh->startLineNumber(attrib);
  2381. + }
  2382. +   
  2383. + void ProgramListingHandler::startCodeLine(const QXmlAttributes& attrib)
  2384. + {
  2385. +   CodeLineHandler *clh = 0;
  2386. +   if (!m_hasLineNumber) 
  2387. +   {
  2388. +     clh = new CodeLineHandler(this);
  2389. +     m_children.append(clh);
  2390. +   }
  2391. +   else
  2392. +   {
  2393. +     clh = m_children.getLast();
  2394. +   }
  2395. +   ASSERT(clh!=0);
  2396. +   clh->startCodeLine(attrib);
  2397. +   m_hasLineNumber=FALSE; 
  2398. + }
  2399. + //----------------------------------------------------------------------
  2400. + // FormulaHandler
  2401. + //----------------------------------------------------------------------
  2402. + FormulaHandler::FormulaHandler(IBaseHandler *parent)
  2403. +   : DocNode(Formula), m_parent(parent)
  2404. + {
  2405. +   addEndHandler("formula",this,&FormulaHandler::endFormula);
  2406. + }
  2407. + FormulaHandler::~FormulaHandler()
  2408. + {
  2409. + }
  2410. + void FormulaHandler::startFormula(const QXmlAttributes& attrib)
  2411. + {
  2412. +   m_id = attrib.value("id");
  2413. +   m_curString="";
  2414. +   m_parent->setDelegate(this);
  2415. + }
  2416. + void FormulaHandler::endFormula()
  2417. + {
  2418. +   m_text = m_curString;
  2419. +   printf("formula id=`%s' text=`%s'\n",m_id.data(),m_text.data());
  2420. +   m_parent->setDelegate(0);
  2421. + }
  2422. + //----------------------------------------------------------------------
  2423. + // ImageHandler
  2424. + //----------------------------------------------------------------------
  2425. + ImageHandler::ImageHandler(IBaseHandler *parent)
  2426. +   : DocNode(Image), m_parent(parent)
  2427. + {
  2428. +   addEndHandler("image",this,&ImageHandler::endImage);
  2429. + }
  2430. + ImageHandler::~ImageHandler()
  2431. + {
  2432. + }
  2433. + void ImageHandler::startImage(const QXmlAttributes& attrib)
  2434. + {
  2435. +   m_name = attrib.value("name");
  2436. +   m_curString="";
  2437. +   m_parent->setDelegate(this);
  2438. + }
  2439. + void ImageHandler::endImage()
  2440. + {
  2441. +   m_caption = m_curString;
  2442. +   printf("image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data());
  2443. +   m_parent->setDelegate(0);
  2444. + }
  2445. + //----------------------------------------------------------------------
  2446. + // DotFileHandler
  2447. + //----------------------------------------------------------------------
  2448. + DotFileHandler::DotFileHandler(IBaseHandler *parent)
  2449. +   : DocNode(DotFile), m_parent(parent)
  2450. + {
  2451. +   addEndHandler("image",this,&DotFileHandler::endDotFile);
  2452. + }
  2453. + DotFileHandler::~DotFileHandler()
  2454. + {
  2455. + }
  2456. + void DotFileHandler::startDotFile(const QXmlAttributes& attrib)
  2457. + {
  2458. +   m_name = attrib.value("name");
  2459. +   m_curString="";
  2460. +   m_parent->setDelegate(this);
  2461. + }
  2462. + void DotFileHandler::endDotFile()
  2463. + {
  2464. +   m_caption = m_curString;
  2465. +   printf("image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data());
  2466. +   m_parent->setDelegate(0);
  2467. + }
  2468. + //----------------------------------------------------------------------
  2469. + // IndexEntryHandler
  2470. + //----------------------------------------------------------------------
  2471. + IndexEntryHandler::IndexEntryHandler(IBaseHandler *parent)
  2472. +   : DocNode(IndexEntry), m_parent(parent)
  2473. + {
  2474. +   addEndHandler("indexentry",this,&IndexEntryHandler::endIndexEntry);
  2475. +   addStartHandler("primaryie",this,&IndexEntryHandler::startPrimaryIE);
  2476. +   addEndHandler("primaryie",this,&IndexEntryHandler::endPrimaryIE);
  2477. +   addStartHandler("secondaryie",this,&IndexEntryHandler::startSecondaryIE);
  2478. +   addEndHandler("secondaryie",this,&IndexEntryHandler::endSecondaryIE);
  2479. + }
  2480. + IndexEntryHandler::~IndexEntryHandler()
  2481. + {
  2482. + }
  2483. + void IndexEntryHandler::startIndexEntry(const QXmlAttributes& /*attrib*/)
  2484. + {
  2485. +   printf("start index entry\n");
  2486. +   m_parent->setDelegate(this);
  2487. + }
  2488. + void IndexEntryHandler::endIndexEntry()
  2489. + {
  2490. +   printf("index entry primary=`%s' secondary=`%s'\n",
  2491. +       m_primary.data(),m_secondary.data());
  2492. +   m_parent->setDelegate(0);
  2493. + }
  2494. + void IndexEntryHandler::startPrimaryIE(const QXmlAttributes& /*attrib*/)
  2495. + {
  2496. +   m_curString="";
  2497. + }
  2498. + void IndexEntryHandler::endPrimaryIE()
  2499. + {
  2500. +   m_primary = m_curString;
  2501. + }
  2502. + void IndexEntryHandler::startSecondaryIE(const QXmlAttributes& /*attrib*/)
  2503. + {
  2504. +   m_curString="";
  2505. + }
  2506. + void IndexEntryHandler::endSecondaryIE()
  2507. + {
  2508. +   m_secondary = m_curString;
  2509. + }
  2510. + //----------------------------------------------------------------------
  2511. + // EntryHandler
  2512. + //----------------------------------------------------------------------
  2513. + EntryHandler::EntryHandler(IBaseHandler *parent)
  2514. +   : DocNode(Entry), m_parent(parent)
  2515. + {
  2516. +   m_children.setAutoDelete(TRUE);
  2517. +   addEndHandler("entry",this,&EntryHandler::endEntry);
  2518. +   addStartHandler("para",this,&EntryHandler::startParagraph);
  2519. + }
  2520. + EntryHandler::~EntryHandler()
  2521. + {
  2522. + }
  2523. + void EntryHandler::startEntry(const QXmlAttributes&)
  2524. + {
  2525. +   m_parent->setDelegate(this);
  2526. + }
  2527. + void EntryHandler::endEntry()
  2528. + {
  2529. +   m_parent->setDelegate(0);
  2530. + }
  2531. + void EntryHandler::startParagraph(const QXmlAttributes& attrib)
  2532. + {
  2533. +   ParagraphHandler *ph = new ParagraphHandler(this);
  2534. +   ph->startParagraph(attrib);
  2535. +   m_children.append(ph);
  2536. + }
  2537. + //----------------------------------------------------------------------
  2538. + // RowHandler
  2539. + //----------------------------------------------------------------------
  2540. + RowHandler::RowHandler(IBaseHandler *parent)
  2541. +   : DocNode(Row), m_parent(parent)
  2542. + {
  2543. +   m_children.setAutoDelete(TRUE);
  2544. +   addEndHandler("row",this,&RowHandler::endRow);
  2545. +   addStartHandler("entry",this,&RowHandler::startEntry);
  2546. + }
  2547. + RowHandler::~RowHandler()
  2548. + {
  2549. + }
  2550. + void RowHandler::startRow(const QXmlAttributes&)
  2551. + {
  2552. +   m_parent->setDelegate(this);
  2553. + }
  2554. + void RowHandler::endRow()
  2555. + {
  2556. +   m_parent->setDelegate(0);
  2557. + }
  2558. + void RowHandler::startEntry(const QXmlAttributes& attrib)
  2559. + {
  2560. +   EntryHandler *eh = new EntryHandler(this);
  2561. +   eh->startEntry(attrib);
  2562. +   m_children.append(eh);
  2563. + }
  2564. + //----------------------------------------------------------------------
  2565. + // TableHandler
  2566. + //----------------------------------------------------------------------
  2567. + TableHandler::TableHandler(IBaseHandler *parent)
  2568. +   : DocNode(Table), m_parent(parent)
  2569. + {
  2570. +   m_children.setAutoDelete(TRUE);
  2571. +   addEndHandler("table",this,&TableHandler::endTable);
  2572. +   addStartHandler("row",this,&TableHandler::startRow);
  2573. + }
  2574. + TableHandler::~TableHandler()
  2575. + {
  2576. + }
  2577. + void TableHandler::startTable(const QXmlAttributes& attrib)
  2578. + {
  2579. +   m_parent->setDelegate(this);
  2580. +   m_numColumns = attrib.value("cols").toInt();
  2581. +   printf("table cols=%d\n",m_numColumns);
  2582. + }
  2583. + void TableHandler::endTable()
  2584. + {
  2585. +   m_parent->setDelegate(0);
  2586. + }
  2587. + void TableHandler::startRow(const QXmlAttributes& attrib)
  2588. + {
  2589. +   RowHandler *rh = new RowHandler(this);
  2590. +   rh->startRow(attrib);
  2591. +   m_children.append(rh);
  2592. + }
  2593. + //----------------------------------------------------------------------
  2594. + // ParagraphHandler
  2595. + //----------------------------------------------------------------------
  2596. + ParagraphHandler::ParagraphHandler(IBaseHandler *parent) 
  2597. +   : DocNode(Para), m_parent(parent)
  2598. + {
  2599. +   m_children.setAutoDelete(TRUE);
  2600. +   m_markupHandler = new MarkupHandler(m_children,m_curString);
  2601. +   setFallBackHandler(m_markupHandler);
  2602. +   addEndHandler("para",this,&ParagraphHandler::endParagraph);
  2603. +   addStartHandler("itemizedlist",this,&ParagraphHandler::startItemizedList);
  2604. +   addStartHandler("orderedlist",this,&ParagraphHandler::startOrderedList);
  2605. +   addStartHandler("parameterlist",this,&ParagraphHandler::startParameterList);
  2606. +   addStartHandler("simplesect",this,&ParagraphHandler::startSimpleSect);
  2607. +   addStartHandler("ref",this,&ParagraphHandler::startRef);
  2608. +   addStartHandler("variablelist",this,&ParagraphHandler::startVariableList);
  2609. +   addStartHandler("hruler",this,&ParagraphHandler::startHRuler);
  2610. +   addStartHandler("linebreak",this,&ParagraphHandler::startLineBreak);
  2611. +   addStartHandler("ulink",this,&ParagraphHandler::startULink);
  2612. +   addStartHandler("email",this,&ParagraphHandler::startEMail);
  2613. +   addStartHandler("link",this,&ParagraphHandler::startLink);
  2614. +   addStartHandler("programlisting",this,&ParagraphHandler::startProgramListing);
  2615. +   addStartHandler("formula",this,&ParagraphHandler::startFormula);
  2616. +   addStartHandler("image",this,&ParagraphHandler::startImage);
  2617. +   addStartHandler("dotfile",this,&ParagraphHandler::startDotFile);
  2618. +   addStartHandler("indexentry",this,&ParagraphHandler::startIndexEntry);
  2619. +   addStartHandler("table",this,&ParagraphHandler::startTable);
  2620. + }
  2621. + ParagraphHandler::~ParagraphHandler()
  2622. + {
  2623. +   delete m_markupHandler;
  2624. + }
  2625. + void ParagraphHandler::startParagraph(const QXmlAttributes& /*attrib*/)
  2626. + {
  2627. +   m_parent->setDelegate(this);
  2628. +   printf("para\n");
  2629. + }
  2630. + void ParagraphHandler::endParagraph()
  2631. + {
  2632. +   addTextNode();
  2633. +   printf("end para\n");
  2634. +   m_parent->setDelegate(0);
  2635. + }
  2636. + void ParagraphHandler::startItemizedList(const QXmlAttributes& attrib)
  2637. + {
  2638. +   addTextNode();
  2639. +   ListHandler *listHandler = new ListHandler(ItemizedList,this);
  2640. +   listHandler->startList(attrib);
  2641. +   m_children.append(listHandler);
  2642. + }
  2643. + void ParagraphHandler::startOrderedList(const QXmlAttributes& attrib)
  2644. + {
  2645. +   addTextNode();
  2646. +   ListHandler *listHandler = new ListHandler(OrderedList,this);
  2647. +   listHandler->startList(attrib);
  2648. +   m_children.append(listHandler);
  2649. + }
  2650. + void ParagraphHandler::startParameterList(const QXmlAttributes& attrib)
  2651. + {
  2652. +   addTextNode();
  2653. +   ParameterListHandler *parListHandler = new ParameterListHandler(this);
  2654. +   parListHandler->startParameterList(attrib);
  2655. +   m_children.append(parListHandler);
  2656. + }
  2657. + void ParagraphHandler::startSimpleSect(const QXmlAttributes& attrib)
  2658. + {
  2659. +   addTextNode();
  2660. +   SimpleSectHandler *sectHandler = new SimpleSectHandler(this);
  2661. +   sectHandler->startSimpleSect(attrib);
  2662. +   m_children.append(sectHandler);
  2663. + }
  2664. + void ParagraphHandler::startRef(const QXmlAttributes& attrib)
  2665. + {
  2666. +   addTextNode();
  2667. +   RefHandler *ref = new RefHandler(this);
  2668. +   ref->startRef(attrib);
  2669. +   m_children.append(ref);
  2670. + }
  2671. + void ParagraphHandler::startVariableList(const QXmlAttributes& attrib)
  2672. + {
  2673. +   addTextNode();
  2674. +   VariableListHandler *vl = new VariableListHandler(this);
  2675. +   vl->startVariableList(attrib);
  2676. +   m_children.append(vl);
  2677. + }
  2678. + void ParagraphHandler::startHRuler(const QXmlAttributes& attrib)
  2679. + {
  2680. +   addTextNode();
  2681. +   HRulerHandler *hr = new HRulerHandler(this);
  2682. +   hr->startHRuler(attrib);
  2683. +   m_children.append(hr);
  2684. + }
  2685. + void ParagraphHandler::startLineBreak(const QXmlAttributes& attrib)
  2686. + {
  2687. +   addTextNode();
  2688. +   LineBreakHandler *lb = new LineBreakHandler(this);
  2689. +   lb->startLineBreak(attrib);
  2690. +   m_children.append(lb);
  2691. + }
  2692. + void ParagraphHandler::startULink(const QXmlAttributes& attrib)
  2693. + {
  2694. +   addTextNode();
  2695. +   ULinkHandler *uh = new ULinkHandler(this);
  2696. +   uh->startULink(attrib);
  2697. +   m_children.append(uh);
  2698. + }
  2699. + void ParagraphHandler::startEMail(const QXmlAttributes& attrib)
  2700. + {
  2701. +   addTextNode();
  2702. +   EMailHandler *eh = new EMailHandler(this);
  2703. +   eh->startEMail(attrib);
  2704. +   m_children.append(eh);
  2705. + }
  2706. + void ParagraphHandler::startLink(const QXmlAttributes& attrib)
  2707. + {
  2708. +   addTextNode();
  2709. +   LinkHandler *lh = new LinkHandler(this);
  2710. +   lh->startLink(attrib);
  2711. +   m_children.append(lh);
  2712. + }
  2713. + void ParagraphHandler::startProgramListing(const QXmlAttributes& attrib)
  2714. + {
  2715. +   addTextNode();
  2716. +   ProgramListingHandler *pl = new ProgramListingHandler(this);
  2717. +   pl->startProgramListing(attrib);
  2718. +   m_children.append(pl);
  2719. + }
  2720. + void ParagraphHandler::startFormula(const QXmlAttributes& attrib)
  2721. + {
  2722. +   addTextNode();
  2723. +   FormulaHandler *fh = new FormulaHandler(this);
  2724. +   fh->startFormula(attrib);
  2725. +   m_children.append(fh);
  2726. + }
  2727. + void ParagraphHandler::startImage(const QXmlAttributes& attrib)
  2728. + {
  2729. +   addTextNode();
  2730. +   ImageHandler *ih = new ImageHandler(this);
  2731. +   ih->startImage(attrib);
  2732. +   m_children.append(ih);
  2733. + }
  2734. + void ParagraphHandler::startDotFile(const QXmlAttributes& attrib)
  2735. + {
  2736. +   addTextNode();
  2737. +   DotFileHandler *df = new DotFileHandler(this);
  2738. +   df->startDotFile(attrib);
  2739. +   m_children.append(df);
  2740. + }
  2741. + void ParagraphHandler::startIndexEntry(const QXmlAttributes& attrib)
  2742. + {
  2743. +   addTextNode();
  2744. +   IndexEntryHandler *df = new IndexEntryHandler(this);
  2745. +   df->startIndexEntry(attrib);
  2746. +   m_children.append(df);
  2747. + }
  2748. + void ParagraphHandler::startTable(const QXmlAttributes& attrib)
  2749. + {
  2750. +   addTextNode();
  2751. +   TableHandler *th = new TableHandler(this);
  2752. +   th->startTable(attrib);
  2753. +   m_children.append(th);
  2754. + }
  2755. + void ParagraphHandler::addTextNode()
  2756. + {
  2757. +   if (!m_curString.isEmpty())
  2758. +   {
  2759. +     m_children.append(new TextNode(m_curString,m_markupHandler->markup()));
  2760. +     printf("addTextNode() text=\"%s\" markup=%x\n",
  2761. +         m_curString.data(),m_markupHandler->markup());
  2762. +     m_curString="";
  2763. +   }
  2764. + }
  2765. + //----------------------------------------------------------------------
  2766. + // DocHandler
  2767. + //----------------------------------------------------------------------
  2768. + DocHandler::DocHandler(IBaseHandler *parent) : m_parent(parent)
  2769. + {
  2770. +   m_children.setAutoDelete(TRUE);
  2771. +   addEndHandler("briefdescription",this,&DocHandler::endDoc);
  2772. +   addEndHandler("detaileddescription",this,&DocHandler::endDoc);
  2773. +   addStartHandler("para",this,&DocHandler::startParagraph);
  2774. + }
  2775. + DocHandler::~DocHandler()
  2776. + {
  2777. + }
  2778. + void DocHandler::startDoc(const QXmlAttributes& /*attrib*/)
  2779. + {
  2780. +   m_parent->setDelegate(this);
  2781. +   printf("start dochandler\n");
  2782. + }
  2783. + void DocHandler::endDoc()
  2784. + {
  2785. +   printf("end dochandler\n");
  2786. +   m_parent->setDelegate(0);
  2787. + }
  2788. + void DocHandler::startParagraph(const QXmlAttributes& attrib)
  2789. + {
  2790. +   ParagraphHandler *parHandler = new ParagraphHandler(this);
  2791. +   parHandler->startParagraph(attrib);
  2792. +   m_children.append(parHandler);
  2793. + }
  2794. Index: addon/xmlparse/dochandler.h
  2795. ===================================================================
  2796. RCS file: addon/xmlparse/dochandler.h
  2797. diff -N addon/xmlparse/dochandler.h
  2798. *** /dev/null    1 Jan 1970 00:00:00 -0000
  2799. --- addon/xmlparse/dochandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  2800. ***************
  2801. *** 0 ****
  2802. --- 1,749 ----
  2803. + /******************************************************************************
  2804. +  *
  2805. +  * $Id$
  2806. +  *
  2807. +  *
  2808. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  2809. +  *
  2810. +  * Permission to use, copy, modify, and distribute this software and its
  2811. +  * documentation under the terms of the GNU General Public License is hereby 
  2812. +  * granted. No representations are made about the suitability of this software 
  2813. +  * for any purpose. It is provided "as is" without express or implied warranty.
  2814. +  * See the GNU General Public License for more details.
  2815. +  *
  2816. +  */
  2817. + #ifndef _DOCHANDLER_H
  2818. + #define _DOCHANDLER_H
  2819. + #include <qstring.h>
  2820. + #include <qlist.h>
  2821. + #include <qxml.h>
  2822. + #include "basehandler.h"
  2823. + class ParagraphHandler;
  2824. + //-----------------------------------------------------------------------------
  2825. + /*! \brief Node of a structured documentation tree.
  2826. +  *
  2827. +  */
  2828. + class DocNode
  2829. + {
  2830. +   public:
  2831. +     enum Markup 
  2832. +     { 
  2833. +       Normal         = 0x00,
  2834. +       Bold           = 0x01,
  2835. +       Emphasis       = 0x02,
  2836. +       ComputerOutput = 0x04,
  2837. +       Subscript      = 0x08,
  2838. +       Superscript    = 0x10,
  2839. +       SmallFont      = 0x20,
  2840. +       Center         = 0x40
  2841. +     };
  2842. +     enum NodeKind 
  2843. +     { 
  2844. +       Para,
  2845. +       Text,
  2846. +       MarkupModifier,
  2847. +       ItemizedList,
  2848. +       OrderedList,
  2849. +       ListItem,
  2850. +       ParameterList,
  2851. +       Parameter,
  2852. +       SimpleSect,
  2853. +       Title,
  2854. +       Ref,
  2855. +       VariableList,
  2856. +       VariableListEntry,
  2857. +       HRuler,
  2858. +       LineBreak,
  2859. +       ULink,
  2860. +       EMail,
  2861. +       Link,
  2862. +       ProgramListing,
  2863. +       CodeLine,
  2864. +       Highlight,
  2865. +       Anchor,
  2866. +       Formula,
  2867. +       Image,
  2868. +       DotFile,
  2869. +       IndexEntry,
  2870. +       Table,
  2871. +       Row,
  2872. +       Entry
  2873. +     };
  2874. +     DocNode(NodeKind k) : m_kind(k) {}
  2875. +     virtual ~DocNode() {}
  2876. +     
  2877. +   private:
  2878. +     NodeKind m_kind;
  2879. + };
  2880. + //-----------------------------------------------------------------------------
  2881. + /*! \brief Node representing a piece of text.
  2882. +  *
  2883. +  */
  2884. + class TextNode : public DocNode
  2885. + {
  2886. +   public:
  2887. +     TextNode(const QString &t,int markup) 
  2888. +       : DocNode(Text), m_text(t), m_markup(markup) {}
  2889. +   
  2890. +   private:  
  2891. +     QString m_text;
  2892. +     int m_markup;
  2893. + };
  2894. + //-----------------------------------------------------------------------------
  2895. + /*! \brief Node representing a change in the markup style.
  2896. +  *
  2897. +  */
  2898. + class MarkupModifierNode : public DocNode
  2899. + {
  2900. +   public:
  2901. +     MarkupModifierNode(int markup,bool enabled) 
  2902. +       : DocNode(MarkupModifier), m_markup(markup), m_enabled(enabled) {}
  2903. +   
  2904. +   private:
  2905. +     int m_markup;
  2906. +     bool m_enabled;
  2907. + };
  2908. + //-----------------------------------------------------------------------------
  2909. + /*! \brief Handles markup commands in the XML input. 
  2910. +  *
  2911. +  */
  2912. + class MarkupHandler : public BaseFallBackHandler<MarkupHandler>
  2913. + {
  2914. +   public:
  2915. +     MarkupHandler(QList<DocNode> &children,QString &curString);
  2916. +     virtual ~MarkupHandler();
  2917. +     int markup() const { return m_curMarkup; }
  2918. +     virtual void startBold(const QXmlAttributes &attrib);
  2919. +     virtual void endBold();
  2920. +     virtual void startEmphasis(const QXmlAttributes &attrib);
  2921. +     virtual void endEmphasis();
  2922. +     virtual void startComputerOutput(const QXmlAttributes &attrib);
  2923. +     virtual void endComputerOutput();
  2924. +     virtual void startCenter(const QXmlAttributes &attrib);
  2925. +     virtual void endCenter();
  2926. +     virtual void startSmallFont(const QXmlAttributes &attrib);
  2927. +     virtual void endSmallFont();
  2928. +     virtual void startSubscript(const QXmlAttributes &attrib);
  2929. +     virtual void endSubscript();
  2930. +     virtual void startSuperscript(const QXmlAttributes &attrib);
  2931. +     virtual void endSuperscript();
  2932. +   private:
  2933. +     void addTextNode();
  2934. +     QList<DocNode> &m_children;
  2935. +     QString        &m_curString;
  2936. +     int             m_curMarkup;
  2937. + };
  2938. + //-----------------------------------------------------------------------------
  2939. + /*! \brief Node representing a list item.
  2940. +  *
  2941. +  */
  2942. + class ListItemHandler : public DocNode, public BaseHandler<ListItemHandler>
  2943. + {
  2944. +   public:
  2945. +     ListItemHandler(IBaseHandler *parent);
  2946. +     virtual ~ListItemHandler();
  2947. +     virtual void startListItem(const QXmlAttributes& attrib);
  2948. +     virtual void endListItem();
  2949. +     virtual void startParagraph(const QXmlAttributes& attrib);
  2950. +   private:
  2951. +     IBaseHandler   *m_parent;
  2952. +     QList<DocNode>  m_children;
  2953. + };
  2954. + //-----------------------------------------------------------------------------
  2955. + /*! \brief Node representing list of items.
  2956. +  *
  2957. +  */
  2958. + class ListHandler : public DocNode, public BaseHandler<ListHandler>
  2959. + {
  2960. +   public:
  2961. +     ListHandler(NodeKind k,IBaseHandler *parent);
  2962. +     virtual ~ListHandler();
  2963. +     virtual void startList(const QXmlAttributes& attrib);
  2964. +     virtual void endList();
  2965. +     virtual void startListItem(const QXmlAttributes& attrib);
  2966. +   private:
  2967. +     IBaseHandler   *m_parent;
  2968. +     QList<DocNode>  m_children;
  2969. + };
  2970. + //-----------------------------------------------------------------------------
  2971. + /*! \brief Node representing a parameter.
  2972. +  *
  2973. +  */
  2974. + class ParameterHandler : public DocNode, 
  2975. +                          public BaseHandler<ParameterHandler>
  2976. + {
  2977. +   public:
  2978. +     ParameterHandler(IBaseHandler *parent);
  2979. +     virtual ~ParameterHandler();
  2980. +     virtual void startParameterName(const QXmlAttributes& attrib);
  2981. +     virtual void endParameterName();
  2982. +     virtual void startParameterDescription(const QXmlAttributes& attrib);
  2983. +     virtual void endParameterDescription();
  2984. +     virtual void startParagraph(const QXmlAttributes& attrib);
  2985. +   private:
  2986. +     IBaseHandler     *m_parent;
  2987. +     QString           m_name;
  2988. +     ParagraphHandler *m_description;
  2989. + };
  2990. + //-----------------------------------------------------------------------------
  2991. + /* \brief Node representing a parameter list.
  2992. +  *
  2993. +  */
  2994. + class ParameterListHandler : public DocNode, 
  2995. +                              public BaseHandler<ParameterListHandler>
  2996. + {
  2997. +   public:
  2998. +     enum Types { Param, RetVal, Exception };
  2999. +     ParameterListHandler(IBaseHandler *parent);
  3000. +     virtual ~ParameterListHandler();
  3001. +     virtual void startParameterList(const QXmlAttributes& attrib);
  3002. +     virtual void endParameterList();
  3003. +     virtual void startParameterName(const QXmlAttributes& attrib);
  3004. +     virtual void startParameterDescription(const QXmlAttributes& attrib);
  3005. +   private:
  3006. +     IBaseHandler            *m_parent;
  3007. +     QList<ParameterHandler>  m_parameters;
  3008. +     ParameterHandler        *m_curParam;
  3009. +     Types                    m_type;
  3010. + };
  3011. + //-----------------------------------------------------------------------------
  3012. + /* \brief Node representing a horizontal ruler
  3013. +  *
  3014. +  */
  3015. + class LineBreakHandler : public DocNode, public BaseHandler<LineBreakHandler>
  3016. + {
  3017. +   public:
  3018. +     LineBreakHandler(IBaseHandler *parent);
  3019. +     virtual ~LineBreakHandler();
  3020. +     void startLineBreak(const QXmlAttributes& attrib);
  3021. +     void endLineBreak();
  3022. +   private:
  3023. +     IBaseHandler   *m_parent;
  3024. + };
  3025. + //-----------------------------------------------------------------------------
  3026. + /* \brief Node representing a link to section
  3027. +  *
  3028. +  */
  3029. + class LinkHandler : public DocNode, public BaseHandler<LinkHandler>
  3030. + {
  3031. +   public:
  3032. +     LinkHandler(IBaseHandler *parent);
  3033. +     virtual ~LinkHandler();
  3034. +     void startLink(const QXmlAttributes& attrib);
  3035. +     void endLink();
  3036. +   private:
  3037. +     IBaseHandler   *m_parent;
  3038. +     QString         m_ref;
  3039. +     QString         m_text;
  3040. + };
  3041. + //-----------------------------------------------------------------------------
  3042. + /* \brief Node representing a link to an email address
  3043. +  *
  3044. +  */
  3045. + class EMailHandler : public DocNode, public BaseHandler<EMailHandler>
  3046. + {
  3047. +   public:
  3048. +     EMailHandler(IBaseHandler *parent);
  3049. +     virtual ~EMailHandler();
  3050. +     void startEMail(const QXmlAttributes& attrib);
  3051. +     void endEMail();
  3052. +   private:
  3053. +     IBaseHandler   *m_parent;
  3054. +     QString         m_address;
  3055. + };
  3056. + //-----------------------------------------------------------------------------
  3057. + /* \brief Node representing a link to an URL
  3058. +  *
  3059. +  */
  3060. + class ULinkHandler : public DocNode, public BaseHandler<ULinkHandler>
  3061. + {
  3062. +   public:
  3063. +     ULinkHandler(IBaseHandler *parent);
  3064. +     virtual ~ULinkHandler();
  3065. +     void startULink(const QXmlAttributes& attrib);
  3066. +     void endULink();
  3067. +   private:
  3068. +     IBaseHandler   *m_parent;
  3069. +     QString         m_url;
  3070. +     QString         m_text;
  3071. + };
  3072. + //-----------------------------------------------------------------------------
  3073. + /* \brief Node representing a horizontal ruler
  3074. +  *
  3075. +  */
  3076. + class HRulerHandler : public DocNode, public BaseHandler<HRulerHandler>
  3077. + {
  3078. +   public:
  3079. +     HRulerHandler(IBaseHandler *parent);
  3080. +     virtual ~HRulerHandler();
  3081. +     void startHRuler(const QXmlAttributes& attrib);
  3082. +     void endHRuler();
  3083. +   private:
  3084. +     IBaseHandler   *m_parent;
  3085. + };
  3086. + //-----------------------------------------------------------------------------
  3087. + /* \brief Node representing a reference to another item
  3088. +  *
  3089. +  */
  3090. + class RefHandler : public DocNode, public BaseHandler<RefHandler>
  3091. + {
  3092. +   public:
  3093. +     RefHandler(IBaseHandler *parent);
  3094. +     virtual ~RefHandler();
  3095. +     void startRef(const QXmlAttributes& attrib);
  3096. +     void endRef();
  3097. +   private:
  3098. +     IBaseHandler   *m_parent;
  3099. +     QString        m_refId;
  3100. +     QString        m_anchor;
  3101. +     QString        m_linkText;
  3102. + };
  3103. + //-----------------------------------------------------------------------------
  3104. + /* \brief Node representing the title of a section
  3105. +  *
  3106. +  */
  3107. + // children: text, ref
  3108. + // children handled by MarkupHandler: 
  3109. + //           bold, computeroutput, emphasis, center,
  3110. + //           small, subscript, superscript. 
  3111. + class TitleHandler : public DocNode, public BaseHandler<TitleHandler>
  3112. + {
  3113. +   public:
  3114. +     TitleHandler(IBaseHandler *parent);
  3115. +     virtual ~TitleHandler();
  3116. +     virtual void startTitle(const QXmlAttributes& attrib);
  3117. +     virtual void endTitle();
  3118. +     virtual void startRef(const QXmlAttributes& attrib);
  3119. +     void addTextNode();
  3120. +   private:
  3121. +     IBaseHandler   *m_parent;
  3122. +     QList<DocNode>  m_children;
  3123. +     MarkupHandler  *m_markupHandler;
  3124. + };
  3125. + //-----------------------------------------------------------------------------
  3126. + /* \brief Node representing a simple section with an unnumbered header.
  3127. +  *
  3128. +  */
  3129. + // children: title, para
  3130. + class SimpleSectHandler : public DocNode, 
  3131. +                           public BaseHandler<SimpleSectHandler>
  3132. + {
  3133. +   public:
  3134. +     enum Types { Invalid = 0,
  3135. +                  See, Return, Author, Version, 
  3136. +                  Since, Date, Bug, Note,
  3137. +                  Warning, Par, Deprecated, Pre, 
  3138. +                  Post, Invar, Remark, Attention,
  3139. +                  Todo, Test, RCS, EnumValues, 
  3140. +                  Examples
  3141. +     };
  3142. +     SimpleSectHandler(IBaseHandler *parent);
  3143. +     virtual ~SimpleSectHandler();
  3144. +     virtual void startSimpleSect(const QXmlAttributes& attrib);
  3145. +     virtual void endSimpleSect();
  3146. +     virtual void startTitle(const QXmlAttributes& attrib);
  3147. +     virtual void startParagraph(const QXmlAttributes& attrib);
  3148. +   private:
  3149. +     IBaseHandler            *m_parent;
  3150. +     ParagraphHandler        *m_paragraph;
  3151. +     Types                    m_type;
  3152. +     TitleHandler            *m_title;
  3153. + };
  3154. + //-----------------------------------------------------------------------------
  3155. + /* \brief Node representing an named item of a VariableList.
  3156. +  *
  3157. +  */
  3158. + class VariableListEntryHandler : public DocNode, public BaseHandler<VariableListEntryHandler>
  3159. + {
  3160. +   public:
  3161. +     virtual void startVarListEntry(const QXmlAttributes& attrib);
  3162. +     virtual void endVarListEntry();
  3163. +     virtual void startListItem(const QXmlAttributes& attrib);
  3164. +     virtual void endListItem();
  3165. +     virtual void startTerm(const QXmlAttributes& attrib);
  3166. +     virtual void endTerm();
  3167. +     virtual void startParagraph(const QXmlAttributes& attrib);
  3168. +     VariableListEntryHandler(IBaseHandler *parent);
  3169. +     virtual ~VariableListEntryHandler();
  3170. +   private:
  3171. +     IBaseHandler     *m_parent;
  3172. +     QString           m_term;
  3173. +     ParagraphHandler *m_description;
  3174. + };
  3175. + //-----------------------------------------------------------------------------
  3176. + /*! \brief Node representing a list of named items.
  3177. +  *
  3178. +  */
  3179. + // children: varlistentry, listitem
  3180. + class VariableListHandler : public DocNode, public BaseHandler<VariableListHandler>
  3181. + {
  3182. +   public:
  3183. +     virtual void startVariableList(const QXmlAttributes& attrib);
  3184. +     virtual void endVariableList();
  3185. +     virtual void startVarListEntry(const QXmlAttributes& attrib);
  3186. +     virtual void startListItem(const QXmlAttributes& attrib);
  3187. +     
  3188. +     VariableListHandler(IBaseHandler *parent);
  3189. +     virtual ~VariableListHandler();
  3190. +   private:
  3191. +     IBaseHandler   *m_parent;
  3192. +     QList<VariableListEntryHandler> m_entries;
  3193. +     VariableListEntryHandler *m_curEntry;
  3194. + };
  3195. + //-----------------------------------------------------------------------------
  3196. + /*! \brief Node representing a highlighted text fragment.
  3197. +  *
  3198. +  */
  3199. + // children: -
  3200. + class HighlightHandler : public DocNode, public BaseHandler<HighlightHandler>
  3201. + {
  3202. +   public:
  3203. +     HighlightHandler(IBaseHandler *parent);
  3204. +     virtual ~HighlightHandler();
  3205. +     void startHighlight(const QXmlAttributes& attrib);
  3206. +     void endHighlight();
  3207. +   private:
  3208. +     IBaseHandler   *m_parent;
  3209. +     QString        m_class;
  3210. +     QString        m_text;
  3211. + };
  3212. + //-----------------------------------------------------------------------------
  3213. + /*! \brief Node representing a line of code.
  3214. +  *
  3215. +  */
  3216. + // children: linenumber, highlight, anchor, ref
  3217. + class CodeLineHandler : public DocNode, public BaseHandler<CodeLineHandler>
  3218. + {
  3219. +   public:
  3220. +     virtual void startCodeLine(const QXmlAttributes&);
  3221. +     virtual void endCodeLine();
  3222. +     virtual void startLineNumber(const QXmlAttributes&);
  3223. +     virtual void endLineNumber();
  3224. +     virtual void startHighlight(const QXmlAttributes&);
  3225. +     virtual void startRef(const QXmlAttributes&);
  3226. +     
  3227. +     CodeLineHandler(IBaseHandler *parent);
  3228. +     virtual ~CodeLineHandler();
  3229. +   private:
  3230. +     void addTextNode();
  3231. +     IBaseHandler   *m_parent;
  3232. +     int            m_lineNumber;
  3233. +     QString        m_refId;
  3234. +     QList<DocNode> m_children;
  3235. + };
  3236. + //-----------------------------------------------------------------------------
  3237. + /*! \brief Node representing a program listing
  3238. +  *
  3239. +  */
  3240. + // children: codeline, linenumber
  3241. + class ProgramListingHandler : public DocNode, public BaseHandler<ProgramListingHandler>
  3242. + {
  3243. +   public:
  3244. +     virtual void startProgramListing(const QXmlAttributes& attrib);
  3245. +     virtual void endProgramListing();
  3246. +     virtual void startCodeLine(const QXmlAttributes&);
  3247. +     virtual void startLineNumber(const QXmlAttributes&);
  3248. +     ProgramListingHandler(IBaseHandler *parent);
  3249. +     virtual ~ProgramListingHandler();
  3250. +   private:
  3251. +     IBaseHandler           *m_parent;
  3252. +     QList<CodeLineHandler>  m_children;
  3253. +     bool m_hasLineNumber;
  3254. + };
  3255. + //-----------------------------------------------------------------------------
  3256. + /*! \brief Node representing a formula.
  3257. +  *
  3258. +  */
  3259. + // children: -
  3260. + class FormulaHandler : public DocNode, public BaseHandler<FormulaHandler>
  3261. + {
  3262. +   public:
  3263. +     FormulaHandler(IBaseHandler *parent);
  3264. +     virtual ~FormulaHandler();
  3265. +     void startFormula(const QXmlAttributes& attrib);
  3266. +     void endFormula();
  3267. +   private:
  3268. +     IBaseHandler  *m_parent;
  3269. +     QString        m_id;
  3270. +     QString        m_text;
  3271. + };
  3272. + //-----------------------------------------------------------------------------
  3273. + /*! \brief Node representing an image.
  3274. +  *
  3275. +  */
  3276. + // children: -
  3277. + class ImageHandler : public DocNode, public BaseHandler<ImageHandler>
  3278. + {
  3279. +   public:
  3280. +     ImageHandler(IBaseHandler *parent);
  3281. +     virtual ~ImageHandler();
  3282. +     void startImage(const QXmlAttributes& attrib);
  3283. +     void endImage();
  3284. +   private:
  3285. +     IBaseHandler  *m_parent;
  3286. +     QString        m_name;
  3287. +     QString        m_caption;
  3288. + };
  3289. + //-----------------------------------------------------------------------------
  3290. + /*! \brief Node representing a dot file.
  3291. +  *
  3292. +  */
  3293. + // children: -
  3294. + class DotFileHandler : public DocNode, public BaseHandler<DotFileHandler>
  3295. + {
  3296. +   public:
  3297. +     DotFileHandler(IBaseHandler *parent);
  3298. +     virtual ~DotFileHandler();
  3299. +     void startDotFile(const QXmlAttributes& attrib);
  3300. +     void endDotFile();
  3301. +   private:
  3302. +     IBaseHandler  *m_parent;
  3303. +     QString        m_name;
  3304. +     QString        m_caption;
  3305. + };
  3306. + //-----------------------------------------------------------------------------
  3307. + /*! \brief Node representing an entry in the index.
  3308. +  *
  3309. +  */
  3310. + // children: -
  3311. + class IndexEntryHandler : public DocNode, public BaseHandler<IndexEntryHandler>
  3312. + {
  3313. +   public:
  3314. +     IndexEntryHandler(IBaseHandler *parent);
  3315. +     virtual ~IndexEntryHandler();
  3316. +     void startIndexEntry(const QXmlAttributes& attrib);
  3317. +     void endIndexEntry();
  3318. +     void startPrimaryIE(const QXmlAttributes& attrib);
  3319. +     void endPrimaryIE();
  3320. +     void startSecondaryIE(const QXmlAttributes& attrib);
  3321. +     void endSecondaryIE();
  3322. +   private:
  3323. +     IBaseHandler  *m_parent;
  3324. +     QString        m_primary;
  3325. +     QString        m_secondary;
  3326. + };
  3327. + //-----------------------------------------------------------------------------
  3328. + /*! \brief Node representing an entry in the table entry.
  3329. +  *
  3330. +  */
  3331. + // children: para
  3332. + class EntryHandler : public DocNode, public BaseHandler<EntryHandler>
  3333. + {
  3334. +   public:
  3335. +     EntryHandler(IBaseHandler *parent);
  3336. +     virtual ~EntryHandler();
  3337. +     void startEntry(const QXmlAttributes& attrib);
  3338. +     void endEntry();
  3339. +     void startParagraph(const QXmlAttributes& attrib);
  3340. +   private:
  3341. +     IBaseHandler   *m_parent;
  3342. +     QList<DocNode>  m_children;
  3343. + };
  3344. + //-----------------------------------------------------------------------------
  3345. + /*! \brief Node representing an entry in the table row.
  3346. +  *
  3347. +  */
  3348. + // children: entry
  3349. + class RowHandler : public DocNode, public BaseHandler<RowHandler>
  3350. + {
  3351. +   public:
  3352. +     RowHandler(IBaseHandler *parent);
  3353. +     virtual ~RowHandler();
  3354. +     void startRow(const QXmlAttributes& attrib);
  3355. +     void endRow();
  3356. +     void startEntry(const QXmlAttributes& attrib);
  3357. +   private:
  3358. +     IBaseHandler        *m_parent;
  3359. +     QList<EntryHandler>  m_children;
  3360. + };
  3361. + //-----------------------------------------------------------------------------
  3362. + /*! \brief Node representing an entry in the table.
  3363. +  *
  3364. +  */
  3365. + // children: row
  3366. + class TableHandler : public DocNode, public BaseHandler<TableHandler>
  3367. + {
  3368. +   public:
  3369. +     TableHandler(IBaseHandler *parent);
  3370. +     virtual ~TableHandler();
  3371. +     void startTable(const QXmlAttributes& attrib);
  3372. +     void endTable();
  3373. +     void startRow(const QXmlAttributes& attrib);
  3374. +   private:
  3375. +     IBaseHandler      *m_parent;
  3376. +     QList<RowHandler>  m_children;
  3377. +     int                m_numColumns;
  3378. + };
  3379. + //-----------------------------------------------------------------------------
  3380. + /*! \brief Node representing a paragraph of text and commands.
  3381. +  *
  3382. +  */
  3383. + // children: itemizedlist, orderedlist, parameterlist, simplesect, ref,
  3384. + //           variablelist, hruler, linebreak, ulink, email, link
  3385. + //           programlisting, formula, image, dotfile, indexentry,
  3386. + //           table
  3387. + //
  3388. + // children handled by MarkupHandler: 
  3389. + //           bold, computeroutput, emphasis, center,
  3390. + //           small, subscript, superscript. 
  3391. + //
  3392. + class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
  3393. + {
  3394. +   public:
  3395. +     virtual void startParagraph(const QXmlAttributes& attrib);
  3396. +     virtual void endParagraph();
  3397. +     virtual void startItemizedList(const QXmlAttributes& attrib);
  3398. +     virtual void startOrderedList(const QXmlAttributes& attrib);
  3399. +     virtual void startParameterList(const QXmlAttributes& attrib);
  3400. +     virtual void startSimpleSect(const QXmlAttributes& attrib);
  3401. +     virtual void startRef(const QXmlAttributes& attrib);
  3402. +     virtual void startVariableList(const QXmlAttributes& attrib);
  3403. +     virtual void startHRuler(const QXmlAttributes& attrib);
  3404. +     virtual void startLineBreak(const QXmlAttributes& attrib);
  3405. +     virtual void startULink(const QXmlAttributes& attrib);
  3406. +     virtual void startEMail(const QXmlAttributes& attrib);
  3407. +     virtual void startLink(const QXmlAttributes& attrib);
  3408. +     virtual void startProgramListing(const QXmlAttributes& attrib);
  3409. +     virtual void startFormula(const QXmlAttributes& attrib);
  3410. +     virtual void startImage(const QXmlAttributes& attrib);
  3411. +     virtual void startDotFile(const QXmlAttributes& attrib);
  3412. +     virtual void startIndexEntry(const QXmlAttributes& attrib);
  3413. +     virtual void startTable(const QXmlAttributes& attrib);
  3414. +     ParagraphHandler(IBaseHandler *parent);
  3415. +     virtual ~ParagraphHandler();
  3416. +   private:
  3417. +     void addTextNode();
  3418. +     IBaseHandler   *m_parent;
  3419. +     QList<DocNode>  m_children;
  3420. +     MarkupHandler  *m_markupHandler;
  3421. + };
  3422. + //-----------------------------------------------------------------------------
  3423. + /*! \brief Node representing a documentation block.
  3424. +  *
  3425. +  */
  3426. + // children: para 
  3427. + // TODO: title, sect1, sect2, sect3
  3428. + class DocHandler : public BaseHandler<DocHandler>
  3429. + {
  3430. +   public:
  3431. +     virtual void startDoc(const QXmlAttributes& attrib);
  3432. +     virtual void endDoc();
  3433. +     virtual void startParagraph(const QXmlAttributes& attrib);
  3434. +     DocHandler(IBaseHandler *parent);
  3435. +     virtual ~DocHandler();
  3436. +     
  3437. +   private:
  3438. +     IBaseHandler *m_parent;
  3439. +     QList<DocNode> m_children;
  3440. + };
  3441. + #endif
  3442. Index: addon/xmlparse/doxmlintf.h
  3443. ===================================================================
  3444. RCS file: addon/xmlparse/doxmlintf.h
  3445. diff -N addon/xmlparse/doxmlintf.h
  3446. *** /dev/null    1 Jan 1970 00:00:00 -0000
  3447. --- addon/xmlparse/doxmlintf.h    16 Dec 2001 23:30:02 -0000    1.1.1.3
  3448. ***************
  3449. *** 0 ****
  3450. --- 1,87 ----
  3451. + #ifndef _DOXMLINTF_H
  3452. + #define _DOXMLINTF_H
  3453. + #include <qlist.h>
  3454. + #include <qstring.h>
  3455. + class IMember;
  3456. + class IParam
  3457. + {
  3458. +   public:
  3459. +     virtual QString type() const = 0;
  3460. +     virtual QString declarationName() const = 0;
  3461. +     virtual QString definitionName() const = 0;
  3462. +     virtual QString attrib() const = 0;
  3463. +     virtual QString arraySpecifier() const = 0;
  3464. +     virtual QString defaultValue() const = 0;
  3465. + };
  3466. + class IMemberReference
  3467. + {
  3468. +   public:
  3469. +     virtual IMember *getMember() const = 0;
  3470. +     virtual QString getMemberName() const = 0;
  3471. +     virtual int getLineNumber() const = 0;
  3472. + };
  3473. + class IMember
  3474. + {
  3475. +   public:
  3476. +     virtual QString kind() const = 0;
  3477. +     virtual QString id() const = 0;
  3478. +     virtual QString protection() const = 0;
  3479. +     virtual QString virtualness() const = 0;
  3480. +     virtual QString type() const = 0;
  3481. +     virtual QString name() const = 0;
  3482. +     virtual QListIterator<IParam> getParamIterator() const = 0;
  3483. + };
  3484. + class ISection
  3485. + {
  3486. +   public:
  3487. +     virtual QString kind() const = 0;
  3488. +     virtual QListIterator<IMember> getMemberIterator() const = 0;
  3489. + };
  3490. + class ICompound
  3491. + {
  3492. +   public:
  3493. +     virtual QString name() const = 0;
  3494. +     virtual QString id()   const = 0;
  3495. +     virtual QString kind() const = 0;
  3496. +     virtual QListIterator<ISection> getSectionIterator() const = 0;
  3497. + };
  3498. + /*! Root node of the object model. */
  3499. + class IDoxygen
  3500. + {
  3501. +   public:
  3502. +     /*! Returns an iterator that can be used to iterate over the list
  3503. +      *  of compounds found in the project.
  3504. +      */
  3505. +     virtual QListIterator<ICompound> getCompoundIterator() const = 0;
  3506. +     /*! Returns a compound given its unique \a id. If you have a
  3507. +      *  compound id this function is much more efficient than iterating
  3508. +      *  over the compound list. Returns 0 if the id is not valid.
  3509. +      */
  3510. +     virtual ICompound *getCompoundById(const QString &id) const = 0;
  3511. +     /*! Returns a compound given its name (including the scope). 
  3512. +      *  Returns 0 if the name is not found in the project.
  3513. +      */
  3514. +     virtual ICompound *getCompoundByName(const QString &name) const = 0;
  3515. +     virtual IMember *getMemberById(const QString &id) const = 0;
  3516. +     virtual QList<IMember> *getMemberByName(const QString &name) const = 0;
  3517. + };
  3518. + /*! Factory method that creates an object model given an XML file generated
  3519. +  *  by doxygen.
  3520. +  *  @param xmlFileName The name of the XML to parse.
  3521. +  *  @returns An iterface to the object model.
  3522. +  */
  3523. + IDoxygen *createObjectModelFromXML(const char *xmlFileName);
  3524. + #endif
  3525. Index: addon/xmlparse/doxygen.dtd
  3526. ===================================================================
  3527. RCS file: addon/xmlparse/doxygen.dtd
  3528. diff -N addon/xmlparse/doxygen.dtd
  3529. *** /dev/null    1 Jan 1970 00:00:00 -0000
  3530. --- addon/xmlparse/doxygen.dtd    20 Nov 2001 05:17:19 -0000    1.1.1.2
  3531. ***************
  3532. *** 0 ****
  3533. --- 1,123 ----
  3534. + <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
  3535. + <!-- NOTE: THIS DTD IS NOT UP TO DATE!!! DO NOT DEPEND ON IT --> 
  3536. + <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
  3537. + <?xml version="1.0" encoding="ISO-8859-1"?>
  3538. + <!-- DTD describing the grammar used in doxygen's XML output -->
  3539. + <!-- standard character entities -->
  3540. + <!ENTITY lt     "&#60;"> 
  3541. + <!ENTITY gt     ">"> 
  3542. + <!ENTITY amp    "&#38;"> 
  3543. + <!ENTITY apos   "'"> 
  3544. + <!ENTITY quot   """> 
  3545. + <!-- required attributes for compounds -->
  3546. + <!ENTITY % compound-req.att 
  3547. +                        'id      ID                           #REQUIRED
  3548. +                         type    (group|file|namespace|
  3549. +                                  class|struct|union|
  3550. +                                  interface|dispinterface|
  3551. +                                  valuetype|library)          #REQUIRED'
  3552. + >
  3553. + <!-- required attributes for references -->
  3554. + <!ENTITY % ref-req.att   'idref IDREF                        #REQUIRED'
  3555. + >
  3556. + <!-- required attributes for inheritance relations -->
  3557. + <!ENTITY % inheritcompref-req.att
  3558. +                          '%ref-req.att;
  3559. +                           prot (public|protected|private)    #REQUIRED
  3560. +                           virt (non-virtual|virtual)         #REQUIRED'
  3561. + >
  3562. + <!-- required attributes for member sections -->
  3563. + <!ENTITY % sec-req.att  'type   (user
  3564. +                                 |public-type
  3565. +                                 |public-func
  3566. +                                 |public-attrib
  3567. +                                 |public-slot
  3568. +                                 |public-static-func
  3569. +                                 |public-static-attrib
  3570. +                                 |protected-type
  3571. +                                 |protected-func
  3572. +                                 |protected-attrib
  3573. +                                 |protected-slot
  3574. +                                 |protected-static-func
  3575. +                                 |protected-static-attrib
  3576. +                                 |private-type
  3577. +                                 |private-func
  3578. +                                 |private-attrib
  3579. +                                 |private-slot
  3580. +                                 |private-static-func
  3581. +                                 |private-static-attrib
  3582. +                                 |signal
  3583. +                                 |friend
  3584. +                                 |related
  3585. +                 |define|prototype|typedef|enum|func|var
  3586. +                             |dcop-func
  3587. +                                 |property
  3588. +                                 )                            #REQUIRED
  3589. +                         '
  3590. + >
  3591. + <!-- required attributes for members -->
  3592. + <!ENTITY % mem-req.att  'id     ID                           #REQUIRED'>
  3593. + <!-- optional attributes for function -->
  3594. + <!ENTITY % func-opt.att 'virt   (virtual|pure-virtual)       #IMPLIED'>
  3595. + <!-- elements -->
  3596. + <!ELEMENT doxygen (compounddef)*>
  3597. + <!ELEMENT compounddef (compoundname,
  3598. +                        basecompoundref*,  
  3599. +                        derivedcompoundref*, 
  3600. +                        sectiondef*,
  3601. +                        briefdescription,
  3602. +                        detaileddescription,
  3603. +                        inheritancegraph?,
  3604. +                        collaborationgraph?,
  3605. +                        sourcecode?
  3606. +                       )
  3607. + >
  3608. + <!ATTLIST compounddef %compound-req.att;>
  3609. + <!ELEMENT compoundref (#PCDATA)>
  3610. + <!ATTLIST compoundref %ref-req.att;>
  3611. + <!ELEMENT memberref   (#PCDATA)>
  3612. + <!ATTLIST memberref   %ref-req.att;>
  3613. + <!ELEMENT basecompoundref EMPTY>
  3614. + <!ATTLIST basecompoundref %inheritcompref-req.att;>
  3615. + <!ELEMENT derivedcompoundref EMPTY>
  3616. + <!ATTLIST derivedcompoundref %inheritcompref-req.att;>
  3617. + <!ELEMENT sectionlist (sectiondef)+>
  3618. + <!ELEMENT sectiondef  (memberlist)>
  3619. + <!ATTLIST sectiondef  %sec-req.att;>
  3620. + <!ELEMENT memberlist  (functiondef|variabledef|typedef|definedef|enumdef)+>
  3621. + <!ELEMENT functiondef (type?,name,paramlist)>
  3622. + <!ATTLIST functiondef %mem-req.att; %func-opt.att;>
  3623. + <!ELEMENT variabledef (type,name,array?,initializer?)>
  3624. + <!ATTLIST variabledef %mem-req.att;>
  3625. + <!ELEMENT typedef     (type,name)>
  3626. + <!ATTLIST typedef     %mem-req.att;>
  3627. + <!ELEMENT definedef   (name,defparamlist?,initializer?)>
  3628. + <!ATTLIST definedef   %mem-req.att;>
  3629. + <!ELEMENT enumdef     (name,enumvaluelist)>
  3630. + <!ATTLIST enumdef     %mem-req.att;>
  3631. + <!ELEMENT slotdef     (type,name,paramlist)>
  3632. + <!ATTLIST slotdef     %mem-req.att;>
  3633. + <!ELEMENT signaldef   (type,name,paramlist)>
  3634. + <!ATTLIST signaldef   %mem-req.att;>
  3635. + <!ELEMENT paramlist (param)*>
  3636. + <!ELEMENT param (attributes?,type,declname?,defname?,array?,defval?)>
  3637. + <!ELEMENT defparamlist (defarg)*>
  3638. + <!ELEMENT defarg (#PCDATA)>
  3639. + <!ELEMENT enumvaluelist (enumvalue)*>
  3640. + <!ELEMENT enumvalue (name,initializer?)>
  3641. + <!ELEMENT name (#PCDATA)>
  3642. + <!ELEMENT compoundname (#PCDATA)>
  3643. + <!ELEMENT declname (#PCDATA)>
  3644. + <!ELEMENT defname (#PCDATA)>
  3645. + <!ELEMENT type (#PCDATA|memberref|compoundref|compounddef)*>
  3646. + <!ELEMENT defval (#PCDATA|memberref|compoundref)*>
  3647. + <!ELEMENT initializer (#PCDATA|memberref|compoundref)*>
  3648. + <!ELEMENT array (#PCDATA)>
  3649. + <!ELEMENT attributes (#PCDATA)>
  3650. Index: addon/xmlparse/main.cpp
  3651. ===================================================================
  3652. RCS file: addon/xmlparse/main.cpp
  3653. diff -N addon/xmlparse/main.cpp
  3654. *** /dev/null    1 Jan 1970 00:00:00 -0000
  3655. --- addon/xmlparse/main.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  3656. ***************
  3657. *** 0 ****
  3658. --- 1,66 ----
  3659. + /******************************************************************************
  3660. +  *
  3661. +  * $Id$
  3662. +  *
  3663. +  *
  3664. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  3665. +  *
  3666. +  * Permission to use, copy, modify, and distribute this software and its
  3667. +  * documentation under the terms of the GNU General Public License is hereby 
  3668. +  * granted. No representations are made about the suitability of this software 
  3669. +  * for any purpose. It is provided "as is" without express or implied warranty.
  3670. +  * See the GNU General Public License for more details.
  3671. +  *
  3672. +  */
  3673. + #include <stdio.h>
  3674. + #include "doxmlintf.h"
  3675. + int main(int argc,char **argv)
  3676. + {
  3677. +   if (argc!=2)
  3678. +   {
  3679. +     printf("Usage: %s file.xml\n",argv[0]);
  3680. +     exit(1);
  3681. +   }
  3682. +   IDoxygen *dox = createObjectModelFromXML(argv[1]);
  3683. +   {
  3684. +     QListIterator<ICompound> cli(dox->getCompoundIterator());
  3685. +     ICompound *comp;
  3686. +     printf("--- compound list ---------\n");
  3687. +     for (cli.toFirst();(comp=cli.current());++cli)
  3688. +     {
  3689. +       printf("Compound name=%s id=%s kind=%s\n",
  3690. +           comp->name().data(),comp->id().data(),comp->kind().data());
  3691. +       QListIterator<ISection> sli(comp->getSectionIterator());
  3692. +       ISection *sec;
  3693. +       for (sli.toFirst();(sec=sli.current());++sli)
  3694. +       {
  3695. +         printf("  Section kind=%s\n",sec->kind().data());
  3696. +         QListIterator<IMember> mli(sec->getMemberIterator());
  3697. +         IMember *mem;
  3698. +         for (mli.toFirst();(mem=mli.current());++mli)
  3699. +         {
  3700. +           printf("    Member type=%s name=%s\n",mem->type().data(),mem->name().data());
  3701. +           QListIterator<IParam> pli(mem->getParamIterator());
  3702. +           IParam *par;
  3703. +           for (pli.toFirst();(par=pli.current());++pli)
  3704. +           {
  3705. +             printf("      Param type=%s name=%s defvalue=%s\n",
  3706. +                 par->type().data(),par->definitionName().data(),par->defaultValue().data());
  3707. +           }
  3708. +         }
  3709. +       }
  3710. +     }
  3711. +     printf("---------------------------\n");
  3712. +   }
  3713. +   delete dox;
  3714. +   return 0;
  3715. + }
  3716. Index: addon/xmlparse/mainhandler.cpp
  3717. ===================================================================
  3718. RCS file: addon/xmlparse/mainhandler.cpp
  3719. diff -N addon/xmlparse/mainhandler.cpp
  3720. *** /dev/null    1 Jan 1970 00:00:00 -0000
  3721. --- addon/xmlparse/mainhandler.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  3722. ***************
  3723. *** 0 ****
  3724. --- 1,124 ----
  3725. + /******************************************************************************
  3726. +  *
  3727. +  * $Id$
  3728. +  *
  3729. +  *
  3730. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  3731. +  *
  3732. +  * Permission to use, copy, modify, and distribute this software and its
  3733. +  * documentation under the terms of the GNU General Public License is hereby 
  3734. +  * granted. No representations are made about the suitability of this software 
  3735. +  * for any purpose. It is provided "as is" without express or implied warranty.
  3736. +  * See the GNU General Public License for more details.
  3737. +  *
  3738. +  */
  3739. + #include <qxml.h>
  3740. + #include "mainhandler.h"
  3741. + MainHandler::MainHandler() : m_compoundDict(10007), m_compoundNameDict(10007)
  3742. + {
  3743. +   m_compounds.setAutoDelete(TRUE);
  3744. +   addStartHandler("doxygen"); 
  3745. +   addStartHandler("compounddef",this,&MainHandler::startCompound);
  3746. +   addEndHandler("doxygen");
  3747. +   addEndHandler("compounddef");
  3748. + }
  3749. + MainHandler::~MainHandler()
  3750. + {
  3751. +   printf("MainHandler::~MainHandler()\n");
  3752. + }
  3753. + void MainHandler::startCompound(const QXmlAttributes& attrib)
  3754. + {
  3755. +   CompoundHandler *compHandler = new CompoundHandler(this);
  3756. +   compHandler->startCompound(attrib);
  3757. +   m_compounds.append(compHandler);
  3758. + }
  3759. + void MainHandler::insertMemberById(const QString &id,IMember *h)
  3760. + {
  3761. +   m_memberDict.insert(id,h);
  3762. + }
  3763. + void MainHandler::insertMemberByName(const QString &name,IMember *h)
  3764. + {
  3765. +   QList<IMember> *ml = m_memberNameDict[name];
  3766. +   if (ml)
  3767. +   {
  3768. +     ml->append(h);
  3769. +   }
  3770. +   else
  3771. +   {
  3772. +     ml = new QList<IMember>;
  3773. +     ml->append(h);
  3774. +     m_memberNameDict.insert(name,ml);
  3775. +   }
  3776. + }
  3777. + void MainHandler::initialize()
  3778. + {
  3779. +   QListIterator<ICompound> mci(m_compounds);
  3780. +   CompoundHandler *compHandler;
  3781. +   for (;(compHandler=(CompoundHandler *)mci.current());++mci)
  3782. +   {
  3783. +     compHandler->initialize(this);
  3784. +     m_compoundNameDict.insert(compHandler->name(),compHandler);
  3785. +     m_compoundDict.insert(compHandler->id(),compHandler);
  3786. +   }
  3787. +   // for each member
  3788. +   QDictIterator< QList<IMember> > mndi(m_memberNameDict);
  3789. +   QList<IMember> *ml;
  3790. +   for (;(ml=mndi.current());++mndi)
  3791. +   {
  3792. +     QListIterator<IMember> mli(*ml);
  3793. +     IMember *mem;
  3794. +     for (;(mem=mli.current());++mli)
  3795. +     {
  3796. +       ((MemberHandler*)mem)->initialize(this);
  3797. +     }
  3798. +   }
  3799. + }
  3800. + class ErrorHandler : public QXmlErrorHandler
  3801. + {
  3802. +     public:
  3803. +       virtual ~ErrorHandler() {}
  3804. +       bool warning( const QXmlParseException & )
  3805. +       {
  3806. +         return FALSE;
  3807. +       }
  3808. +       bool error( const QXmlParseException & )
  3809. +       {
  3810. +         return FALSE;
  3811. +       }
  3812. +       bool fatalError( const QXmlParseException &exception )
  3813. +       {
  3814. +         fprintf(stderr,"Fatal error at line %d column %d: %s\n",
  3815. +             exception.lineNumber(),exception.columnNumber(),
  3816. +             exception.message().data());
  3817. +         return FALSE;
  3818. +       }
  3819. +       QString errorString() { return ""; }
  3820. +     private:
  3821. +       QString errorMsg;
  3822. + };
  3823. + IDoxygen *createObjectModelFromXML(const char * xmlFileName)
  3824. + {
  3825. +   QFile xmlFile(xmlFileName);
  3826. +   MainHandler * handler = new MainHandler;
  3827. +   ErrorHandler errorHandler;
  3828. +   QXmlInputSource source( xmlFile );
  3829. +   QXmlSimpleReader reader;
  3830. +   reader.setContentHandler( handler );
  3831. +   reader.setErrorHandler( &errorHandler );
  3832. +   reader.parse( source );
  3833. +   handler->initialize();
  3834. +   return handler;
  3835. + }
  3836. Index: addon/xmlparse/mainhandler.h
  3837. ===================================================================
  3838. RCS file: addon/xmlparse/mainhandler.h
  3839. diff -N addon/xmlparse/mainhandler.h
  3840. *** /dev/null    1 Jan 1970 00:00:00 -0000
  3841. --- addon/xmlparse/mainhandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  3842. ***************
  3843. *** 0 ****
  3844. --- 1,64 ----
  3845. + /******************************************************************************
  3846. +  *
  3847. +  * $Id$
  3848. +  *
  3849. +  *
  3850. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  3851. +  *
  3852. +  * Permission to use, copy, modify, and distribute this software and its
  3853. +  * documentation under the terms of the GNU General Public License is hereby 
  3854. +  * granted. No representations are made about the suitability of this software 
  3855. +  * for any purpose. It is provided "as is" without express or implied warranty.
  3856. +  * See the GNU General Public License for more details.
  3857. +  *
  3858. +  */
  3859. + #ifndef _MAINHANDLER_H
  3860. + #define _MAINHANDLER_H
  3861. + #include <qlist.h>
  3862. + #include "basehandler.h"
  3863. + #include "compoundhandler.h"
  3864. + #include "doxmlintf.h"
  3865. + class MainHandler : public IDoxygen, public BaseHandler<MainHandler>
  3866. + {
  3867. +   public:
  3868. +     virtual void startCompound(const QXmlAttributes& attrib);
  3869. +     MainHandler();
  3870. +     virtual ~MainHandler();
  3871. +     QListIterator<ICompound> getCompoundIterator() const
  3872. +     {
  3873. +       return m_compounds;
  3874. +     }
  3875. +     ICompound *getCompoundById(const QString &id) const
  3876. +     {
  3877. +       return m_compoundDict[id];
  3878. +     }
  3879. +     virtual ICompound *getCompoundByName(const QString &name) const
  3880. +     {
  3881. +       return name.isEmpty() ? 0 : m_compoundNameDict[name]; 
  3882. +     }
  3883. +     virtual IMember *getMemberById(const QString &id) const
  3884. +     {
  3885. +       return m_memberDict[id];
  3886. +     }
  3887. +     virtual QList<IMember> *getMemberByName(const QString &name) const
  3888. +     {
  3889. +       return m_memberNameDict[name]; 
  3890. +     }
  3891. +     void insertMemberById(const QString &id,IMember *h);
  3892. +     void insertMemberByName(const QString &name,IMember *h);
  3893. +     void initialize();
  3894. +   private:
  3895. +     QList<ICompound>       m_compounds;
  3896. +     QDict<ICompound>       m_compoundDict;
  3897. +     QDict<ICompound>       m_compoundNameDict;
  3898. +     QDict<IMember>         m_memberDict;
  3899. +     QDict<QList<IMember> > m_memberNameDict;
  3900. + };
  3901. + #endif
  3902. Index: addon/xmlparse/memberhandler.cpp
  3903. ===================================================================
  3904. RCS file: addon/xmlparse/memberhandler.cpp
  3905. diff -N addon/xmlparse/memberhandler.cpp
  3906. *** /dev/null    1 Jan 1970 00:00:00 -0000
  3907. --- addon/xmlparse/memberhandler.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  3908. ***************
  3909. *** 0 ****
  3910. --- 1,160 ----
  3911. + /******************************************************************************
  3912. +  *
  3913. +  * $Id$
  3914. +  *
  3915. +  *
  3916. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  3917. +  *
  3918. +  * Permission to use, copy, modify, and distribute this software and its
  3919. +  * documentation under the terms of the GNU General Public License is hereby 
  3920. +  * granted. No representations are made about the suitability of this software 
  3921. +  * for any purpose. It is provided "as is" without express or implied warranty.
  3922. +  * See the GNU General Public License for more details.
  3923. +  *
  3924. +  */
  3925. + #include "memberhandler.h"
  3926. + #include "sectionhandler.h"
  3927. + #include "dochandler.h"
  3928. + #include "mainhandler.h"
  3929. + MemberHandler::MemberHandler(IBaseHandler *parent)
  3930. +   : m_parent(parent), m_brief(0), m_detailed(0)
  3931. + {
  3932. +   addEndHandler("memberdef",this,&MemberHandler::endMember);
  3933. +   addStartHandler("type");
  3934. +   addEndHandler("type",this,&MemberHandler::endType);
  3935. +   addStartHandler("name");
  3936. +   addEndHandler("name",this,&MemberHandler::endName);
  3937. +   addStartHandler("param",this,&MemberHandler::startParam);
  3938. +   addStartHandler("briefdescription",this,&MemberHandler::startBriefDesc);
  3939. +   addStartHandler("detaileddescription",this,&MemberHandler::startDetailedDesc);
  3940. +   addStartHandler("location",this,&MemberHandler::startLocation);
  3941. +   addEndHandler("location");
  3942. +   addStartHandler("references",this,&MemberHandler::startReferences);
  3943. +   addEndHandler("references",this,&MemberHandler::endReferences);
  3944. +   
  3945. +   addStartHandler("referencedby",this,&MemberHandler::startReferencedBy);
  3946. +   addEndHandler("referencedby",this,&MemberHandler::endReferencedBy);
  3947. +   m_params.setAutoDelete(TRUE);
  3948. +   m_references.setAutoDelete(TRUE);
  3949. +   m_referencedBy.setAutoDelete(TRUE);
  3950. +   
  3951. + }
  3952. + MemberHandler::~MemberHandler()
  3953. + {
  3954. +   delete m_brief;
  3955. +   delete m_detailed;
  3956. + }
  3957. + void MemberHandler::startMember(const QXmlAttributes& attrib)
  3958. + {
  3959. +   m_parent->setDelegate(this);
  3960. +   m_kind = attrib.value("kind");
  3961. +   m_id = attrib.value("id");
  3962. +   m_protection = attrib.value("prot");
  3963. +   m_virtualness = attrib.value("virtualness");
  3964. +   printf("member kind=`%s' id=`%s' prot=`%s' virt=`%s'\n",
  3965. +       m_kind.data(),m_id.data(),m_protection.data(),m_virtualness.data());
  3966. + }
  3967. + void MemberHandler::startBriefDesc(const QXmlAttributes& attrib)
  3968. + {
  3969. +   DocHandler *docHandler = new DocHandler(this);
  3970. +   docHandler->startDoc(attrib);
  3971. +   m_brief = docHandler;
  3972. + }
  3973. + void MemberHandler::startDetailedDesc(const QXmlAttributes& attrib)
  3974. + {
  3975. +   DocHandler *docHandler = new DocHandler(this);
  3976. +   docHandler->startDoc(attrib);
  3977. +   m_detailed = docHandler;
  3978. + }
  3979. + void MemberHandler::startLocation(const QXmlAttributes& attrib)
  3980. + {
  3981. +   m_defFile = attrib.value("file");
  3982. +   m_defLine = attrib.value("line").toInt();
  3983. + }
  3984. + void MemberHandler::startReferences(const QXmlAttributes& attrib)
  3985. + {
  3986. +   MemberReference *mr = new MemberReference;
  3987. +   mr->m_memId = attrib.value("id");
  3988. +   mr->m_line  = attrib.value("line").toInt();
  3989. +   m_references.append(mr);
  3990. +   m_curString="";
  3991. + }
  3992. + void MemberHandler::endReferences()
  3993. + {
  3994. +   m_references.getLast()->m_name = m_curString;
  3995. + }
  3996. + void MemberHandler::startReferencedBy(const QXmlAttributes& attrib)
  3997. + {
  3998. +   MemberReference *mr = new MemberReference;
  3999. +   mr->m_memId = attrib.value("id");
  4000. +   mr->m_line  = attrib.value("line").toInt();
  4001. +   m_referencedBy.append(mr);
  4002. +   m_curString="";
  4003. + }
  4004. + void MemberHandler::endReferencedBy()
  4005. + {
  4006. +   m_referencedBy.getLast()->m_name = m_curString;
  4007. + }
  4008. + void MemberHandler::endMember()
  4009. + {
  4010. +   m_parent->setDelegate(0);
  4011. + }
  4012. + void MemberHandler::endType()
  4013. + {
  4014. +   m_type = m_curString.stripWhiteSpace();
  4015. +   printf("member type=`%s'\n",m_type.data());
  4016. + }
  4017. + void MemberHandler::endName()
  4018. + {
  4019. +   m_name = m_curString.stripWhiteSpace();
  4020. +   printf("member name=`%s'\n",m_name.data());
  4021. + }
  4022. + void MemberHandler::startParam(const QXmlAttributes& attrib)
  4023. + {
  4024. +   ParamHandler *paramHandler = new ParamHandler(this);
  4025. +   paramHandler->startParam(attrib);
  4026. +   m_params.append(paramHandler);
  4027. + }
  4028. + void MemberHandler::initialize(MainHandler *mh)
  4029. + {
  4030. +   QListIterator<MemberReference> mli(m_references);
  4031. +   MemberReference *mr;
  4032. +   for (;(mr=mli.current());++mli)
  4033. +   {
  4034. +     mr->initialize(mh);
  4035. +   }
  4036. + }
  4037. + void MemberHandler::MemberReference::initialize(MainHandler *mh)
  4038. + {
  4039. +   m_mainHandler = mh;
  4040. + }
  4041. + IMember *MemberHandler::MemberReference::getMember() const
  4042. + {
  4043. +   return m_mainHandler->getMemberById(m_memId);
  4044. + }
  4045. Index: addon/xmlparse/memberhandler.h
  4046. ===================================================================
  4047. RCS file: addon/xmlparse/memberhandler.h
  4048. diff -N addon/xmlparse/memberhandler.h
  4049. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4050. --- addon/xmlparse/memberhandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  4051. ***************
  4052. *** 0 ****
  4053. --- 1,91 ----
  4054. + /******************************************************************************
  4055. +  *
  4056. +  * $Id$
  4057. +  *
  4058. +  *
  4059. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  4060. +  *
  4061. +  * Permission to use, copy, modify, and distribute this software and its
  4062. +  * documentation under the terms of the GNU General Public License is hereby 
  4063. +  * granted. No representations are made about the suitability of this software 
  4064. +  * for any purpose. It is provided "as is" without express or implied warranty.
  4065. +  * See the GNU General Public License for more details.
  4066. +  *
  4067. +  */
  4068. + #ifndef _MEMBERHANDLER_H
  4069. + #define _MEMBERHANDLER_H
  4070. + #include <qstring.h>
  4071. + #include <qlist.h>
  4072. + #include <qxml.h>
  4073. + #include "basehandler.h"
  4074. + #include "paramhandler.h"
  4075. + #include "doxmlintf.h"
  4076. + class DocHandler;
  4077. + class MainHandler;
  4078. + class MemberHandler : public IMember, public BaseHandler<MemberHandler>
  4079. + {
  4080. +   public:
  4081. +     virtual void startMember(const QXmlAttributes& attrib);
  4082. +     virtual void endMember();
  4083. +     virtual void startParam(const QXmlAttributes& attrib);
  4084. +     virtual void endType();
  4085. +     virtual void endName();
  4086. +     virtual void startBriefDesc(const QXmlAttributes& attrib);
  4087. +     virtual void startDetailedDesc(const QXmlAttributes& attrib);
  4088. +     virtual void startLocation(const QXmlAttributes& attrib);
  4089. +     virtual void startReferences(const QXmlAttributes& attrib);
  4090. +     virtual void endReferences();
  4091. +     virtual void startReferencedBy(const QXmlAttributes& attrib);
  4092. +     virtual void endReferencedBy();
  4093. +     MemberHandler(IBaseHandler *parent);
  4094. +     virtual ~MemberHandler();
  4095. +     // IMember
  4096. +     virtual QString kind() const { return m_kind; }
  4097. +     virtual QString id() const { return m_id; }
  4098. +     virtual QString protection() const { return m_protection; }
  4099. +     virtual QString virtualness() const { return m_virtualness; }
  4100. +     virtual QString type() const { return m_type; }
  4101. +     virtual QString name() const { return m_name; }
  4102. +     virtual QListIterator<IParam> getParamIterator() const { return m_params; }
  4103. +     void initialize(MainHandler *m);
  4104. +   private:
  4105. +     struct MemberReference : public IMemberReference
  4106. +     {
  4107. +       virtual ~MemberReference() {}
  4108. +       virtual IMember *getMember() const;
  4109. +       virtual QString getMemberName() const { return m_name; }
  4110. +       virtual int getLineNumber() const { return m_line; }
  4111. +       void initialize(MainHandler *m);
  4112. +       QString  m_memId;
  4113. +       QString  m_name;
  4114. +       int      m_line;
  4115. +       MainHandler *m_mainHandler;
  4116. +     };
  4117. +     
  4118. +     IBaseHandler *m_parent;
  4119. +     QString m_kind;
  4120. +     QString m_id;
  4121. +     QString m_protection;
  4122. +     QString m_virtualness;
  4123. +     QString m_type;
  4124. +     QString m_name;
  4125. +     DocHandler  *m_brief;
  4126. +     DocHandler  *m_detailed;
  4127. +     QList<IParam> m_params;
  4128. +     QList<MemberReference> m_references;
  4129. +     QList<MemberReference> m_referencedBy;
  4130. +     QString m_defFile;
  4131. +     int m_defLine;
  4132. + };
  4133. + #endif
  4134. Index: addon/xmlparse/paramhandler.cpp
  4135. ===================================================================
  4136. RCS file: addon/xmlparse/paramhandler.cpp
  4137. diff -N addon/xmlparse/paramhandler.cpp
  4138. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4139. --- addon/xmlparse/paramhandler.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  4140. ***************
  4141. *** 0 ****
  4142. --- 1,94 ----
  4143. + /******************************************************************************
  4144. +  *
  4145. +  * $Id$
  4146. +  *
  4147. +  *
  4148. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  4149. +  *
  4150. +  * Permission to use, copy, modify, and distribute this software and its
  4151. +  * documentation under the terms of the GNU General Public License is hereby 
  4152. +  * granted. No representations are made about the suitability of this software 
  4153. +  * for any purpose. It is provided "as is" without express or implied warranty.
  4154. +  * See the GNU General Public License for more details.
  4155. +  *
  4156. +  */
  4157. + #include "paramhandler.h"
  4158. + #include "memberhandler.h"
  4159. + ParamHandler::ParamHandler(IBaseHandler *parent) : m_parent(parent)
  4160. + {
  4161. +   addEndHandler("param",this,&ParamHandler::endParam);
  4162. +   addStartHandler("type");
  4163. +   addEndHandler("type",this,&ParamHandler::endType);
  4164. +   addStartHandler("declname");
  4165. +   addEndHandler("declname",this,&ParamHandler::endDeclName);
  4166. +   addStartHandler("defname");
  4167. +   addEndHandler("defname",this,&ParamHandler::endDefName);
  4168. +   addStartHandler("array");
  4169. +   addEndHandler("array",this,&ParamHandler::endArray);
  4170. +   addStartHandler("attrib");
  4171. +   addEndHandler("attrib",this,&ParamHandler::endAttrib);
  4172. +   addStartHandler("defval");
  4173. +   addEndHandler("defval",this,&ParamHandler::endDefVal);
  4174. + }
  4175. + ParamHandler::~ParamHandler()
  4176. + {
  4177. + }
  4178. + void ParamHandler::startParam(const QXmlAttributes& /*attrib*/)
  4179. + {
  4180. +   m_parent->setDelegate(this);
  4181. +   printf("param\n");
  4182. + }
  4183. + void ParamHandler::endParam()
  4184. + {
  4185. +   m_parent->setDelegate(0);
  4186. + }
  4187. + void ParamHandler::endType()
  4188. + {
  4189. +   m_type = m_curString.stripWhiteSpace();
  4190. +   printf("param type=`%s'\n",m_type.data());
  4191. + }
  4192. + void ParamHandler::endDeclName()
  4193. + {
  4194. +   m_declName = m_curString.stripWhiteSpace();
  4195. +   printf("member declName=`%s'\n",m_declName.data());
  4196. + }
  4197. + void ParamHandler::endDefName()
  4198. + {
  4199. +   m_defName = m_curString.stripWhiteSpace();
  4200. +   printf("member defName=`%s'\n",m_defName.data());
  4201. + }
  4202. + void ParamHandler::endAttrib()
  4203. + {
  4204. +   m_attrib = m_curString.stripWhiteSpace();
  4205. +   printf("member attrib=`%s'\n",m_attrib.data());
  4206. + }
  4207. + void ParamHandler::endArray()
  4208. + {
  4209. +   m_array = m_curString.stripWhiteSpace();
  4210. +   printf("member array=`%s'\n",m_array.data());
  4211. + }
  4212. + void ParamHandler::endDefVal()
  4213. + {
  4214. +   m_defVal = m_curString.stripWhiteSpace();
  4215. +   printf("member defVal=`%s'\n",m_defVal.data());
  4216. + }
  4217. Index: addon/xmlparse/paramhandler.h
  4218. ===================================================================
  4219. RCS file: addon/xmlparse/paramhandler.h
  4220. diff -N addon/xmlparse/paramhandler.h
  4221. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4222. --- addon/xmlparse/paramhandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  4223. ***************
  4224. *** 0 ****
  4225. --- 1,59 ----
  4226. + /******************************************************************************
  4227. +  *
  4228. +  * $Id$
  4229. +  *
  4230. +  *
  4231. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  4232. +  *
  4233. +  * Permission to use, copy, modify, and distribute this software and its
  4234. +  * documentation under the terms of the GNU General Public License is hereby 
  4235. +  * granted. No representations are made about the suitability of this software 
  4236. +  * for any purpose. It is provided "as is" without express or implied warranty.
  4237. +  * See the GNU General Public License for more details.
  4238. +  *
  4239. +  */
  4240. + #ifndef _PARAMHANDLER_H
  4241. + #define _PARAMHANDLER_H
  4242. + #include <qstring.h>
  4243. + #include <qlist.h>
  4244. + #include <qxml.h>
  4245. + #include "basehandler.h"
  4246. + #include "doxmlintf.h"
  4247. + class ParamHandler : public IParam, public BaseHandler<ParamHandler>
  4248. + {
  4249. +   public:
  4250. +     virtual void startParam(const QXmlAttributes& attrib);
  4251. +     virtual void endParam();
  4252. +     virtual void endType();
  4253. +     virtual void endDeclName();
  4254. +     virtual void endDefName();
  4255. +     virtual void endAttrib();
  4256. +     virtual void endArray();
  4257. +     virtual void endDefVal();
  4258. +     ParamHandler(IBaseHandler *parent);
  4259. +     virtual ~ParamHandler();
  4260. +     // IParam
  4261. +     virtual QString type() const { return m_type; }
  4262. +     virtual QString declarationName() const { return m_declName; }
  4263. +     virtual QString definitionName() const { return m_defName; }
  4264. +     virtual QString attrib() const { return m_attrib; } 
  4265. +     virtual QString arraySpecifier() const { return m_array; }
  4266. +     virtual QString defaultValue() const { return m_defVal; }
  4267. +   private:
  4268. +     IBaseHandler *m_parent;
  4269. +     QString m_type;
  4270. +     QString m_declName;
  4271. +     QString m_defName;
  4272. +     QString m_attrib;
  4273. +     QString m_array;
  4274. +     QString m_defVal;
  4275. + };
  4276. + #endif
  4277. Index: addon/xmlparse/sectionhandler.cpp
  4278. ===================================================================
  4279. RCS file: addon/xmlparse/sectionhandler.cpp
  4280. diff -N addon/xmlparse/sectionhandler.cpp
  4281. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4282. --- addon/xmlparse/sectionhandler.cpp    24 Jan 2002 01:49:44 -0000    1.1.1.6
  4283. ***************
  4284. *** 0 ****
  4285. --- 1,61 ----
  4286. + /******************************************************************************
  4287. +  *
  4288. +  * $Id$
  4289. +  *
  4290. +  *
  4291. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  4292. +  *
  4293. +  * Permission to use, copy, modify, and distribute this software and its
  4294. +  * documentation under the terms of the GNU General Public License is hereby 
  4295. +  * granted. No representations are made about the suitability of this software 
  4296. +  * for any purpose. It is provided "as is" without express or implied warranty.
  4297. +  * See the GNU General Public License for more details.
  4298. +  *
  4299. +  */
  4300. + #include "mainhandler.h"
  4301. + #include "compoundhandler.h"
  4302. + #include "sectionhandler.h"
  4303. + SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent)
  4304. + {
  4305. +   m_members.setAutoDelete(TRUE);
  4306. +   addEndHandler("sectiondef",this,&SectionHandler::endSection);
  4307. +   addStartHandler("memberdef",this,&SectionHandler::startMember);
  4308. + }
  4309. + SectionHandler::~SectionHandler()
  4310. + {
  4311. + }
  4312. + void SectionHandler::startSection(const QXmlAttributes& attrib)
  4313. + {
  4314. +   m_parent->setDelegate(this);
  4315. +   m_kind = attrib.value("kind");
  4316. +   printf("section kind=`%s'\n",m_kind.data());
  4317. + }
  4318. + void SectionHandler::endSection()
  4319. + {
  4320. +   m_parent->setDelegate(0);
  4321. + }
  4322. + void SectionHandler::startMember(const QXmlAttributes& attrib)
  4323. + {
  4324. +   MemberHandler *memHandler = new MemberHandler(this);
  4325. +   memHandler->startMember(attrib);
  4326. +   m_members.append(memHandler);
  4327. + }
  4328. + void SectionHandler::initialize(MainHandler *m)
  4329. + {
  4330. +   QListIterator<IMember> mli(m_members);
  4331. +   MemberHandler *mh;
  4332. +   for (;(mh=(MemberHandler *)mli.current());++mli)
  4333. +   {
  4334. +     m->insertMemberById(mh->name(),mh);
  4335. +     m->insertMemberByName(mh->name(),mh);
  4336. +   }
  4337. + }
  4338. Index: addon/xmlparse/sectionhandler.h
  4339. ===================================================================
  4340. RCS file: addon/xmlparse/sectionhandler.h
  4341. diff -N addon/xmlparse/sectionhandler.h
  4342. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4343. --- addon/xmlparse/sectionhandler.h    24 Jan 2002 01:49:44 -0000    1.1.1.6
  4344. ***************
  4345. *** 0 ****
  4346. --- 1,51 ----
  4347. + /******************************************************************************
  4348. +  *
  4349. +  * $Id$
  4350. +  *
  4351. +  *
  4352. +  * Copyright (C) 1997-2001 by Dimitri van Heesch.
  4353. +  *
  4354. +  * Permission to use, copy, modify, and distribute this software and its
  4355. +  * documentation under the terms of the GNU General Public License is hereby 
  4356. +  * granted. No representations are made about the suitability of this software 
  4357. +  * for any purpose. It is provided "as is" without express or implied warranty.
  4358. +  * See the GNU General Public License for more details.
  4359. +  *
  4360. +  */
  4361. + #ifndef _SECTIONHANDLER_H
  4362. + #define _SECTIONHANDLER_H
  4363. + #include <qstring.h>
  4364. + #include <qlist.h>
  4365. + #include <qxml.h>
  4366. + #include "basehandler.h"
  4367. + #include "memberhandler.h"
  4368. + #include "doxmlintf.h"
  4369. + class MainHandler;
  4370. + class SectionHandler : public ISection, public BaseHandler<SectionHandler>
  4371. + {
  4372. +   public:
  4373. +     virtual void startMember(const QXmlAttributes& attrib);
  4374. +     virtual void startSection(const QXmlAttributes& attrib);
  4375. +     virtual void endSection();
  4376. +     SectionHandler(IBaseHandler *parent);
  4377. +     virtual ~SectionHandler();
  4378. +     // ISection
  4379. +     virtual QString kind() const { return m_kind; }
  4380. +     virtual QListIterator<IMember> getMemberIterator() const { return m_members; }
  4381. +     void initialize(MainHandler *m);
  4382. +   private:
  4383. +     IBaseHandler *m_parent;
  4384. +     QString m_kind;
  4385. +     QList<IMember> m_members;
  4386. + };
  4387. + #endif
  4388. Index: addon/xmlparse/xmlparse.pro
  4389. ===================================================================
  4390. RCS file: addon/xmlparse/xmlparse.pro
  4391. diff -N addon/xmlparse/xmlparse.pro
  4392. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4393. --- addon/xmlparse/xmlparse.pro    16 Dec 2001 23:18:58 -0000    1.2
  4394. ***************
  4395. *** 0 ****
  4396. --- 1,30 ----
  4397. + #
  4398. + # This file was generated from xmlparse.pro.in on Wed Nov 21 10:56:16  2001
  4399. + #
  4400. + TEMPLATE     =    app.t
  4401. + CONFIG       =    console warn_on $extraopt
  4402. + HEADERS      =    basehandler.h mainhandler.h \
  4403. +                 compoundhandler.h sectionhandler.h \
  4404. +                 memberhandler.h paramhandler.h \
  4405. +                 dochandler.h 
  4406. + SOURCES      =    main.cpp mainhandler.cpp \
  4407. +                 compoundhandler.cpp sectionhandler.cpp \
  4408. +                 memberhandler.cpp paramhandler.cpp \
  4409. +                 dochandler.cpp 
  4410. + DEPENDPATH   = ../../src
  4411. + unix:LIBS                  += -L../../lib -ldoxycfg -lqtools 
  4412. + win32:INCLUDEPATH          += .
  4413. + win32-mingw:LIBS           += -L../../lib -ldoxycfg -lqtools 
  4414. + win32-msvc:LIBS            += qtools.lib doxycfg.lib shell32.lib 
  4415. + win32-msvc:TMAKE_LFLAGS    += /LIBPATH:..\..\lib
  4416. + win32-borland:LIBS         += qtools.lib doxycfg.lib shell32.lib
  4417. + win32-borland:TMAKE_LFLAGS += -L..\..\lib
  4418. + win32:TMAKE_CXXFLAGS       += -DQT_NODLL
  4419. + INCLUDEPATH                += ../../qtools ../../src
  4420. + DESTDIR                    =  
  4421. + TARGET                     =  xmlparse
  4422. + unix:TARGETDEPS            =  ../../lib/libdoxycfg.a
  4423. + win32:TARGETDEPS           =  ../../lib/doxycfg.lib
  4424. + OBJECTS_DIR                =  obj
  4425. Index: addon/xmlparse/xmlparse.pro.in
  4426. ===================================================================
  4427. RCS file: addon/xmlparse/xmlparse.pro.in
  4428. diff -N addon/xmlparse/xmlparse.pro.in
  4429. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4430. --- addon/xmlparse/xmlparse.pro.in    10 Sep 2001 06:22:23 -0000    1.1.1.1
  4431. ***************
  4432. *** 0 ****
  4433. --- 1,26 ----
  4434. + TEMPLATE     =    app.t
  4435. + CONFIG       =    console warn_on $extraopt
  4436. + HEADERS      =    basehandler.h mainhandler.h \
  4437. +                 compoundhandler.h sectionhandler.h \
  4438. +                 memberhandler.h paramhandler.h \
  4439. +                 dochandler.h 
  4440. + SOURCES      =    main.cpp mainhandler.cpp \
  4441. +                 compoundhandler.cpp sectionhandler.cpp \
  4442. +                 memberhandler.cpp paramhandler.cpp \
  4443. +                 dochandler.cpp 
  4444. + DEPENDPATH   = ../../src
  4445. + unix:LIBS                  += -L../../lib -ldoxycfg -lqtools 
  4446. + win32:INCLUDEPATH          += .
  4447. + win32-mingw:LIBS           += -L../../lib -ldoxycfg -lqtools 
  4448. + win32-msvc:LIBS            += qtools.lib doxycfg.lib shell32.lib 
  4449. + win32-msvc:TMAKE_LFLAGS    += /LIBPATH:..\..\lib
  4450. + win32-borland:LIBS         += qtools.lib doxycfg.lib shell32.lib
  4451. + win32-borland:TMAKE_LFLAGS += -L..\..\lib
  4452. + win32:TMAKE_CXXFLAGS       += -DQT_NODLL
  4453. + INCLUDEPATH                += ../../qtools ../../src
  4454. + DESTDIR                    =  
  4455. + TARGET                     =  xmlparse
  4456. + unix:TARGETDEPS            =  ../../lib/libdoxycfg.a
  4457. + win32:TARGETDEPS           =  ../../lib/doxycfg.lib
  4458. + OBJECTS_DIR                =  obj
  4459. Index: html/form-0.gif
  4460. ===================================================================
  4461. RCS file: html/form-0.gif
  4462. diff -N html/form-0.gif
  4463. Binary files /dev/null and /tmp/cvs3eaGZR differ
  4464. Index: html/form-1.gif
  4465. ===================================================================
  4466. RCS file: html/form-1.gif
  4467. diff -N html/form-1.gif
  4468. Binary files /dev/null and /tmp/cvs4eaGZR differ
  4469. Index: html/form-2.gif
  4470. ===================================================================
  4471. RCS file: html/form-2.gif
  4472. diff -N html/form-2.gif
  4473. Binary files /dev/null and /tmp/cvs5eaGZR differ
  4474. Index: html/form-3.gif
  4475. ===================================================================
  4476. RCS file: html/form-3.gif
  4477. diff -N html/form-3.gif
  4478. Binary files /dev/null and /tmp/cvs6eaGZR differ
  4479. Index: html/form-4.gif
  4480. ===================================================================
  4481. RCS file: html/form-4.gif
  4482. diff -N html/form-4.gif
  4483. Binary files /dev/null and /tmp/cvs7eaGZR differ
  4484. Index: html/form-5.gif
  4485. ===================================================================
  4486. RCS file: html/form-5.gif
  4487. diff -N html/form-5.gif
  4488. Binary files /dev/null and /tmp/cvs8eaGZR differ
  4489. Index: qtools/qtools.pro.in
  4490. ===================================================================
  4491. RCS file: /usr/local/cvs/tools/doxygen/qtools/qtools.pro.in,v
  4492. retrieving revision 1.1.1.1
  4493. retrieving revision 1.2
  4494. diff -b -c -b -c -r1.1.1.1 -r1.2
  4495. *** qtools/qtools.pro.in    10 Sep 2001 06:22:24 -0000    1.1.1.1
  4496. --- qtools/qtools.pro.in    3 Feb 2002 23:18:01 -0000    1.2
  4497. ***************
  4498. *** 72,77 ****
  4499. --- 72,79 ----
  4500.             qfileinfo_win32.cpp
  4501.   
  4502.   INCLUDEPATH = .
  4503. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  4504. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  4505.   TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE
  4506.   win32:TMAKE_CXXFLAGS += -DQT_NODLL
  4507.   OBJECTS_DIR = ../objects
  4508. Index: src/Makefile.in
  4509. ===================================================================
  4510. RCS file: /usr/local/cvs/tools/doxygen/src/Makefile.in,v
  4511. retrieving revision 1.1.1.8
  4512. retrieving revision 1.4
  4513. diff -b -c -b -c -r1.1.1.8 -r1.4
  4514. *** src/Makefile.in    7 Feb 2002 23:10:18 -0000    1.1.1.8
  4515. --- src/Makefile.in    7 Feb 2002 23:29:19 -0000    1.4
  4516. ***************
  4517. *** 1,6 ****
  4518.   
  4519.   #
  4520. ! # 
  4521.   #
  4522.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  4523.   # 
  4524. --- 1,6 ----
  4525.   
  4526.   #
  4527. ! # $Id$
  4528.   #
  4529.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  4530.   # 
  4531. Index: src/bufstr.h
  4532. ===================================================================
  4533. RCS file: /usr/local/cvs/tools/doxygen/src/bufstr.h,v
  4534. retrieving revision 1.1.1.8
  4535. retrieving revision 1.4
  4536. diff -b -c -b -c -r1.1.1.8 -r1.4
  4537. *** src/bufstr.h    7 Feb 2002 23:10:13 -0000    1.1.1.8
  4538. --- src/bufstr.h    7 Feb 2002 23:29:19 -0000    1.4
  4539. ***************
  4540. *** 1,6 ****
  4541.   /******************************************************************************
  4542.    *
  4543. !  * 
  4544.    *
  4545.    *
  4546.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  4547. --- 1,6 ----
  4548.   /******************************************************************************
  4549.    *
  4550. !  * $Id$
  4551.    *
  4552.    *
  4553.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  4554. Index: src/ce_parse.cpp
  4555. ===================================================================
  4556. RCS file: src/ce_parse.cpp
  4557. diff -N src/ce_parse.cpp
  4558. *** /dev/null    1 Jan 1970 00:00:00 -0000
  4559. --- src/ce_parse.cpp    1 Feb 2003 05:35:36 -0000
  4560. ***************
  4561. *** 0 ****
  4562. --- 1,1218 ----
  4563. + /*  A Bison parser, made from constexp.y
  4564. +     by GNU Bison version 1.28  */
  4565. + #define YYBISON 1  /* Identify Bison output.  */
  4566. + #define yyparse cppExpYYparse
  4567. + #define yylex cppExpYYlex
  4568. + #define yyerror cppExpYYerror
  4569. + #define yylval cppExpYYlval
  4570. + #define yychar cppExpYYchar
  4571. + #define yydebug cppExpYYdebug
  4572. + #define yynerrs cppExpYYnerrs
  4573. + #define    TOK_QUESTIONMARK    257
  4574. + #define    TOK_COLON    258
  4575. + #define    TOK_OR    259
  4576. + #define    TOK_AND    260
  4577. + #define    TOK_BITWISEOR    261
  4578. + #define    TOK_BITWISEXOR    262
  4579. + #define    TOK_AMPERSAND    263
  4580. + #define    TOK_NOTEQUAL    264
  4581. + #define    TOK_EQUAL    265
  4582. + #define    TOK_LESSTHAN    266
  4583. + #define    TOK_GREATERTHAN    267
  4584. + #define    TOK_LESSTHANOREQUALTO    268
  4585. + #define    TOK_GREATERTHANOREQUALTO    269
  4586. + #define    TOK_SHIFTLEFT    270
  4587. + #define    TOK_SHIFTRIGHT    271
  4588. + #define    TOK_PLUS    272
  4589. + #define    TOK_MINUS    273
  4590. + #define    TOK_STAR    274
  4591. + #define    TOK_DIVIDE    275
  4592. + #define    TOK_MOD    276
  4593. + #define    TOK_TILDE    277
  4594. + #define    TOK_NOT    278
  4595. + #define    TOK_LPAREN    279
  4596. + #define    TOK_RPAREN    280
  4597. + #define    TOK_OCTALINT    281
  4598. + #define    TOK_DECIMALINT    282
  4599. + #define    TOK_HEXADECIMALINT    283
  4600. + #define    TOK_CHARACTER    284
  4601. + #define    TOK_FLOAT    285
  4602. + #include "cppvalue.h"
  4603. + #include "constexp.h"
  4604. + #include "message.h"
  4605. + #if defined(_MSC_VER)
  4606. + #define MSDOS
  4607. + #endif
  4608. + #define YYSTYPE CPPValue
  4609. + #include <stdio.h>
  4610. + #include <stdlib.h>
  4611. + int cppExpYYerror(const char *s)
  4612. + {
  4613. +   warn(g_constExpFileName,g_constExpLineNr,
  4614. +        "Problem during constant expression evaluation: %s",s);
  4615. +   return 0;
  4616. + }
  4617. + int cppExpYYlex();
  4618. + #ifndef YYSTYPE
  4619. + #define YYSTYPE int
  4620. + #endif
  4621. + #include <stdio.h>
  4622. + #ifndef __cplusplus
  4623. + #ifndef __STDC__
  4624. + #define const
  4625. + #endif
  4626. + #endif
  4627. + #define    YYFINAL        73
  4628. + #define    YYFLAG        -32768
  4629. + #define    YYNTBASE    32
  4630. + #define YYTRANSLATE(x) ((unsigned)(x) <= 285 ? yytranslate[x] : 47)
  4631. + static const char yytranslate[] = {     0,
  4632. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4633. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4634. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4635. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4636. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4637. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4638. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4639. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4640. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4641. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4642. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4643. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4644. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4645. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4646. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4647. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4648. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4649. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4650. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4651. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4652. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4653. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4654. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4655. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4656. +      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  4657. +      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
  4658. +      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
  4659. +     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
  4660. +     27,    28,    29,    30,    31
  4661. + };
  4662. + #if YYDEBUG != 0
  4663. + static const short yyprhs[] = {     0,
  4664. +      0,     2,     4,    10,    12,    16,    18,    22,    24,    28,
  4665. +     30,    34,    36,    40,    42,    46,    50,    52,    56,    60,
  4666. +     64,    68,    70,    74,    78,    80,    84,    88,    90,    94,
  4667. +     98,   102,   104,   107,   110,   113,   116,   118,   122,   124,
  4668. +    126,   128,   130
  4669. + };
  4670. + static const short yyrhs[] = {    33,
  4671. +      0,    34,     0,    34,     3,    34,     4,    34,     0,    35,
  4672. +      0,    34,     5,    35,     0,    36,     0,    35,     6,    36,
  4673. +      0,    37,     0,    36,     7,    37,     0,    38,     0,    37,
  4674. +      8,    38,     0,    39,     0,    38,     9,    39,     0,    40,
  4675. +      0,    39,    11,    40,     0,    39,    10,    40,     0,    41,
  4676. +      0,    40,    12,    41,     0,    40,    13,    41,     0,    40,
  4677. +     14,    41,     0,    40,    15,    41,     0,    42,     0,    41,
  4678. +     16,    42,     0,    41,    17,    42,     0,    43,     0,    42,
  4679. +     18,    43,     0,    42,    19,    43,     0,    44,     0,    43,
  4680. +     20,    44,     0,    43,    21,    44,     0,    43,    22,    44,
  4681. +      0,    45,     0,    18,    44,     0,    19,    44,     0,    23,
  4682. +     44,     0,    24,    44,     0,    46,     0,    25,    33,    26,
  4683. +      0,    27,     0,    28,     0,    29,     0,    30,     0,    31,
  4684. +      0
  4685. + };
  4686. + #endif
  4687. + #if YYDEBUG != 0
  4688. + static const short yyrline[] = { 0,
  4689. +     77,    81,    83,    92,    94,   100,   102,   108,   110,   117,
  4690. +    119,   125,   127,   133,   135,   139,   145,   147,   151,   155,
  4691. +    160,   167,   169,   173,   179,   181,   192,   205,   207,   218,
  4692. +    231,   239,   241,   243,   250,   254,   260,   262,   266,   268,
  4693. +    270,   272,   274
  4694. + };
  4695. + #endif
  4696. + #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
  4697. + static const char * const yytname[] = {   "$","error","$undefined.","TOK_QUESTIONMARK",
  4698. + "TOK_COLON","TOK_OR","TOK_AND","TOK_BITWISEOR","TOK_BITWISEXOR","TOK_AMPERSAND",
  4699. + "TOK_NOTEQUAL","TOK_EQUAL","TOK_LESSTHAN","TOK_GREATERTHAN","TOK_LESSTHANOREQUALTO",
  4700. + "TOK_GREATERTHANOREQUALTO","TOK_SHIFTLEFT","TOK_SHIFTRIGHT","TOK_PLUS","TOK_MINUS",
  4701. + "TOK_STAR","TOK_DIVIDE","TOK_MOD","TOK_TILDE","TOK_NOT","TOK_LPAREN","TOK_RPAREN",
  4702. + "TOK_OCTALINT","TOK_DECIMALINT","TOK_HEXADECIMALINT","TOK_CHARACTER","TOK_FLOAT",
  4703. + "start","constant_expression","logical_or_expression","logical_and_expression",
  4704. + "inclusive_or_expression","exclusive_or_expression","and_expression","equality_expression",
  4705. + "relational_expression","shift_expression","additive_expression","multiplicative_expression",
  4706. + "unary_expression","primary_expression","constant", NULL
  4707. + };
  4708. + #endif
  4709. + static const short yyr1[] = {     0,
  4710. +     32,    33,    33,    34,    34,    35,    35,    36,    36,    37,
  4711. +     37,    38,    38,    39,    39,    39,    40,    40,    40,    40,
  4712. +     40,    41,    41,    41,    42,    42,    42,    43,    43,    43,
  4713. +     43,    44,    44,    44,    44,    44,    45,    45,    46,    46,
  4714. +     46,    46,    46
  4715. + };
  4716. + static const short yyr2[] = {     0,
  4717. +      1,     1,     5,     1,     3,     1,     3,     1,     3,     1,
  4718. +      3,     1,     3,     1,     3,     3,     1,     3,     3,     3,
  4719. +      3,     1,     3,     3,     1,     3,     3,     1,     3,     3,
  4720. +      3,     1,     2,     2,     2,     2,     1,     3,     1,     1,
  4721. +      1,     1,     1
  4722. + };
  4723. + static const short yydefact[] = {     0,
  4724. +      0,     0,     0,     0,     0,    39,    40,    41,    42,    43,
  4725. +      1,     2,     4,     6,     8,    10,    12,    14,    17,    22,
  4726. +     25,    28,    32,    37,    33,    34,    35,    36,     0,     0,
  4727. +      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
  4728. +      0,     0,     0,     0,     0,     0,     0,     0,    38,     0,
  4729. +      5,     7,     9,    11,    13,    16,    15,    18,    19,    20,
  4730. +     21,    23,    24,    26,    27,    29,    30,    31,     0,     3,
  4731. +      0,     0,     0
  4732. + };
  4733. + static const short yydefgoto[] = {    71,
  4734. +     11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
  4735. +     21,    22,    23,    24
  4736. + };
  4737. + static const short yypact[] = {   -13,
  4738. +    -13,   -13,   -13,   -13,   -13,-32768,-32768,-32768,-32768,-32768,
  4739. + -32768,     4,     2,    20,    27,    31,    21,     7,    17,    18,
  4740. +      8,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    24,   -13,
  4741. +    -13,   -13,   -13,   -13,   -13,   -13,   -13,   -13,   -13,   -13,
  4742. +    -13,   -13,   -13,   -13,   -13,   -13,   -13,   -13,-32768,    34,
  4743. +      2,    20,    27,    31,    21,     7,     7,    17,    17,    17,
  4744. +     17,    18,    18,     8,     8,-32768,-32768,-32768,   -13,    39,
  4745. +     13,    51,-32768
  4746. + };
  4747. + static const short yypgoto[] = {-32768,
  4748. +     47,   -26,    25,    23,    26,    28,    22,     5,   -15,     6,
  4749. +      9,    -1,-32768,-32768
  4750. + };
  4751. + #define    YYLAST        62
  4752. + static const short yytable[] = {    25,
  4753. +     26,    27,    28,    50,     1,     2,    30,    32,    31,     3,
  4754. +      4,     5,    72,     6,     7,     8,     9,    10,    38,    39,
  4755. +     40,    41,    58,    59,    60,    61,    33,    46,    47,    48,
  4756. +     36,    37,    42,    43,    34,    44,    45,    69,    31,    35,
  4757. +     56,    57,    70,    31,    66,    67,    68,    62,    63,    49,
  4758. +     73,    29,    64,    65,    52,    51,    55,     0,    53,     0,
  4759. +      0,    54
  4760. + };
  4761. + static const short yycheck[] = {     1,
  4762. +      2,     3,     4,    30,    18,    19,     3,     6,     5,    23,
  4763. +     24,    25,     0,    27,    28,    29,    30,    31,    12,    13,
  4764. +     14,    15,    38,    39,    40,    41,     7,    20,    21,    22,
  4765. +     10,    11,    16,    17,     8,    18,    19,     4,     5,     9,
  4766. +     36,    37,    69,     5,    46,    47,    48,    42,    43,    26,
  4767. +      0,     5,    44,    45,    32,    31,    35,    -1,    33,    -1,
  4768. +     -1,    34
  4769. + };
  4770. + /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
  4771. + /* This file comes from bison-1.28.  */
  4772. + /* Skeleton output parser for bison,
  4773. +    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
  4774. +    This program is free software; you can redistribute it and/or modify
  4775. +    it under the terms of the GNU General Public License as published by
  4776. +    the Free Software Foundation; either version 2, or (at your option)
  4777. +    any later version.
  4778. +    This program is distributed in the hope that it will be useful,
  4779. +    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4780. +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  4781. +    GNU General Public License for more details.
  4782. +    You should have received a copy of the GNU General Public License
  4783. +    along with this program; if not, write to the Free Software
  4784. +    Foundation, Inc., 59 Temple Place - Suite 330,
  4785. +    Boston, MA 02111-1307, USA.  */
  4786. + /* As a special exception, when this file is copied by Bison into a
  4787. +    Bison output file, you may use that output file without restriction.
  4788. +    This special exception was added by the Free Software Foundation
  4789. +    in version 1.24 of Bison.  */
  4790. + /* This is the parser code that is written into each bison parser
  4791. +   when the %semantic_parser declaration is not specified in the grammar.
  4792. +   It was written by Richard Stallman by simplifying the hairy parser
  4793. +   used when %semantic_parser is specified.  */
  4794. + #ifndef YYSTACK_USE_ALLOCA
  4795. + #ifdef alloca
  4796. + #define YYSTACK_USE_ALLOCA
  4797. + #else /* alloca not defined */
  4798. + #ifdef __GNUC__
  4799. + #define YYSTACK_USE_ALLOCA
  4800. + #define alloca __builtin_alloca
  4801. + #else /* not GNU C.  */
  4802. + #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
  4803. + #define YYSTACK_USE_ALLOCA
  4804. + #include <alloca.h>
  4805. + #else /* not sparc */
  4806. + /* We think this test detects Watcom and Microsoft C.  */
  4807. + /* This used to test MSDOS, but that is a bad idea
  4808. +    since that symbol is in the user namespace.  */
  4809. + #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
  4810. + #if 0 /* No need for malloc.h, which pollutes the namespace;
  4811. +      instead, just don't use alloca.  */
  4812. + #include <malloc.h>
  4813. + #endif
  4814. + #else /* not MSDOS, or __TURBOC__ */
  4815. + #if defined(_AIX)
  4816. + /* I don't know what this was needed for, but it pollutes the namespace.
  4817. +    So I turned it off.   rms, 2 May 1997.  */
  4818. + /* #include <malloc.h>  */
  4819. +  #pragma alloca
  4820. + #define YYSTACK_USE_ALLOCA
  4821. + #else /* not MSDOS, or __TURBOC__, or _AIX */
  4822. + #if 0
  4823. + #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
  4824. +          and on HPUX 10.  Eventually we can turn this on.  */
  4825. + #define YYSTACK_USE_ALLOCA
  4826. + #define alloca __builtin_alloca
  4827. + #endif /* __hpux */
  4828. + #endif
  4829. + #endif /* not _AIX */
  4830. + #endif /* not MSDOS, or __TURBOC__ */
  4831. + #endif /* not sparc */
  4832. + #endif /* not GNU C */
  4833. + #endif /* alloca not defined */
  4834. + #endif /* YYSTACK_USE_ALLOCA not defined */
  4835. + #ifdef YYSTACK_USE_ALLOCA
  4836. + #define YYSTACK_ALLOC alloca
  4837. + #else
  4838. + #define YYSTACK_ALLOC malloc
  4839. + #endif
  4840. + /* Note: there must be only one dollar sign in this file.
  4841. +    It is replaced by the list of actions, each action
  4842. +    as one case of the switch.  */
  4843. + #define yyerrok        (yyerrstatus = 0)
  4844. + #define yyclearin    (yychar = YYEMPTY)
  4845. + #define YYEMPTY        -2
  4846. + #define YYEOF        0
  4847. + #define YYACCEPT    goto yyacceptlab
  4848. + #define YYABORT     goto yyabortlab
  4849. + #define YYERROR        goto yyerrlab1
  4850. + /* Like YYERROR except do call yyerror.
  4851. +    This remains here temporarily to ease the
  4852. +    transition to the new meaning of YYERROR, for GCC.
  4853. +    Once GCC version 2 has supplanted version 1, this can go.  */
  4854. + #define YYFAIL        goto yyerrlab
  4855. + #define YYRECOVERING()  (!!yyerrstatus)
  4856. + #define YYBACKUP(token, value) \
  4857. + do                                \
  4858. +   if (yychar == YYEMPTY && yylen == 1)                \
  4859. +     { yychar = (token), yylval = (value);            \
  4860. +       yychar1 = YYTRANSLATE (yychar);                \
  4861. +       YYPOPSTACK;                        \
  4862. +       goto yybackup;                        \
  4863. +     }                                \
  4864. +   else                                \
  4865. +     { yyerror ("syntax error: cannot back up"); YYERROR; }    \
  4866. + while (0)
  4867. + #define YYTERROR    1
  4868. + #define YYERRCODE    256
  4869. + #ifndef YYPURE
  4870. + #define YYLEX        yylex()
  4871. + #endif
  4872. + #ifdef YYPURE
  4873. + #ifdef YYLSP_NEEDED
  4874. + #ifdef YYLEX_PARAM
  4875. + #define YYLEX        yylex(&yylval, &yylloc, YYLEX_PARAM)
  4876. + #else
  4877. + #define YYLEX        yylex(&yylval, &yylloc)
  4878. + #endif
  4879. + #else /* not YYLSP_NEEDED */
  4880. + #ifdef YYLEX_PARAM
  4881. + #define YYLEX        yylex(&yylval, YYLEX_PARAM)
  4882. + #else
  4883. + #define YYLEX        yylex(&yylval)
  4884. + #endif
  4885. + #endif /* not YYLSP_NEEDED */
  4886. + #endif
  4887. + /* If nonreentrant, generate the variables here */
  4888. + #ifndef YYPURE
  4889. + int    yychar;            /*  the lookahead symbol        */
  4890. + YYSTYPE    yylval;            /*  the semantic value of the        */
  4891. +                 /*  lookahead symbol            */
  4892. + #ifdef YYLSP_NEEDED
  4893. + YYLTYPE yylloc;            /*  location data for the lookahead    */
  4894. +                 /*  symbol                */
  4895. + #endif
  4896. + int yynerrs;            /*  number of parse errors so far       */
  4897. + #endif  /* not YYPURE */
  4898. + #if YYDEBUG != 0
  4899. + int yydebug;            /*  nonzero means print parse trace    */
  4900. + /* Since this is uninitialized, it does not stop multiple parsers
  4901. +    from coexisting.  */
  4902. + #endif
  4903. + /*  YYINITDEPTH indicates the initial size of the parser's stacks    */
  4904. + #ifndef    YYINITDEPTH
  4905. + #define YYINITDEPTH 200
  4906. + #endif
  4907. + /*  YYMAXDEPTH is the maximum size the stacks can grow to
  4908. +     (effective only if the built-in stack extension method is used).  */
  4909. + #if YYMAXDEPTH == 0
  4910. + #undef YYMAXDEPTH
  4911. + #endif
  4912. + #ifndef YYMAXDEPTH
  4913. + #define YYMAXDEPTH 10000
  4914. + #endif
  4915. + /* Define __yy_memcpy.  Note that the size argument
  4916. +    should be passed with type unsigned int, because that is what the non-GCC
  4917. +    definitions require.  With GCC, __builtin_memcpy takes an arg
  4918. +    of type size_t, but it can handle unsigned int.  */
  4919. + #if __GNUC__ > 1        /* GNU C and GNU C++ define this.  */
  4920. + #define __yy_memcpy(TO,FROM,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
  4921. + #else                /* not GNU C or C++ */
  4922. + #ifndef __cplusplus
  4923. + /* This is the most reliable way to avoid incompatibilities
  4924. +    in available built-in functions on various systems.  */
  4925. + static void
  4926. + __yy_memcpy (to, from, count)
  4927. +      char *to;
  4928. +      char *from;
  4929. +      unsigned int count;
  4930. + {
  4931. +   register char *f = from;
  4932. +   register char *t = to;
  4933. +   register int i = count;
  4934. +   while (i-- > 0)
  4935. +     *t++ = *f++;
  4936. + }
  4937. + #else /* __cplusplus */
  4938. + /* This is the most reliable way to avoid incompatibilities
  4939. +    in available built-in functions on various systems.  */
  4940. + static void
  4941. + __yy_memcpy (char *to, char *from, unsigned int count)
  4942. + {
  4943. +   register char *t = to;
  4944. +   register char *f = from;
  4945. +   register int i = count;
  4946. +   while (i-- > 0)
  4947. +     *t++ = *f++;
  4948. + }
  4949. + #endif
  4950. + #endif
  4951. + /* The user can define YYPARSE_PARAM as the name of an argument to be passed
  4952. +    into yyparse.  The argument should have type void *.
  4953. +    It should actually point to an object.
  4954. +    Grammar actions can access the variable by casting it
  4955. +    to the proper pointer type.  */
  4956. + #ifdef YYPARSE_PARAM
  4957. + #ifdef __cplusplus
  4958. + #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
  4959. + #define YYPARSE_PARAM_DECL
  4960. + #else /* not __cplusplus */
  4961. + #define YYPARSE_PARAM_ARG YYPARSE_PARAM
  4962. + #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
  4963. + #endif /* not __cplusplus */
  4964. + #else /* not YYPARSE_PARAM */
  4965. + #define YYPARSE_PARAM_ARG
  4966. + #define YYPARSE_PARAM_DECL
  4967. + #endif /* not YYPARSE_PARAM */
  4968. + /* Prevent warning if -Wstrict-prototypes.  */
  4969. + #ifdef __GNUC__
  4970. + #ifdef YYPARSE_PARAM
  4971. + int yyparse (void *);
  4972. + #else
  4973. + int yyparse (void);
  4974. + #endif
  4975. + #endif
  4976. + int
  4977. + yyparse(YYPARSE_PARAM_ARG)
  4978. +      YYPARSE_PARAM_DECL
  4979. + {
  4980. +   register int yystate;
  4981. +   register int yyn;
  4982. +   register short *yyssp;
  4983. +   register YYSTYPE *yyvsp;
  4984. +   int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
  4985. +   int yychar1 = 0;        /*  lookahead token as an internal (translated) token number */
  4986. +   short    yyssa[YYINITDEPTH];    /*  the state stack            */
  4987. +   YYSTYPE yyvsa[YYINITDEPTH];    /*  the semantic value stack        */
  4988. +   short *yyss = yyssa;        /*  refer to the stacks thru separate pointers */
  4989. +   YYSTYPE *yyvs = yyvsa;    /*  to allow yyoverflow to reallocate them elsewhere */
  4990. + #ifdef YYLSP_NEEDED
  4991. +   YYLTYPE yylsa[YYINITDEPTH];    /*  the location stack            */
  4992. +   YYLTYPE *yyls = yylsa;
  4993. +   YYLTYPE *yylsp;
  4994. + #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
  4995. + #else
  4996. + #define YYPOPSTACK   (yyvsp--, yyssp--)
  4997. + #endif
  4998. +   int yystacksize = YYINITDEPTH;
  4999. +   int yyfree_stacks = 0;
  5000. + #ifdef YYPURE
  5001. +   int yychar;
  5002. +   YYSTYPE yylval;
  5003. +   int yynerrs;
  5004. + #ifdef YYLSP_NEEDED
  5005. +   YYLTYPE yylloc;
  5006. + #endif
  5007. + #endif
  5008. +   YYSTYPE yyval;        /*  the variable used to return        */
  5009. +                 /*  semantic values from the action    */
  5010. +                 /*  routines                */
  5011. +   int yylen;
  5012. + #if YYDEBUG != 0
  5013. +   if (yydebug)
  5014. +     fprintf(stderr, "Starting parse\n");
  5015. + #endif
  5016. +   yystate = 0;
  5017. +   yyerrstatus = 0;
  5018. +   yynerrs = 0;
  5019. +   yychar = YYEMPTY;        /* Cause a token to be read.  */
  5020. +   /* Initialize stack pointers.
  5021. +      Waste one element of value and location stack
  5022. +      so that they stay on the same level as the state stack.
  5023. +      The wasted elements are never initialized.  */
  5024. +   yyssp = yyss - 1;
  5025. +   yyvsp = yyvs;
  5026. + #ifdef YYLSP_NEEDED
  5027. +   yylsp = yyls;
  5028. + #endif
  5029. + /* Push a new state, which is found in  yystate  .  */
  5030. + /* In all cases, when you get here, the value and location stacks
  5031. +    have just been pushed. so pushing a state here evens the stacks.  */
  5032. + yynewstate:
  5033. +   *++yyssp = yystate;
  5034. +   if (yyssp >= yyss + yystacksize - 1)
  5035. +     {
  5036. +       /* Give user a chance to reallocate the stack */
  5037. +       /* Use copies of these so that the &'s don't force the real ones into memory. */
  5038. +       YYSTYPE *yyvs1 = yyvs;
  5039. +       short *yyss1 = yyss;
  5040. + #ifdef YYLSP_NEEDED
  5041. +       YYLTYPE *yyls1 = yyls;
  5042. + #endif
  5043. +       /* Get the current used size of the three stacks, in elements.  */
  5044. +       int size = yyssp - yyss + 1;
  5045. + #ifdef yyoverflow
  5046. +       /* Each stack pointer address is followed by the size of
  5047. +      the data in use in that stack, in bytes.  */
  5048. + #ifdef YYLSP_NEEDED
  5049. +       /* This used to be a conditional around just the two extra args,
  5050. +      but that might be undefined if yyoverflow is a macro.  */
  5051. +       yyoverflow("parser stack overflow",
  5052. +          &yyss1, size * sizeof (*yyssp),
  5053. +          &yyvs1, size * sizeof (*yyvsp),
  5054. +          &yyls1, size * sizeof (*yylsp),
  5055. +          &yystacksize);
  5056. + #else
  5057. +       yyoverflow("parser stack overflow",
  5058. +          &yyss1, size * sizeof (*yyssp),
  5059. +          &yyvs1, size * sizeof (*yyvsp),
  5060. +          &yystacksize);
  5061. + #endif
  5062. +       yyss = yyss1; yyvs = yyvs1;
  5063. + #ifdef YYLSP_NEEDED
  5064. +       yyls = yyls1;
  5065. + #endif
  5066. + #else /* no yyoverflow */
  5067. +       /* Extend the stack our own way.  */
  5068. +       if (yystacksize >= YYMAXDEPTH)
  5069. +     {
  5070. +       yyerror("parser stack overflow");
  5071. +       if (yyfree_stacks)
  5072. +         {
  5073. +           free (yyss);
  5074. +           free (yyvs);
  5075. + #ifdef YYLSP_NEEDED
  5076. +           free (yyls);
  5077. + #endif
  5078. +         }
  5079. +       return 2;
  5080. +     }
  5081. +       yystacksize *= 2;
  5082. +       if (yystacksize > YYMAXDEPTH)
  5083. +     yystacksize = YYMAXDEPTH;
  5084. + #ifndef YYSTACK_USE_ALLOCA
  5085. +       yyfree_stacks = 1;
  5086. + #endif
  5087. +       yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
  5088. +       __yy_memcpy ((char *)yyss, (char *)yyss1,
  5089. +            size * (unsigned int) sizeof (*yyssp));
  5090. +       yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
  5091. +       __yy_memcpy ((char *)yyvs, (char *)yyvs1,
  5092. +            size * (unsigned int) sizeof (*yyvsp));
  5093. + #ifdef YYLSP_NEEDED
  5094. +       yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
  5095. +       __yy_memcpy ((char *)yyls, (char *)yyls1,
  5096. +            size * (unsigned int) sizeof (*yylsp));
  5097. + #endif
  5098. + #endif /* no yyoverflow */
  5099. +       yyssp = yyss + size - 1;
  5100. +       yyvsp = yyvs + size - 1;
  5101. + #ifdef YYLSP_NEEDED
  5102. +       yylsp = yyls + size - 1;
  5103. + #endif
  5104. + #if YYDEBUG != 0
  5105. +       if (yydebug)
  5106. +     fprintf(stderr, "Stack size increased to %d\n", yystacksize);
  5107. + #endif
  5108. +       if (yyssp >= yyss + yystacksize - 1)
  5109. +     YYABORT;
  5110. +     }
  5111. + #if YYDEBUG != 0
  5112. +   if (yydebug)
  5113. +     fprintf(stderr, "Entering state %d\n", yystate);
  5114. + #endif
  5115. +   goto yybackup;
  5116. +  yybackup:
  5117. + /* Do appropriate processing given the current state.  */
  5118. + /* Read a lookahead token if we need one and don't already have one.  */
  5119. + /* yyresume: */
  5120. +   /* First try to decide what to do without reference to lookahead token.  */
  5121. +   yyn = yypact[yystate];
  5122. +   if (yyn == YYFLAG)
  5123. +     goto yydefault;
  5124. +   /* Not known => get a lookahead token if don't already have one.  */
  5125. +   /* yychar is either YYEMPTY or YYEOF
  5126. +      or a valid token in external form.  */
  5127. +   if (yychar == YYEMPTY)
  5128. +     {
  5129. + #if YYDEBUG != 0
  5130. +       if (yydebug)
  5131. +     fprintf(stderr, "Reading a token: ");
  5132. + #endif
  5133. +       yychar = YYLEX;
  5134. +     }
  5135. +   /* Convert token to internal form (in yychar1) for indexing tables with */
  5136. +   if (yychar <= 0)        /* This means end of input. */
  5137. +     {
  5138. +       yychar1 = 0;
  5139. +       yychar = YYEOF;        /* Don't call YYLEX any more */
  5140. + #if YYDEBUG != 0
  5141. +       if (yydebug)
  5142. +     fprintf(stderr, "Now at end of input.\n");
  5143. + #endif
  5144. +     }
  5145. +   else
  5146. +     {
  5147. +       yychar1 = YYTRANSLATE(yychar);
  5148. + #if YYDEBUG != 0
  5149. +       if (yydebug)
  5150. +     {
  5151. +       fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
  5152. +       /* Give the individual parser a way to print the precise meaning
  5153. +          of a token, for further debugging info.  */
  5154. + #ifdef YYPRINT
  5155. +       YYPRINT (stderr, yychar, yylval);
  5156. + #endif
  5157. +       fprintf (stderr, ")\n");
  5158. +     }
  5159. + #endif
  5160. +     }
  5161. +   yyn += yychar1;
  5162. +   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
  5163. +     goto yydefault;
  5164. +   yyn = yytable[yyn];
  5165. +   /* yyn is what to do for this token type in this state.
  5166. +      Negative => reduce, -yyn is rule number.
  5167. +      Positive => shift, yyn is new state.
  5168. +        New state is final state => don't bother to shift,
  5169. +        just return success.
  5170. +      0, or most negative number => error.  */
  5171. +   if (yyn < 0)
  5172. +     {
  5173. +       if (yyn == YYFLAG)
  5174. +     goto yyerrlab;
  5175. +       yyn = -yyn;
  5176. +       goto yyreduce;
  5177. +     }
  5178. +   else if (yyn == 0)
  5179. +     goto yyerrlab;
  5180. +   if (yyn == YYFINAL)
  5181. +     YYACCEPT;
  5182. +   /* Shift the lookahead token.  */
  5183. + #if YYDEBUG != 0
  5184. +   if (yydebug)
  5185. +     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
  5186. + #endif
  5187. +   /* Discard the token being shifted unless it is eof.  */
  5188. +   if (yychar != YYEOF)
  5189. +     yychar = YYEMPTY;
  5190. +   *++yyvsp = yylval;
  5191. + #ifdef YYLSP_NEEDED
  5192. +   *++yylsp = yylloc;
  5193. + #endif
  5194. +   /* count tokens shifted since error; after three, turn off error status.  */
  5195. +   if (yyerrstatus) yyerrstatus--;
  5196. +   yystate = yyn;
  5197. +   goto yynewstate;
  5198. + /* Do the default action for the current state.  */
  5199. + yydefault:
  5200. +   yyn = yydefact[yystate];
  5201. +   if (yyn == 0)
  5202. +     goto yyerrlab;
  5203. + /* Do a reduction.  yyn is the number of a rule to reduce with.  */
  5204. + yyreduce:
  5205. +   yylen = yyr2[yyn];
  5206. +   if (yylen > 0)
  5207. +     yyval = yyvsp[1-yylen]; /* implement default value of the action */
  5208. + #if YYDEBUG != 0
  5209. +   if (yydebug)
  5210. +     {
  5211. +       int i;
  5212. +       fprintf (stderr, "Reducing via rule %d (line %d), ",
  5213. +            yyn, yyrline[yyn]);
  5214. +       /* Print the symbols being reduced, and their result.  */
  5215. +       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
  5216. +     fprintf (stderr, "%s ", yytname[yyrhs[i]]);
  5217. +       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
  5218. +     }
  5219. + #endif
  5220. +   switch (yyn) {
  5221. + case 1:
  5222. + { g_resultValue = yyvsp[0]; return 0; ;
  5223. +     break;}
  5224. + case 2:
  5225. + { yyval = yyvsp[0]; ;
  5226. +     break;}
  5227. + case 3:
  5228. + {
  5229. +                bool c = (yyvsp[-4].isInt() ? ((long)yyvsp[-4] != 0) : ((double)yyvsp[-4] != 0.0));
  5230. +                yyval = c ? yyvsp[-2] : yyvsp[0];
  5231. +                  ;
  5232. +     break;}
  5233. + case 4:
  5234. + { yyval = yyvsp[0]; ;
  5235. +     break;}
  5236. + case 5:
  5237. + {
  5238. +              yyval = CPPValue( (long)((long)yyvsp[-2] || (long)yyvsp[0]) );
  5239. +                ;
  5240. +     break;}
  5241. + case 6:
  5242. + { yyval = yyvsp[0]; ;
  5243. +     break;}
  5244. + case 7:
  5245. + {
  5246. +               yyval = CPPValue( (long)((long)yyvsp[-2] && (long)yyvsp[0]) );
  5247. +             ;
  5248. +     break;}
  5249. + case 8:
  5250. + { yyval = yyvsp[0]; ;
  5251. +     break;}
  5252. + case 9:
  5253. + { 
  5254. +                yyval = CPPValue( (long)yyvsp[-2] | (long)yyvsp[0] );
  5255. +              ;
  5256. +     break;}
  5257. + case 10:
  5258. + { yyval = yyvsp[0]; ;
  5259. +     break;}
  5260. + case 11:
  5261. + {
  5262. +                yyval = CPPValue( (long)yyvsp[-2] ^ (long)yyvsp[0] );
  5263. +              ;
  5264. +     break;}
  5265. + case 12:
  5266. + { yyval = yyvsp[0]; ;
  5267. +     break;}
  5268. + case 13:
  5269. + { 
  5270. +           yyval = CPPValue( (long)yyvsp[-2] & (long)yyvsp[0] );
  5271. +         ;
  5272. +     break;}
  5273. + case 14:
  5274. + { yyval = yyvsp[0]; ;
  5275. +     break;}
  5276. + case 15:
  5277. + { 
  5278. +                yyval = CPPValue( (long)((double)yyvsp[-2] == (double)yyvsp[0]) );
  5279. +                  ;
  5280. +     break;}
  5281. + case 16:
  5282. + {
  5283. +                        yyval = CPPValue( (long)((double)yyvsp[-2] != (double)yyvsp[0]) );
  5284. +              ;
  5285. +     break;}
  5286. + case 17:
  5287. + { yyval = yyvsp[0]; ;
  5288. +     break;}
  5289. + case 18:
  5290. + { 
  5291. +              yyval = CPPValue( (long)((double)yyvsp[-2] < (double)yyvsp[0]) );
  5292. +                ;
  5293. +     break;}
  5294. + case 19:
  5295. + {
  5296. +                          yyval = CPPValue( (long)((double)yyvsp[-2] > (double)yyvsp[0]) );
  5297. +                ;
  5298. +     break;}
  5299. + case 20:
  5300. + {
  5301. +                  yyval = CPPValue( (long)((double)yyvsp[-2] <= (double)yyvsp[0]) );
  5302. +                ;
  5303. +     break;}
  5304. + case 21:
  5305. + {
  5306. +              yyval = CPPValue( (long)((double)yyvsp[-2] >= (double)yyvsp[0]) );
  5307. +                ;
  5308. +     break;}
  5309. + case 22:
  5310. + { yyval = yyvsp[0]; ;
  5311. +     break;}
  5312. + case 23:
  5313. + {
  5314. +             yyval = CPPValue( (long)yyvsp[-2] << (long)yyvsp[0] );    
  5315. +           ;
  5316. +     break;}
  5317. + case 24:
  5318. + {
  5319. +             yyval = CPPValue( (long)yyvsp[-2] >> (long)yyvsp[0] );
  5320. +           ;
  5321. +     break;}
  5322. + case 25:
  5323. + { yyval = yyvsp[0]; ;
  5324. +     break;}
  5325. + case 26:
  5326. + {
  5327. +                if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
  5328. +                {
  5329. +                  yyval = CPPValue( (double)yyvsp[-2] + (double)yyvsp[0] );
  5330. +                }
  5331. +                else    
  5332. +                {
  5333. +                  yyval = CPPValue( (long)yyvsp[-2] + (long)yyvsp[0] );
  5334. +                }
  5335. +              ;
  5336. +     break;}
  5337. + case 27:
  5338. + {
  5339. +                if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
  5340. +                {
  5341. +                  yyval = CPPValue( (double)yyvsp[-2] - (double)yyvsp[0] );
  5342. +                }
  5343. +                else    
  5344. +                {
  5345. +                  yyval = CPPValue( (long)yyvsp[-2] - (long)yyvsp[0] );
  5346. +                }
  5347. +              ;
  5348. +     break;}
  5349. + case 28:
  5350. + { yyval = yyvsp[0]; ;
  5351. +     break;}
  5352. + case 29:
  5353. + { 
  5354. +                  if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
  5355. +                  {
  5356. +                    yyval = CPPValue( (double)yyvsp[-2] * (double)yyvsp[0] );
  5357. +                  }
  5358. +                  else
  5359. +                  {
  5360. +                    yyval = CPPValue( (long)yyvsp[-2] * (long)yyvsp[0] );
  5361. +                  }
  5362. +                ;
  5363. +     break;}
  5364. + case 30:
  5365. + { 
  5366. +                  if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
  5367. +                  {
  5368. +                    yyval = CPPValue( (double)yyvsp[-2] / (double)yyvsp[0] );
  5369. +                  }
  5370. +                  else
  5371. +                  {
  5372. +                    long value = yyvsp[0];
  5373. +                    if (value==0) value=1;
  5374. +                    yyval = CPPValue( (long)yyvsp[-2] / value );
  5375. +                  }
  5376. +                ;
  5377. +     break;}
  5378. + case 31:
  5379. + { 
  5380. +                  long value = yyvsp[0];
  5381. +                  if (value==0) value=1;
  5382. +                  yyval = CPPValue( (long)yyvsp[-2] % value );
  5383. +                ;
  5384. +     break;}
  5385. + case 32:
  5386. + { yyval = yyvsp[0]; ;
  5387. +     break;}
  5388. + case 33:
  5389. + { yyval = yyvsp[-1]; ;
  5390. +     break;}
  5391. + case 34:
  5392. + { 
  5393. +             if (yyvsp[0].isInt()) 
  5394. +                       yyval = CPPValue(-(long)yyvsp[0]);
  5395. +                     else
  5396. +               yyval = CPPValue(-(double)yyvsp[0]);
  5397. +           ;
  5398. +     break;}
  5399. + case 35:
  5400. + {
  5401. +             yyval = CPPValue(~(long)yyvsp[0]);
  5402. +           ;
  5403. +     break;}
  5404. + case 36:
  5405. + {
  5406. +             yyval = CPPValue((long)!(long)yyvsp[0]);
  5407. +           ;
  5408. +     break;}
  5409. + case 37:
  5410. + { yyval = yyvsp[0]; ;
  5411. +     break;}
  5412. + case 38:
  5413. + { yyval = yyvsp[-1]; ;
  5414. +     break;}
  5415. + case 39:
  5416. + { yyval = parseOctal(); ;
  5417. +     break;}
  5418. + case 40:
  5419. + { yyval = parseDecimal(); ;
  5420. +     break;}
  5421. + case 41:
  5422. + { yyval = parseHexadecimal(); ;
  5423. +     break;}
  5424. + case 42:
  5425. + { yyval = parseCharacter(); ;
  5426. +     break;}
  5427. + case 43:
  5428. + { yyval = parseFloat(); ;
  5429. +     break;}
  5430. + }
  5431. +    /* the action file gets copied in in place of this dollarsign */
  5432. +   yyvsp -= yylen;
  5433. +   yyssp -= yylen;
  5434. + #ifdef YYLSP_NEEDED
  5435. +   yylsp -= yylen;
  5436. + #endif
  5437. + #if YYDEBUG != 0
  5438. +   if (yydebug)
  5439. +     {
  5440. +       short *ssp1 = yyss - 1;
  5441. +       fprintf (stderr, "state stack now");
  5442. +       while (ssp1 != yyssp)
  5443. +     fprintf (stderr, " %d", *++ssp1);
  5444. +       fprintf (stderr, "\n");
  5445. +     }
  5446. + #endif
  5447. +   *++yyvsp = yyval;
  5448. + #ifdef YYLSP_NEEDED
  5449. +   yylsp++;
  5450. +   if (yylen == 0)
  5451. +     {
  5452. +       yylsp->first_line = yylloc.first_line;
  5453. +       yylsp->first_column = yylloc.first_column;
  5454. +       yylsp->last_line = (yylsp-1)->last_line;
  5455. +       yylsp->last_column = (yylsp-1)->last_column;
  5456. +       yylsp->text = 0;
  5457. +     }
  5458. +   else
  5459. +     {
  5460. +       yylsp->last_line = (yylsp+yylen-1)->last_line;
  5461. +       yylsp->last_column = (yylsp+yylen-1)->last_column;
  5462. +     }
  5463. + #endif
  5464. +   /* Now "shift" the result of the reduction.
  5465. +      Determine what state that goes to,
  5466. +      based on the state we popped back to
  5467. +      and the rule number reduced by.  */
  5468. +   yyn = yyr1[yyn];
  5469. +   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  5470. +   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
  5471. +     yystate = yytable[yystate];
  5472. +   else
  5473. +     yystate = yydefgoto[yyn - YYNTBASE];
  5474. +   goto yynewstate;
  5475. + yyerrlab:   /* here on detecting error */
  5476. +   if (! yyerrstatus)
  5477. +     /* If not already recovering from an error, report this error.  */
  5478. +     {
  5479. +       ++yynerrs;
  5480. + #ifdef YYERROR_VERBOSE
  5481. +       yyn = yypact[yystate];
  5482. +       if (yyn > YYFLAG && yyn < YYLAST)
  5483. +     {
  5484. +       int size = 0;
  5485. +       char *msg;
  5486. +       int x, count;
  5487. +       count = 0;
  5488. +       /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
  5489. +       for (x = (yyn < 0 ? -yyn : 0);
  5490. +            x < (sizeof(yytname) / sizeof(char *)); x++)
  5491. +         if (yycheck[x + yyn] == x)
  5492. +           size += strlen(yytname[x]) + 15, count++;
  5493. +       msg = (char *) malloc(size + 15);
  5494. +       if (msg != 0)
  5495. +         {
  5496. +           strcpy(msg, "parse error");
  5497. +           if (count < 5)
  5498. +         {
  5499. +           count = 0;
  5500. +           for (x = (yyn < 0 ? -yyn : 0);
  5501. +                x < (sizeof(yytname) / sizeof(char *)); x++)
  5502. +             if (yycheck[x + yyn] == x)
  5503. +               {
  5504. +             strcat(msg, count == 0 ? ", expecting `" : " or `");
  5505. +             strcat(msg, yytname[x]);
  5506. +             strcat(msg, "'");
  5507. +             count++;
  5508. +               }
  5509. +         }
  5510. +           yyerror(msg);
  5511. +           free(msg);
  5512. +         }
  5513. +       else
  5514. +         yyerror ("parse error; also virtual memory exceeded");
  5515. +     }
  5516. +       else
  5517. + #endif /* YYERROR_VERBOSE */
  5518. +     yyerror("parse error");
  5519. +     }
  5520. +   goto yyerrlab1;
  5521. + yyerrlab1:   /* here on error raised explicitly by an action */
  5522. +   if (yyerrstatus == 3)
  5523. +     {
  5524. +       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
  5525. +       /* return failure if at end of input */
  5526. +       if (yychar == YYEOF)
  5527. +     YYABORT;
  5528. + #if YYDEBUG != 0
  5529. +       if (yydebug)
  5530. +     fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
  5531. + #endif
  5532. +       yychar = YYEMPTY;
  5533. +     }
  5534. +   /* Else will try to reuse lookahead token
  5535. +      after shifting the error token.  */
  5536. +   yyerrstatus = 3;        /* Each real token shifted decrements this */
  5537. +   goto yyerrhandle;
  5538. + yyerrdefault:  /* current state does not do anything special for the error token. */
  5539. + #if 0
  5540. +   /* This is wrong; only states that explicitly want error tokens
  5541. +      should shift them.  */
  5542. +   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  5543. +   if (yyn) goto yydefault;
  5544. + #endif
  5545. + yyerrpop:   /* pop the current state because it cannot handle the error token */
  5546. +   if (yyssp == yyss) YYABORT;
  5547. +   yyvsp--;
  5548. +   yystate = *--yyssp;
  5549. + #ifdef YYLSP_NEEDED
  5550. +   yylsp--;
  5551. + #endif
  5552. + #if YYDEBUG != 0
  5553. +   if (yydebug)
  5554. +     {
  5555. +       short *ssp1 = yyss - 1;
  5556. +       fprintf (stderr, "Error: state stack now");
  5557. +       while (ssp1 != yyssp)
  5558. +     fprintf (stderr, " %d", *++ssp1);
  5559. +       fprintf (stderr, "\n");
  5560. +     }
  5561. + #endif
  5562. + yyerrhandle:
  5563. +   yyn = yypact[yystate];
  5564. +   if (yyn == YYFLAG)
  5565. +     goto yyerrdefault;
  5566. +   yyn += YYTERROR;
  5567. +   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
  5568. +     goto yyerrdefault;
  5569. +   yyn = yytable[yyn];
  5570. +   if (yyn < 0)
  5571. +     {
  5572. +       if (yyn == YYFLAG)
  5573. +     goto yyerrpop;
  5574. +       yyn = -yyn;
  5575. +       goto yyreduce;
  5576. +     }
  5577. +   else if (yyn == 0)
  5578. +     goto yyerrpop;
  5579. +   if (yyn == YYFINAL)
  5580. +     YYACCEPT;
  5581. + #if YYDEBUG != 0
  5582. +   if (yydebug)
  5583. +     fprintf(stderr, "Shifting error token, ");
  5584. + #endif
  5585. +   *++yyvsp = yylval;
  5586. + #ifdef YYLSP_NEEDED
  5587. +   *++yylsp = yylloc;
  5588. + #endif
  5589. +   yystate = yyn;
  5590. +   goto yynewstate;
  5591. +  yyacceptlab:
  5592. +   /* YYACCEPT comes here.  */
  5593. +   if (yyfree_stacks)
  5594. +     {
  5595. +       free (yyss);
  5596. +       free (yyvs);
  5597. + #ifdef YYLSP_NEEDED
  5598. +       free (yyls);
  5599. + #endif
  5600. +     }
  5601. +   return 0;
  5602. +  yyabortlab:
  5603. +   /* YYABORT comes here.  */
  5604. +   if (yyfree_stacks)
  5605. +     {
  5606. +       free (yyss);
  5607. +       free (yyvs);
  5608. + #ifdef YYLSP_NEEDED
  5609. +       free (yyls);
  5610. + #endif
  5611. +     }
  5612. +   return 1;
  5613. + }
  5614. Index: src/ce_parse.h
  5615. ===================================================================
  5616. RCS file: src/ce_parse.h
  5617. diff -N src/ce_parse.h
  5618. *** /dev/null    1 Jan 1970 00:00:00 -0000
  5619. --- src/ce_parse.h    1 Feb 2003 05:35:36 -0000
  5620. ***************
  5621. *** 0 ****
  5622. --- 1,35 ----
  5623. + #ifndef YYSTYPE
  5624. + #define YYSTYPE int
  5625. + #endif
  5626. + #define    TOK_QUESTIONMARK    257
  5627. + #define    TOK_COLON    258
  5628. + #define    TOK_OR    259
  5629. + #define    TOK_AND    260
  5630. + #define    TOK_BITWISEOR    261
  5631. + #define    TOK_BITWISEXOR    262
  5632. + #define    TOK_AMPERSAND    263
  5633. + #define    TOK_NOTEQUAL    264
  5634. + #define    TOK_EQUAL    265
  5635. + #define    TOK_LESSTHAN    266
  5636. + #define    TOK_GREATERTHAN    267
  5637. + #define    TOK_LESSTHANOREQUALTO    268
  5638. + #define    TOK_GREATERTHANOREQUALTO    269
  5639. + #define    TOK_SHIFTLEFT    270
  5640. + #define    TOK_SHIFTRIGHT    271
  5641. + #define    TOK_PLUS    272
  5642. + #define    TOK_MINUS    273
  5643. + #define    TOK_STAR    274
  5644. + #define    TOK_DIVIDE    275
  5645. + #define    TOK_MOD    276
  5646. + #define    TOK_TILDE    277
  5647. + #define    TOK_NOT    278
  5648. + #define    TOK_LPAREN    279
  5649. + #define    TOK_RPAREN    280
  5650. + #define    TOK_OCTALINT    281
  5651. + #define    TOK_DECIMALINT    282
  5652. + #define    TOK_HEXADECIMALINT    283
  5653. + #define    TOK_CHARACTER    284
  5654. + #define    TOK_FLOAT    285
  5655. + extern YYSTYPE cppExpYYlval;
  5656. Index: src/classdef.cpp
  5657. ===================================================================
  5658. RCS file: /usr/local/cvs/tools/doxygen/src/classdef.cpp,v
  5659. retrieving revision 1.1.1.8
  5660. retrieving revision 1.15
  5661. diff -b -c -b -c -r1.1.1.8 -r1.15
  5662. *** src/classdef.cpp    7 Feb 2002 23:10:13 -0000    1.1.1.8
  5663. --- src/classdef.cpp    13 Mar 2002 01:09:44 -0000    1.15
  5664. ***************
  5665. *** 1,6 ****
  5666.   /******************************************************************************
  5667.    *
  5668. !  * 
  5669.    *
  5670.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  5671.    *
  5672. --- 1,6 ----
  5673.   /******************************************************************************
  5674.    *
  5675. !  * $Id$
  5676.    *
  5677.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  5678.    *
  5679. ***************
  5680. *** 43,48 ****
  5681. --- 43,109 ----
  5682.     return result;
  5683.   }
  5684.   
  5685. + #ifdef RSA_EXTENSIONS
  5686. + bool ClassDef::isHidden() const
  5687. + {
  5688. +   return isEntryHidden(name(), "STRUCT_INCLUDE_PATTERNS", 
  5689. +     "STRUCT_EXCLUDE_PATTERNS", FALSE);
  5690. + }
  5691. + MemberDef *ClassDef::findTypedef()
  5692. + {
  5693. +   // return cached result of previous search
  5694. +   if (m_hasTypedef == 1)
  5695. +     return m_typedef;
  5696. +   else if (m_hasTypedef == 0)
  5697. +     return 0;
  5698. +  
  5699. +   /* Haven't searched before, so look through all of the files
  5700. +      We look through all of the files because we can't assume
  5701. +      that the typedef will be found in the include-file chain
  5702. +      starting from the file that defines this compound. The approach
  5703. +      implemented here has a chance of finding the 'wrong' typedef
  5704. +      if there is more than one defined directly in terms of
  5705. +      the compound name.
  5706. +   */
  5707. +   if (Doxygen::inputNameList.count()>0)
  5708. +   {
  5709. +     FileNameListIterator fnli(Doxygen::inputNameList);
  5710. +     FileName *fn;
  5711. +     for (fnli.toFirst(); (fn=fnli.current()) != 0; ++fnli)
  5712. +     {
  5713. +       FileNameIterator fni(*fn);
  5714. +       FileDef *fd;
  5715. +       for (fni.toFirst(); (fd=fni.current()) != 0; ++fni)
  5716. +       {
  5717. +         /* only look in documented, unhidden files */
  5718. +         if (!fd->isLinkableInProject())
  5719. +           continue;
  5720. +         MemberListIterator mli(fd->decTypedefMembers);
  5721. +         MemberDef *md;
  5722. +         for (mli.toFirst(); md = mli.current(); ++mli)
  5723. +         {
  5724. +           if (name() == md->typeString())
  5725. +           {
  5726. +             m_hasTypedef = 1;
  5727. +             m_typedef = md;
  5728. +             return md;
  5729. +           }
  5730. +         }
  5731. +       }
  5732. +     }
  5733. +   }
  5734. +   // didn't find anything, so remember that and return 0.
  5735. +   m_hasTypedef = 0;
  5736. +   m_typedef = 0;
  5737. +   return 0;
  5738. + }
  5739. + #endif // RSA_EXTENSIONS
  5740.   // constructs a new class definition
  5741.   ClassDef::ClassDef(
  5742.       const char *defFileName,int defLine,
  5743. ***************
  5744. *** 105,110 ****
  5745. --- 166,175 ----
  5746.     {
  5747.       m_isLocal=FALSE;
  5748.     }
  5749. + #ifdef RSA_EXTENSIONS
  5750. +   m_hasTypedef = -1;
  5751. +   m_typedef = 0;
  5752. + #endif //RSA_EXTENSIONS
  5753.   }
  5754.   
  5755.   // destroy the class definition
  5756. ***************
  5757. *** 692,706 ****
  5758. --- 757,806 ----
  5759.     QCString pageTitle=name().copy();
  5760.     QCString pageType;
  5761.     ArgumentList *outerTempArgList = outerTemplateArguments();
  5762. + #ifdef RSA_EXTENSIONS
  5763. +   bool hasTypedef = FALSE;
  5764. +   QCString typedefName;
  5765. +   if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  5766. +       Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  5767. +   {
  5768. +     MemberDef *td = findTypedef();
  5769. +     if (td != 0)
  5770. +     {
  5771. +       typedefName = td->name();
  5772. +       hasTypedef = TRUE;
  5773. +     }
  5774. +   }
  5775. +   if (!hasTypedef)
  5776. +   {
  5777. + #endif //RSA_EXTENSIONS
  5778.     QCString cType=compoundTypeString();
  5779.     toupper(cType.at(0));
  5780.     pageType+=" ";
  5781.     pageType+=cType;
  5782. + #ifdef RSA_EXTENSIONS
  5783. +   }
  5784. +   else
  5785. +   {
  5786. +     pageTitle = typedefName.copy();
  5787. +   }
  5788. + #endif //RSA_EXTENSIONS
  5789.     pageTitle+=pageType+" Reference";
  5790.     if (outerTempArgList) pageTitle.prepend(" Template");
  5791.     startFile(ol,getOutputFileBase(),name(),pageTitle);
  5792.     startTitle(ol,getOutputFileBase());
  5793. + #ifdef RSA_EXTENSIONS
  5794. +   if (hasTypedef)
  5795. +   {
  5796. +     //needs to be fixed to be translatable
  5797. +     parseText(ol,typedefName + " Reference");
  5798. +   }
  5799. +   else
  5800. +   {
  5801. + #endif //RSA_EXTENSIONS
  5802.     parseText(ol,theTranslator->trCompoundReference(name(),m_compType,outerTempArgList!=0));
  5803. + #ifdef RSA_EXTENSIONS
  5804. +   }
  5805. + #endif //RSA_EXTENSIONS
  5806.     endTitle(ol,getOutputFileBase(),name());
  5807.   
  5808.     ol.startTextBlock();
  5809. ***************
  5810. *** 715,720 ****
  5811. --- 815,824 ----
  5812.       parseDoc(briefOutput,m_defFileName,m_defLine,name(),0,briefDescription());
  5813.       ol+=briefOutput;
  5814.       ol.writeString(" \n");
  5815. + #ifdef RSA_EXTENSIONS
  5816. +     if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
  5817. +     {
  5818. + #endif //RSA_EXTENSIONS
  5819.       ol.pushGeneratorState();
  5820.       ol.disableAllBut(OutputGenerator::Html);
  5821.       ol.startTextLink(0,"_details");
  5822. ***************
  5823. *** 728,737 ****
  5824. --- 832,880 ----
  5825.       }
  5826.       ol.endTextLink();
  5827.       ol.popGeneratorState();
  5828. + #ifdef RSA_EXTENSIONS
  5829. +     }
  5830. + #endif //RSA_EXTENSIONS
  5831.       ol.disable(OutputGenerator::Man);
  5832.       ol.newParagraph();
  5833.       ol.enable(OutputGenerator::Man);
  5834.     }
  5835. + #ifdef RSA_EXTENSIONS
  5836. +   if (Config_getBool("DETAIL_SECTION_FIRST") == TRUE)
  5837. +   {
  5838. +     if (!documentation().isEmpty() || exampleFlag)
  5839. +     {
  5840. +         ol.startTextBlock();
  5841. +     }
  5842. +     
  5843. +     writeTemplateSpec(ol,this,pageType);
  5844. +     if (!documentation().isEmpty())
  5845. +     {
  5846. +       parseDoc(ol,m_defFileName,m_defLine,name(),0,documentation()+"\n");
  5847. +     }
  5848. +     // write examples
  5849. +     if (exampleFlag)
  5850. +     {
  5851. +       ol.startDescList(BaseOutputDocInterface::Examples);
  5852. +       parseText(ol,theTranslator->trExamples()+": ");
  5853. +       ol.endDescTitle();
  5854. +       ol.writeDescItem();
  5855. +       ol.newParagraph();
  5856. +       writeExample(ol,m_exampleSDict);
  5857. +       //ol.endDescItem();
  5858. +       ol.endDescList();
  5859. +     }
  5860. +     if (!documentation().isEmpty() || exampleFlag)
  5861. +     {
  5862. +         ol.newParagraph();
  5863. +         writeSourceDef(ol,name());
  5864. +         ol.newParagraph();
  5865. +         ol.endTextBlock();
  5866. +     }
  5867. +   }
  5868. + #endif //RSA_EXTENSIONS
  5869.     ol.writeSynopsis();
  5870.     
  5871.     if (m_incInfo && Config_getBool("SHOW_INCLUDE_FILES"))
  5872. ***************
  5873. *** 989,994 ****
  5874. --- 1132,1145 ----
  5875.   
  5876.     ol.endTextBlock();
  5877.   
  5878. + #ifdef RSA_EXTENSIONS
  5879. +   if (Config_getBool("DETAIL_SECTION_FIRST") &&
  5880. +       Config_getBool("INLINE_CLASS_DECL"))
  5881. +   {
  5882. +     writeInlineCode(ol, 0/* should be scope name */,TRUE);
  5883. +   }
  5884. + #endif //RSA_EXTENSIONS
  5885. +   
  5886.     // write member groups
  5887.     ol.startMemberSections();
  5888.   
  5889. ***************
  5890. *** 1060,1065 ****
  5891. --- 1211,1220 ----
  5892.                    ); 
  5893.     ol.endMemberSections();
  5894.       
  5895. + #ifdef RSA_EXTENSIONS
  5896. +   if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
  5897. +   {
  5898. + #endif //RSA_EXTENSIONS
  5899.     // write detailed description
  5900.     if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || 
  5901.         !documentation().isEmpty() || 
  5902. ***************
  5903. *** 1087,1093 ****
  5904. --- 1242,1253 ----
  5905.       if (!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF") &&
  5906.           !documentation().isEmpty())
  5907.       {
  5908. + #ifdef RSA_EXTENSIONS
  5909. +     // (Paragraph removed--space needed)
  5910. +         ol.writeString(" "); 
  5911. + #else /* !RSA_EXTENSIONS */
  5912.           ol.newParagraph(); 
  5913. + #endif /* RSA_EXTENSIONS */
  5914.       }
  5915.       // write documentation
  5916.       if (!documentation().isEmpty())
  5917. ***************
  5918. *** 1118,1124 ****
  5919.     {
  5920.       writeTemplateSpec(ol,this,pageType);
  5921.     }
  5922.     
  5923.     
  5924.     typedefMembers.writeDocumentation(ol,name(),this,
  5925. --- 1278,1286 ----
  5926.     {
  5927.       writeTemplateSpec(ol,this,pageType);
  5928.     }
  5929. ! #ifdef RSA_EXTENSIONS
  5930. !   }
  5931. ! #endif //RSA_EXTENSIONS
  5932.     
  5933.     
  5934.     typedefMembers.writeDocumentation(ol,name(),this,
  5935. ***************
  5936. *** 1586,1592 ****
  5937. --- 1748,1758 ----
  5938.         (!m_isLocal || Config_getBool("EXTRACT_LOCAL_CLASSES")) && /* local */
  5939.         hasDocumentation() &&   /* documented */ 
  5940.         !isReference() &&         /* not an external reference */
  5941. + #ifdef RSA_EXTENSIONS
  5942. +       // is not explicitly hidden
  5943. +       (!isHidden()) &&
  5944.         (!m_isStatic || Config_getBool("EXTRACT_STATIC"));
  5945. + #endif
  5946.     }
  5947.   }
  5948.   
  5949. ***************
  5950. *** 1620,1625 ****
  5951. --- 1786,1795 ----
  5952.          (m_templateMaster && m_templateMaster->hasDocumentation()) || 
  5953.          isReference()
  5954.         ) &&
  5955. + #ifdef RSA_EXTENSIONS
  5956. +       // is not explicitly hidden
  5957. +       (!isHidden()) &&
  5958. + #endif
  5959.         // is not part of an unnamed namespace or shown anyway
  5960.         (!m_isStatic || Config_getBool("EXTRACT_STATIC"));
  5961.   }
  5962. Index: src/classdef.h
  5963. ===================================================================
  5964. RCS file: /usr/local/cvs/tools/doxygen/src/classdef.h,v
  5965. retrieving revision 1.1.1.8
  5966. retrieving revision 1.10
  5967. diff -b -c -b -c -r1.1.1.8 -r1.10
  5968. *** src/classdef.h    7 Feb 2002 23:10:13 -0000    1.1.1.8
  5969. --- src/classdef.h    13 Mar 2002 01:09:44 -0000    1.10
  5970. ***************
  5971. *** 1,6 ****
  5972.   /******************************************************************************
  5973.    *
  5974. !  * 
  5975.    *
  5976.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  5977.    *
  5978. --- 1,6 ----
  5979.   /******************************************************************************
  5980.    *
  5981. !  * $Id$
  5982.    *
  5983.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  5984.    *
  5985. ***************
  5986. *** 414,419 ****
  5987. --- 414,438 ----
  5988.   
  5989.       /*! TRUE if the class is defined in a source file rather than a header file. */
  5990.       bool m_isLocal;
  5991. + #ifdef RSA_EXTENSIONS
  5992. +     /*! TRUE if the class documentation is explicitly hidden */
  5993. +     bool isHidden() const;
  5994. +     /*! 1 if a corresponding typedef has been found. 0 if a search failed to
  5995. +         find a typedef and -1 if no search has been made.
  5996. +      */
  5997. +     int m_hasTypedef;
  5998. +     /*! A typedef that corresponds to this class. */
  5999. +     MemberDef *m_typedef;
  6000. + public:
  6001. +     /*! Returns a pointer to the typedef definition that aliases this class, or
  6002. +      *  0 if there is no equivalent typedef.
  6003. +      */
  6004. +     MemberDef *findTypedef();
  6005. + #endif
  6006.   };
  6007.   
  6008.   /*! \brief Class that contains information about a usage relation. 
  6009. Index: src/classlist.cpp
  6010. ===================================================================
  6011. RCS file: /usr/local/cvs/tools/doxygen/src/classlist.cpp,v
  6012. retrieving revision 1.1.1.8
  6013. retrieving revision 1.6
  6014. diff -b -c -b -c -r1.1.1.8 -r1.6
  6015. *** src/classlist.cpp    7 Feb 2002 23:10:13 -0000    1.1.1.8
  6016. --- src/classlist.cpp    25 Feb 2002 22:59:37 -0000    1.6
  6017. ***************
  6018. *** 1,6 ****
  6019.   /******************************************************************************
  6020.    *
  6021. !  * 
  6022.    *
  6023.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6024.    *
  6025. --- 1,6 ----
  6026.   /******************************************************************************
  6027.    *
  6028. !  * $Id$
  6029.    *
  6030.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6031.    *
  6032. ***************
  6033. *** 64,72 ****
  6034. --- 64,88 ----
  6035.     {
  6036.       ClassSDict::Iterator sdi(*this);
  6037.       ClassDef *cd=0;
  6038. + #ifdef RSA_EXTENSIONS
  6039. +     bool hasTypedef;
  6040. +     MemberDef *td;
  6041. + #endif //RSA_EXTENSIONS
  6042.       bool found=FALSE;
  6043.       for (sdi.toFirst();(cd=sdi.current());++sdi)
  6044.       {
  6045. + #ifdef RSA_EXTENSIONS
  6046. +       hasTypedef = FALSE;
  6047. +       if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  6048. +           Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  6049. +       {
  6050. +         td = cd->findTypedef();
  6051. +         if (td != 0)
  6052. +         {
  6053. +           hasTypedef = TRUE;
  6054. +         }
  6055. +       }
  6056. + #endif //RSA_EXTENSIONS
  6057.         if (cd->name().find('@')==-1 && 
  6058.             (filter==0 || *filter==cd->compoundType())
  6059.            )
  6060. ***************
  6061. *** 95,116 ****
  6062. --- 111,165 ----
  6063.                       << "\">" << convertToXML(cd->name()) << "</class>" << endl;
  6064.             }
  6065.             ol.startMemberItem(FALSE);
  6066. + #ifdef RSA_EXTENSIONS
  6067. +           if (!hasTypedef)
  6068. +           {
  6069. + #endif //RSA_EXTENSIONS
  6070.             QCString tmp = cd->compoundTypeString();
  6071.             ol.writeString(tmp);
  6072.             ol.writeString(" ");
  6073. + #ifdef RSA_EXTENSIONS
  6074. +           }
  6075. + #endif //RSA_EXTENSIONS
  6076.             ol.insertMemberAlign();
  6077.             if (isLink) 
  6078.             {
  6079. + #ifdef RSA_EXTENSIONS
  6080. +             if (hasTypedef)
  6081. +             {
  6082. +               ol.writeObjectLink(cd->getReference(),
  6083. +                   cd->getOutputFileBase(),
  6084. +                   0,
  6085. +                   td->name()
  6086. +                  );
  6087. +             }
  6088. +             else
  6089. +             {
  6090. + #endif //RSA_EXTENSIONS
  6091.               ol.writeObjectLink(cd->getReference(),
  6092.                   cd->getOutputFileBase(),
  6093.                   0,
  6094.                   cd->name()
  6095.                  );
  6096. + #ifdef RSA_EXTENSIONS
  6097. +             }
  6098. + #endif //RSA_EXTENSIONS
  6099.             }
  6100.             else 
  6101.             {
  6102.               ol.startBold();
  6103. + #ifdef RSA_EXTENSIONS
  6104. +             if (hasTypedef)
  6105. +             {
  6106. +               ol.docify(td->name());
  6107. +             }
  6108. +             else
  6109. +             {
  6110. + #endif //RSA_EXTENSIONS
  6111.               ol.docify(cd->name());
  6112. + #ifdef RSA_EXTENSIONS
  6113. +             }
  6114. + #endif //RSA_EXTENSIONS
  6115.               ol.endBold();
  6116.             }
  6117.             ol.endMemberItem(FALSE);
  6118. Index: src/classlist.h
  6119. ===================================================================
  6120. RCS file: /usr/local/cvs/tools/doxygen/src/classlist.h,v
  6121. retrieving revision 1.1.1.8
  6122. retrieving revision 1.4
  6123. diff -b -c -b -c -r1.1.1.8 -r1.4
  6124. *** src/classlist.h    7 Feb 2002 23:10:13 -0000    1.1.1.8
  6125. --- src/classlist.h    7 Feb 2002 23:29:19 -0000    1.4
  6126. ***************
  6127. *** 1,6 ****
  6128.   /******************************************************************************
  6129.    *
  6130. !  * 
  6131.    *
  6132.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6133.    *
  6134. --- 1,6 ----
  6135.   /******************************************************************************
  6136.    *
  6137. !  * $Id$
  6138.    *
  6139.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6140.    *
  6141. Index: src/code.h
  6142. ===================================================================
  6143. RCS file: /usr/local/cvs/tools/doxygen/src/code.h,v
  6144. retrieving revision 1.1.1.8
  6145. retrieving revision 1.5
  6146. diff -b -c -b -c -r1.1.1.8 -r1.5
  6147. *** src/code.h    7 Feb 2002 23:10:13 -0000    1.1.1.8
  6148. --- src/code.h    13 Mar 2002 01:09:44 -0000    1.5
  6149. ***************
  6150. *** 1,6 ****
  6151.   /******************************************************************************
  6152.    *
  6153. !  * 
  6154.    *
  6155.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6156.    *
  6157. --- 1,6 ----
  6158.   /******************************************************************************
  6159.    *
  6160. !  * $Id$
  6161.    *
  6162.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6163.    *
  6164. ***************
  6165. *** 25,33 ****
  6166. --- 25,40 ----
  6167.   class FileDef;
  6168.   class MemberDef;
  6169.   
  6170. + #ifdef RSA_EXTENSIONS
  6171. + extern void parseCode(OutputDocInterface &,const char *,const QCString &, 
  6172. +             bool ,const char *,FileDef *fd=0,
  6173. +             int startLine=-1,int endLine=-1,bool inlineFragment=FALSE,
  6174. +             bool doLineNr=TRUE);
  6175. + #else //!RSA_EXTENSIONS
  6176.   extern void parseCode(OutputDocInterface &,const char *,const QCString &, 
  6177.               bool ,const char *,FileDef *fd=0,
  6178.               int startLine=-1,int endLine=-1,bool inlineFragment=FALSE);
  6179. + #endif
  6180.   extern void initParseCodeContext();
  6181.   extern void setParameterList(MemberDef *md);
  6182.   #endif
  6183. Index: src/code.l
  6184. ===================================================================
  6185. RCS file: /usr/local/cvs/tools/doxygen/src/code.l,v
  6186. retrieving revision 1.1.1.7
  6187. retrieving revision 1.3
  6188. diff -b -c -b -c -r1.1.1.7 -r1.3
  6189. *** src/code.l    7 Feb 2002 23:10:13 -0000    1.1.1.7
  6190. --- src/code.l    13 Mar 2002 01:09:44 -0000    1.3
  6191. ***************
  6192. *** 97,102 ****
  6193. --- 97,106 ----
  6194.   static int           g_memCallContext;
  6195.   static int         g_lastCContext;
  6196.   
  6197. + #ifdef RSA_EXTENSIONS
  6198. + static int           g_doLineNr = TRUE;
  6199. + #endif //RSA_EXTENSIONS
  6200.   //-------------------------------------------------------------------
  6201.   
  6202.   /*! Represents a stack of variable to class mappings as found in the
  6203. ***************
  6204. *** 328,334 ****
  6205. --- 332,342 ----
  6206.   static void startCodeLine()
  6207.   {
  6208.     //if (g_currentFontClass) { g_code->endFontClass(); }
  6209. + #ifdef RSA_EXTENSIONS
  6210. +   if (g_sourceFileDef && g_doLineNr)
  6211. + #else //!RSA_EXTENSIONS
  6212.     if (g_sourceFileDef)
  6213. + #endif //RSA_EXTENSIONS
  6214.     {
  6215.       //QCString lineNumber,lineAnchor;
  6216.       //lineNumber.sprintf("%05d",g_yyLineNr);
  6217. ***************
  6218. *** 639,646 ****
  6219. --- 647,666 ----
  6220.         MemberDef *md = setCallContextForVar(clName);
  6221.         if (md)
  6222.         {
  6223. + #ifdef RSA_EXTENSIONS
  6224. +         /* This looks like a doxygen bug. In any case, we want to link to the 
  6225. +            output file that holds the resulting doco, not the file that
  6226. +            contains the original doxygen comment.
  6227. +         */
  6228. +         Definition *d = md;
  6229. +         if (md->getGroupDef() != 0)
  6230. +         {
  6231. +           d = md->getGroupDef();
  6232. +         }
  6233. + #else //!RSA_EXTENSIONS
  6234.           Definition *d = md->getOuterScope()==Doxygen::globalScope ?
  6235.                       md->getBodyDef() : md->getOuterScope();
  6236. + #endif //RSA_EXTENSIONS
  6237.       if (d && d->isLinkable() && md->isLinkable())
  6238.       {
  6239.         writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName);
  6240. ***************
  6241. *** 705,713 ****
  6242.       }
  6243.       //Definition *d=0;
  6244.       //if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
  6245.       Definition *d = md->getOuterScope()==Doxygen::globalScope ?
  6246.                   md->getBodyDef() : md->getOuterScope();
  6247.       if (d && d->isLinkable())
  6248.       {
  6249.         g_theCallContext.setClass(stripClassName(md->typeString()));
  6250. --- 725,744 ----
  6251.       }
  6252.       //Definition *d=0;
  6253.       //if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
  6254. ! #ifdef RSA_EXTENSIONS
  6255. !     /* This looks like a doxygen bug. In any case, we want to link to the 
  6256. !        output file that holds the resulting doco, not the file that
  6257. !        contains the original doxygen comment.
  6258. !     */
  6259. !     Definition *d = md;
  6260. !     if (md->getGroupDef() != 0)
  6261. !     {
  6262. !       d = md->getGroupDef();
  6263. !     }
  6264. ! #else //!RSA_EXTENSIONS
  6265.       Definition *d = md->getOuterScope()==Doxygen::globalScope ?
  6266.                   md->getBodyDef() : md->getOuterScope();
  6267. + #endif //RSA_EXTENSIONS
  6268.       if (d && d->isLinkable())
  6269.       {
  6270.         g_theCallContext.setClass(stripClassName(md->typeString()));
  6271. ***************
  6272. *** 754,761 ****
  6273. --- 785,804 ----
  6274.   
  6275.         g_theCallContext.setClass(stripClassName(xmd->typeString()));
  6276.   
  6277. + #ifdef RSA_EXTENSIONS
  6278. +       /* This looks like a doxygen bug. In any case, we want to link to the 
  6279. +          output file that holds the resulting doco, not the file that
  6280. +          contains the original doxygen comment.
  6281. +       */
  6282. +       Definition *xd = xmd;
  6283. +       if (xmd->getGroupDef() != 0)
  6284. +       {
  6285. +         xd = xmd->getGroupDef();
  6286. +       }
  6287. + #else //!RSA_EXTENSIONS
  6288.         Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ?
  6289.                      xmd->getBodyDef() : xmd->getOuterScope();
  6290. + #endif //RSA_EXTENSIONS
  6291.         if (xd)
  6292.         {
  6293.   
  6294. ***************
  6295. *** 1924,1934 ****
  6296. --- 1967,1986 ----
  6297.     g_anchorCount = 0;
  6298.   }
  6299.   
  6300. + #ifdef RSA_EXTENSIONS
  6301. + void parseCode(OutputDocInterface &od,const char *className,const QCString &s, 
  6302. +                   bool exBlock, const char *exName,FileDef *fd,
  6303. +           int startLine,int endLine,bool inlineFragment,bool doLineNr = TRUE)
  6304. + #else //!RSA_EXTENSIONS
  6305.   void parseCode(OutputDocInterface &od,const char *className,const QCString &s, 
  6306.                     bool exBlock, const char *exName,FileDef *fd,
  6307.             int startLine,int endLine,bool inlineFragment)
  6308. + #endif //RSA_EXTENSIONS
  6309.   {
  6310.     if (s.isEmpty()) return;
  6311. + #ifdef RSA_EXTENSIONS
  6312. +   g_doLineNr = doLineNr;
  6313. + #endif //RSA_EXTENSIONS
  6314.     g_code = od.clone();
  6315.     g_inputString   = s;
  6316.     g_inputPosition = 0;
  6317. Index: src/config.h
  6318. ===================================================================
  6319. RCS file: /usr/local/cvs/tools/doxygen/src/config.h,v
  6320. retrieving revision 1.1.1.1
  6321. retrieving revision 1.2
  6322. diff -b -c -b -c -r1.1.1.1 -r1.2
  6323. *** src/config.h    10 Sep 2001 06:22:24 -0000    1.1.1.1
  6324. --- src/config.h    4 Feb 2002 02:30:40 -0000    1.2
  6325. ***************
  6326. *** 32,38 ****
  6327. --- 32,42 ----
  6328.        /*! Maximum length of an option in the config file. Used for 
  6329.         *  alignment purposes.
  6330.         */
  6331. + #ifdef RSA_EXTENSIONS
  6332. +       MAX_OPTION_LENGTH = 24
  6333. + #else //RSA_EXTENSIONS
  6334.         MAX_OPTION_LENGTH = 23  
  6335. + #endif //RSA_EXTENSIONS
  6336.       };
  6337.       ConfigOption(OptionType t) : m_kind(t) 
  6338.       {
  6339. Index: src/config.l
  6340. ===================================================================
  6341. RCS file: /usr/local/cvs/tools/doxygen/src/config.l,v
  6342. retrieving revision 1.1.1.8
  6343. retrieving revision 1.17
  6344. diff -b -c -b -c -r1.1.1.8 -r1.17
  6345. *** src/config.l    7 Feb 2002 23:10:13 -0000    1.1.1.8
  6346. --- src/config.l    23 Mar 2002 00:53:22 -0000    1.17
  6347. ***************
  6348. *** 1,6 ****
  6349.   /******************************************************************************
  6350.    *
  6351. !  * 
  6352.    *
  6353.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6354.    *
  6355. --- 1,6 ----
  6356.   /******************************************************************************
  6357.    *
  6358. !  * $Id$
  6359.    *
  6360.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6361.    *
  6362. ***************
  6363. *** 1054,1059 ****
  6364. --- 1054,1115 ----
  6365.       examplePatternList.append("*");
  6366.     }
  6367.   
  6368. + #ifdef RSA_EXTENSIONS
  6369. +   // add default pattern if needed
  6370. +   QStrList &tocIncList = Config_getList("TOC_INCLUDE_PATTERNS");
  6371. +   if (tocIncList.isEmpty())
  6372. +   {
  6373. +     tocIncList.append("*");
  6374. +   }
  6375. +   
  6376. +   QStrList &tocExclPattList = Config_getList("TOC_EXCLUDE_PATTERNS");
  6377. +   if (tocExclPattList.isEmpty())
  6378. +   {
  6379. +     tocExclPattList.append("*.doc");
  6380. +     tocExclPattList.append("*.txt");
  6381. +     tocExclPattList.append("*.dox");
  6382. +   }
  6383. +   QStrList &fnIncList = Config_getList("FUNCTION_INCLUDE_PATTERNS");
  6384. +   if (fnIncList.isEmpty())
  6385. +   {
  6386. +     fnIncList.append("*");
  6387. +   }
  6388. +   QStrList &defIncList = Config_getList("DEFINE_INCLUDE_PATTERNS");
  6389. +   if (defIncList.isEmpty())
  6390. +   {
  6391. +     defIncList.append("*");
  6392. +   }
  6393. +   QStrList &typeIncList = Config_getList("TYPEDEF_INCLUDE_PATTERNS");
  6394. +   if (typeIncList.isEmpty())
  6395. +   {
  6396. +     typeIncList.append("*");
  6397. +   }
  6398. +   QStrList &stIncList = Config_getList("STRUCT_INCLUDE_PATTERNS");
  6399. +   if (stIncList.isEmpty())
  6400. +   {
  6401. +     stIncList.append("*");
  6402. +   }
  6403. +   QStrList &grpIncList = Config_getList("GROUP_INCLUDE_PATTERNS");
  6404. +   if (grpIncList.isEmpty())
  6405. +   {
  6406. +     grpIncList.append("*");
  6407. +   }
  6408. +   QStrList &entIncList = Config_getList("ENTRY_INCLUDE_PATTERNS");
  6409. +   if (entIncList.isEmpty())
  6410. +   {
  6411. +     entIncList.append("*");
  6412. +   }
  6413. +  
  6414. + #endif /* RSA_EXTENSIONS */
  6415.     // add default pattern if needed
  6416.     //QStrList &imagePatternList = Config_getList("IMAGE_PATTERNS");
  6417.     //if (imagePatternList.isEmpty())
  6418. ***************
  6419. *** 1196,1201 ****
  6420. --- 1252,1390 ----
  6421.     addInfo("General","General configuration options");
  6422.     //-----------------------------------------------------------------------------------------------
  6423.     
  6424. + #ifdef RSA_EXTENSIONS
  6425. +   cs = addString ("PRODUCT_LOGO", "The logo for the product. This is an image file name.");
  6426. +   cs = addString ("PRODUCT_COPYRIGHT", "The copyright details for the product.");
  6427. +   cs = addString ("PRODUCT_NAME", "The name of the product.");
  6428. +   cs = addString ("PRODUCT_TAG", "The tag/phrase for the product.");
  6429. +   cs = addString ("PRODUCT_PARTNUMBER", "The part number of the product.");
  6430. +   cs = addString ("PRODUCT_DOCVERSION", "The doc version of the product.");
  6431. +   cl = addList(
  6432. +                 "TOC_INCLUDE_PATTERNS",
  6433. +                 "The TOC_INCLUDE_PATTERNS tag can be used to limit documented files \n"
  6434. +                 "to those whose names match the specified list of patterns. If left blank, \n"
  6435. +                 "all documented input files will be included."
  6436. +               );
  6437. +   cl = addList(
  6438. +                 "TOC_EXCLUDE_PATTERNS",
  6439. +                 "The TOC_EXCLUDE_PATTERNS tag can be used to omit documented files whose \n"
  6440. +                 "names match the specified list of patterns. If left blank, input files \n"
  6441. +                 "whose names match *.doc, *.txt, or *.dox will be excluded. \n"
  6442. +               );
  6443. +   cl = addList(
  6444. +                 "FUNCTION_INCLUDE_PATTERNS",
  6445. +                 "The FUNCTION_INCLUDE_PATTERNS tag can be used to limit documented functions \n"
  6446. +                 "to those whose names match the specified list of patterns. If left blank, all \n"
  6447. +                 "documented functions will be included. \n"
  6448. +               );
  6449. +   cl = addList(
  6450. +                 "FUNCTION_EXCLUDE_PATTERNS",
  6451. +                 "The FUNCTION_EXCLUDE_PATTERNS tag can be used omit documented functions whose \n"
  6452. +                 "names match the specified list of patterns. If left blank, all documented \n"
  6453. +                 "functions matching the FUNCTION_INCLUDE_PATTERNS will be included. \n"
  6454. +               );
  6455. +   cl = addList(
  6456. +                 "DEFINE_INCLUDE_PATTERNS",
  6457. +                 "The DEFINE_INCLUDE_PATTERNS tag can be used to limit documented defines to \n"
  6458. +                 "those whose names match the specified list of patterns. If left blank, all \n"
  6459. +                 "documented defines will be included. \n"
  6460. +               );
  6461. +   cl = addList(
  6462. +                 "DEFINE_EXCLUDE_PATTERNS",
  6463. +                 "The DEFINE_EXCLUDE_PATTERNS tag can be used omit documented defines whose \n"
  6464. +                 "names match the specified list of patterns. If left blank, all documented \n"
  6465. +                 "defines matching the DEFINE_INCLUDE_PATTERNS will be included. \n"
  6466. +               );
  6467. +   cl = addList(
  6468. +                 "TYPEDEF_INCLUDE_PATTERNS",
  6469. +                 "The TYPEDEF_INCLUDE_PATTERNS tag can be used to limit documented typedefs to \n"
  6470. +                 "those whose names match the specified list of patterns. If left blank, all \n"
  6471. +                 "documented typedefs will be included. \n"
  6472. +               );
  6473. +   cl = addList(
  6474. +                 "TYPEDEF_EXCLUDE_PATTERNS",
  6475. +                 "The TYPEDEF_EXCLUDE_PATTERNS tag can be used omit documented typedefs whose \n"
  6476. +                 "names match the specified list of patterns. If left blank, all documented \n"
  6477. +                 "functions matching the TYPEDEF_INCLUDE_PATTERNS will be included. \n"
  6478. +               );
  6479. +   cl = addList(
  6480. +                 "STRUCT_INCLUDE_PATTERNS",
  6481. +                 "The STRUCT_INCLUDE_PATTERNS tag can be used to limit documented structs and \n"
  6482. +                 "unions to those whose names match the specified list of patterns. If left \n"
  6483. +                 "blank, all documented structs and unions will be included. \n"
  6484. +               );
  6485. +   cl = addList(
  6486. +                 "STRUCT_EXCLUDE_PATTERNS",
  6487. +                 "The STRUCT_EXCLUDE_PATTERNS tag can be used omit documented structs and unions \n"
  6488. +                 "whose names match the specified list of patterns. If left blank, all documented \n"
  6489. +                 "structs and unions matching the STRUCT_INCLUDE_PATTERNS will be included. \n"
  6490. +               );
  6491. +   cl = addList(
  6492. +                 "GROUP_INCLUDE_PATTERNS",
  6493. +                 "The GROUP_INCLUDE_PATTERNS tag can be used to limit documented groupss \n"
  6494. +                 "to those whose names match the specified list of patterns. If left blank, all \n"
  6495. +                 "documented groups will be included. \n"
  6496. +               );
  6497. +   cl = addList(
  6498. +                 "GROUP_EXCLUDE_PATTERNS",
  6499. +                 "The GROUP_EXCLUDE_PATTERNS tag can be used omit documented groupss \n"
  6500. +                 "whose names match the specified list of patterns. If left blank, all documented \n"
  6501. +                 "groups matching the GROUP_INCLUDE_PATTERNS will be included. \n"
  6502. +               );
  6503. +   cl = addList(
  6504. +                 "ENTRY_INCLUDE_PATTERNS",
  6505. +                 "The ENTRY_INCLUDE_PATTERNS tag can be used to limit documented entries of types \n"
  6506. +                 "other than the types mentioned above to those whose names match the specified \n"
  6507. +                 "list of patterns. If left blank, all documented entries will be included. \n"
  6508. +               );
  6509. +   cl = addList(
  6510. +                 "ENTRY_EXCLUDE_PATTERNS",
  6511. +                 "The ENTRY_EXCLUDE_PATTERNS tag can be used omit documented entries  of types \n"
  6512. +                 "other than the types mentioned above whose names match the specified list of \n"
  6513. +                 "patterns. If left blank, all documented entries matching the \n"
  6514. +                 "ENTRY_INCLUDE_PATTERNS will be included. \n"
  6515. +               );
  6516. +   cb = addBool(
  6517. +                 "DETAIL_SECTION_FIRST",
  6518. +                 "If the DETAIL_SECTION_FIRST tag is set to YES doxygen will output the detailed \n"
  6519. +                 "documentation for files, classes and modules before their respective member \n"
  6520. +                 "summary sections. If set to NO (the default), the file, class, or module \n"
  6521. +                 "details will follow the summary section. \n",
  6522. +                 FALSE
  6523. +               );
  6524. +   cb = addBool(
  6525. +                 "OUTPUT_TYPEDEFS",
  6526. +                 "If the OUTPUT_TYPEDEFS tag is set to YES doxygen will replace compound type \n"
  6527. +                 "specifiers with an equivalent typedef alias, if it exists. This tag is \n"
  6528. +                 "considered only when OPTIMIZE_OUTPUT_FOR_C is set to yes. \n",
  6529. +                 FALSE
  6530. +               );
  6531. +   ce = addEnum(
  6532. +                 "TOC_STYLE",
  6533. +                 "The TOC_STYLE tag is used to specify the style of the tree view and html \n"
  6534. +                 "help indices. Currently, three styles are supported: Original, Spicy, and \n"
  6535. +                 "Extra-Crispy. Original is the default and will include the usual items in \n"
  6536. +                 "the usual order. Spicy adds an annotated function list and removes \n"
  6537. +                 "individual entries for each files and data structure. Spicy also re-orders \n"
  6538. +                 "the items, placing top-level groups directly after the main page. Entries for \n"
  6539. +                 "functions, data structures, and files follow the group entries. Extra-Crispy \n"
  6540. +                 "is the same as Spicy, except the annotated function, data structure and file \n"
  6541. +                 "lists are followed by a separate entry for each row in the annotated list.\n",
  6542. +                 "Original"
  6543. +               );
  6544. +   ce->addValue("Original");
  6545. +   ce->addValue("Spicy");
  6546. +   ce->addValue("Extra-Crispy");
  6547. +           
  6548. +   cb = addBool(     "INVARIANT_DOCS",
  6549. +                     "The INVARIANT_DOCS tag determines if documentation that is typed after a \n"
  6550. +             "\\pre, \\post, or \\invariant command is included. If the tag is set to NO \n"
  6551. +             "then the documentation will be excluded. Set it to YES (the default) to \n"
  6552. +             "include the invariant documentation. \n",
  6553. +                     TRUE
  6554. +                  );
  6555. + #endif /* RSA_EXTENSIONS */
  6556.     
  6557.     cs = addString(
  6558.                    "PROJECT_NAME",
  6559. ***************
  6560. *** 1692,1697 ****
  6561. --- 1881,1903 ----
  6562.                       "of functions and classes directly in the documentation. \n",
  6563.                       FALSE
  6564.                    );
  6565. + #ifdef RSA_EXTENSIONS
  6566. +   cb = addBool(
  6567. +                     "INLINE_CLASS_DECL",
  6568. +                     "Setting the INLINE_CLASS_DECL tag to YES will include the body of \n"
  6569. +                     "classes directly into the documentation if the DETAIL_SECTION_FIRST \n"
  6570. +                     "tag is also set to YES. \n",
  6571. +                     FALSE
  6572. +               );
  6573. +   cb = addBool(
  6574. +                     "DEFINED_AT_RELATION",
  6575. +                     "If the DEFINED_AT tag is set to YES (the default) \n"
  6576. +                     "then for each documented item, the source line and file \n"
  6577. +                     "will be listed. \n",
  6578. +                     TRUE
  6579. +               );
  6580. +   cb->addDependency("SOURCE_BROWSER");
  6581. + #endif //RSA_EXTENSIONS
  6582.     cb = addBool(     "REFERENCED_BY_RELATION",
  6583.                       "If the REFERENCED_BY_RELATION tag is set to YES (the default) \n"
  6584.               "then for each documented function all documented \n"
  6585. ***************
  6586. *** 1849,1854 ****
  6587. --- 2055,2067 ----
  6588.                       0,1500,250
  6589.                    );
  6590.     ci->addDependency("GENERATE_HTML");
  6591. + #ifdef RSA_EXTENSIONS
  6592. +   cl = addList(     "HTML_EXTRA_FILES", 
  6593. +                     "The HTML_EXTRA_FILES tag can be used to specify a list of extra files that \n"
  6594. +                     "Doxygen will copy to the HTML output directory.");
  6595. +   cl->addDependency("GENERATE_HTML");
  6596. + #endif /* RSA_EXTENSIONS */
  6597.   
  6598.     //-----------------------------------------------------------------------------------------------
  6599.     addInfo(  "LaTeX","configuration options related to the LaTeX output");
  6600. Index: src/constexp.h
  6601. ===================================================================
  6602. RCS file: /usr/local/cvs/tools/doxygen/src/constexp.h,v
  6603. retrieving revision 1.1.1.8
  6604. retrieving revision 1.4
  6605. diff -b -c -b -c -r1.1.1.8 -r1.4
  6606. *** src/constexp.h    7 Feb 2002 23:10:13 -0000    1.1.1.8
  6607. --- src/constexp.h    7 Feb 2002 23:29:20 -0000    1.4
  6608. ***************
  6609. *** 1,6 ****
  6610.   /******************************************************************************
  6611.    *
  6612. !  * 
  6613.    *
  6614.    *
  6615.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6616. --- 1,6 ----
  6617.   /******************************************************************************
  6618.    *
  6619. !  * $Id$
  6620.    *
  6621.    *
  6622.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6623. Index: src/constexp.l
  6624. ===================================================================
  6625. RCS file: /usr/local/cvs/tools/doxygen/src/constexp.l,v
  6626. retrieving revision 1.1.1.8
  6627. retrieving revision 1.5
  6628. diff -b -c -b -c -r1.1.1.8 -r1.5
  6629. *** src/constexp.l    7 Feb 2002 23:10:13 -0000    1.1.1.8
  6630. --- src/constexp.l    7 Feb 2002 23:29:20 -0000    1.5
  6631. ***************
  6632. *** 1,6 ****
  6633.   /******************************************************************************
  6634.    *
  6635. !  * 
  6636.    *
  6637.    *
  6638.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6639. --- 1,6 ----
  6640.   /******************************************************************************
  6641.    *
  6642. !  * $Id$
  6643.    *
  6644.    *
  6645.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6646. Index: src/constexp.y
  6647. ===================================================================
  6648. RCS file: /usr/local/cvs/tools/doxygen/src/constexp.y,v
  6649. retrieving revision 1.1.1.7
  6650. retrieving revision 1.3
  6651. diff -b -c -b -c -r1.1.1.7 -r1.3
  6652. *** src/constexp.y    24 Jan 2002 04:03:53 -0000    1.1.1.7
  6653. --- src/constexp.y    24 Jan 2002 02:28:30 -0000    1.3
  6654. ***************
  6655. *** 1,6 ****
  6656.   /******************************************************************************
  6657.    *
  6658. !  * 
  6659.    *
  6660.    *
  6661.    * Copyright (C) 1997-1999 by Dimitri van Heesch.
  6662. --- 1,6 ----
  6663.   /******************************************************************************
  6664.    *
  6665. !  * $Id$
  6666.    *
  6667.    *
  6668.    * Copyright (C) 1997-1999 by Dimitri van Heesch.
  6669. Index: src/cppvalue.cpp
  6670. ===================================================================
  6671. RCS file: /usr/local/cvs/tools/doxygen/src/cppvalue.cpp,v
  6672. retrieving revision 1.1.1.8
  6673. retrieving revision 1.5
  6674. diff -b -c -b -c -r1.1.1.8 -r1.5
  6675. *** src/cppvalue.cpp    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6676. --- src/cppvalue.cpp    7 Feb 2002 23:29:20 -0000    1.5
  6677. ***************
  6678. *** 1,6 ****
  6679.   /******************************************************************************
  6680.    *
  6681. !  * 
  6682.    *
  6683.    *
  6684.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6685. --- 1,6 ----
  6686.   /******************************************************************************
  6687.    *
  6688. !  * $Id$
  6689.    *
  6690.    *
  6691.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6692. Index: src/cppvalue.h
  6693. ===================================================================
  6694. RCS file: /usr/local/cvs/tools/doxygen/src/cppvalue.h,v
  6695. retrieving revision 1.1.1.8
  6696. retrieving revision 1.4
  6697. diff -b -c -b -c -r1.1.1.8 -r1.4
  6698. *** src/cppvalue.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6699. --- src/cppvalue.h    7 Feb 2002 23:29:20 -0000    1.4
  6700. ***************
  6701. *** 1,6 ****
  6702.   /******************************************************************************
  6703.    *
  6704. !  * 
  6705.    *
  6706.    *
  6707.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6708. --- 1,6 ----
  6709.   /******************************************************************************
  6710.    *
  6711. !  * $Id$
  6712.    *
  6713.    *
  6714.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6715. Index: src/debug.cpp
  6716. ===================================================================
  6717. RCS file: /usr/local/cvs/tools/doxygen/src/debug.cpp,v
  6718. retrieving revision 1.1.1.8
  6719. retrieving revision 1.4
  6720. diff -b -c -b -c -r1.1.1.8 -r1.4
  6721. *** src/debug.cpp    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6722. --- src/debug.cpp    7 Feb 2002 23:29:20 -0000    1.4
  6723. ***************
  6724. *** 1,6 ****
  6725.   /******************************************************************************
  6726.    *
  6727. !  * 
  6728.    *
  6729.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6730.    *
  6731. --- 1,6 ----
  6732.   /******************************************************************************
  6733.    *
  6734. !  * $Id$
  6735.    *
  6736.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6737.    *
  6738. Index: src/debug.h
  6739. ===================================================================
  6740. RCS file: /usr/local/cvs/tools/doxygen/src/debug.h,v
  6741. retrieving revision 1.1.1.8
  6742. retrieving revision 1.4
  6743. diff -b -c -b -c -r1.1.1.8 -r1.4
  6744. *** src/debug.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6745. --- src/debug.h    7 Feb 2002 23:29:20 -0000    1.4
  6746. ***************
  6747. *** 1,6 ****
  6748.   /******************************************************************************
  6749.    *
  6750. !  * 
  6751.    *
  6752.    *
  6753.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6754. --- 1,6 ----
  6755.   /******************************************************************************
  6756.    *
  6757. !  * $Id$
  6758.    *
  6759.    *
  6760.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6761. Index: src/declinfo.h
  6762. ===================================================================
  6763. RCS file: /usr/local/cvs/tools/doxygen/src/declinfo.h,v
  6764. retrieving revision 1.1.1.8
  6765. retrieving revision 1.4
  6766. diff -b -c -b -c -r1.1.1.8 -r1.4
  6767. *** src/declinfo.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6768. --- src/declinfo.h    7 Feb 2002 23:29:20 -0000    1.4
  6769. ***************
  6770. *** 1,6 ****
  6771.   /******************************************************************************
  6772.    *
  6773. !  * 
  6774.    *
  6775.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6776.    *
  6777. --- 1,6 ----
  6778.   /******************************************************************************
  6779.    *
  6780. !  * $Id$
  6781.    *
  6782.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6783.    *
  6784. Index: src/declinfo.l
  6785. ===================================================================
  6786. RCS file: /usr/local/cvs/tools/doxygen/src/declinfo.l,v
  6787. retrieving revision 1.1.1.8
  6788. retrieving revision 1.4
  6789. diff -b -c -b -c -r1.1.1.8 -r1.4
  6790. *** src/declinfo.l    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6791. --- src/declinfo.l    7 Feb 2002 23:29:20 -0000    1.4
  6792. ***************
  6793. *** 1,6 ****
  6794.   /******************************************************************************
  6795.    *
  6796. !  * 
  6797.    *
  6798.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6799.    *
  6800. --- 1,6 ----
  6801.   /******************************************************************************
  6802.    *
  6803. !  * $Id$
  6804.    *
  6805.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6806.    *
  6807. Index: src/defargs.h
  6808. ===================================================================
  6809. RCS file: /usr/local/cvs/tools/doxygen/src/defargs.h,v
  6810. retrieving revision 1.1.1.8
  6811. retrieving revision 1.4
  6812. diff -b -c -b -c -r1.1.1.8 -r1.4
  6813. *** src/defargs.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6814. --- src/defargs.h    7 Feb 2002 23:29:20 -0000    1.4
  6815. ***************
  6816. *** 1,6 ****
  6817.   /******************************************************************************
  6818.    *
  6819. !  * 
  6820.    *
  6821.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6822.    *
  6823. --- 1,6 ----
  6824.   /******************************************************************************
  6825.    *
  6826. !  * $Id$
  6827.    *
  6828.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6829.    *
  6830. Index: src/defargs.l
  6831. ===================================================================
  6832. RCS file: /usr/local/cvs/tools/doxygen/src/defargs.l,v
  6833. retrieving revision 1.1.1.8
  6834. retrieving revision 1.5
  6835. diff -b -c -b -c -r1.1.1.8 -r1.5
  6836. *** src/defargs.l    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6837. --- src/defargs.l    7 Feb 2002 23:29:20 -0000    1.5
  6838. ***************
  6839. *** 1,6 ****
  6840.   /******************************************************************************
  6841.    *
  6842. !  * 
  6843.    *
  6844.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6845.    *
  6846. --- 1,6 ----
  6847.   /******************************************************************************
  6848.    *
  6849. !  * $Id$
  6850.    *
  6851.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6852.    *
  6853. Index: src/define.cpp
  6854. ===================================================================
  6855. RCS file: /usr/local/cvs/tools/doxygen/src/define.cpp,v
  6856. retrieving revision 1.1.1.8
  6857. retrieving revision 1.4
  6858. diff -b -c -b -c -r1.1.1.8 -r1.4
  6859. *** src/define.cpp    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6860. --- src/define.cpp    7 Feb 2002 23:29:20 -0000    1.4
  6861. ***************
  6862. *** 1,6 ****
  6863.   /******************************************************************************
  6864.    *
  6865. !  * 
  6866.    *
  6867.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6868.    *
  6869. --- 1,6 ----
  6870.   /******************************************************************************
  6871.    *
  6872. !  * $Id$
  6873.    *
  6874.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6875.    *
  6876. Index: src/define.h
  6877. ===================================================================
  6878. RCS file: /usr/local/cvs/tools/doxygen/src/define.h,v
  6879. retrieving revision 1.1.1.8
  6880. retrieving revision 1.4
  6881. diff -b -c -b -c -r1.1.1.8 -r1.4
  6882. *** src/define.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6883. --- src/define.h    7 Feb 2002 23:29:20 -0000    1.4
  6884. ***************
  6885. *** 1,6 ****
  6886.   /******************************************************************************
  6887.    *
  6888. !  * 
  6889.    *
  6890.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6891.    *
  6892. --- 1,6 ----
  6893.   /******************************************************************************
  6894.    *
  6895. !  * $Id$
  6896.    *
  6897.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  6898.    *
  6899. Index: src/definition.cpp
  6900. ===================================================================
  6901. RCS file: /usr/local/cvs/tools/doxygen/src/definition.cpp,v
  6902. retrieving revision 1.1.1.8
  6903. retrieving revision 1.9
  6904. diff -b -c -b -c -r1.1.1.8 -r1.9
  6905. *** src/definition.cpp    7 Feb 2002 23:10:14 -0000    1.1.1.8
  6906. --- src/definition.cpp    13 Mar 2002 01:09:44 -0000    1.9
  6907. ***************
  6908. *** 138,145 ****
  6909. --- 138,150 ----
  6910.    * The file is scanned for a closing bracket ('}') from \a endLine backward.
  6911.    * The line actually containing the bracket is returned via endLine.
  6912.    */
  6913. + #ifdef RSA_EXTENSIONS
  6914. + static bool readCodeFragment(const char *fileName,
  6915. +                       int &startLine,int &endLine,QCString &result,bool skipToBracket=TRUE)
  6916. + #else //!RSA_EXTENSIONS
  6917.   static bool readCodeFragment(const char *fileName,
  6918.                         int &startLine,int &endLine,QCString &result)
  6919. + #endif //RSA_EXTENSIONS
  6920.   {
  6921.     //printf("readCodeFragment(%s,%d,%d)\n",fileName,startLine,endLine);
  6922.     if (fileName==0 || fileName[0]==0) return FALSE; // not a valid file name
  6923. ***************
  6924. *** 160,165 ****
  6925. --- 165,176 ----
  6926.         // skip until the opening bracket or lonely : is found
  6927.         bool found=FALSE;
  6928.         char cn=0;
  6929. + #ifdef RSA_EXTENSIONS
  6930. +       if (skipToBracket == FALSE)
  6931. +       {
  6932. +         found = TRUE;
  6933. +       }
  6934. + #endif
  6935.         while (lineNr<=endLine && !f.atEnd() && !found)
  6936.         {
  6937.           while ((c=f.getch())!='{' && c!=':' && c!=-1) 
  6938. ***************
  6939. *** 189,194 ****
  6940. --- 200,209 ----
  6941.         }
  6942.         if (found) 
  6943.         {
  6944. + #ifdef RSA_EXTENSIONS
  6945. +         if (skipToBracket == TRUE)
  6946. +         {
  6947. + #endif //RSA_EXTENSIONS
  6948.           // For code with more than one line,
  6949.           // fill the line with spaces until we are at the right column
  6950.           // so that the opening brace lines up with the closing brace
  6951. ***************
  6952. *** 201,206 ****
  6953. --- 216,224 ----
  6954.           // copy until end of line
  6955.           result+=c;
  6956.           if (c==':') result+=cn;
  6957. + #ifdef RSA_EXTENSIONS
  6958. +         }
  6959. + #endif //RSA_EXTENSIONS
  6960.           startLine=lineNr;
  6961.           const int maxLineLength=4096;
  6962.           char lineStr[maxLineLength];
  6963. ***************
  6964. *** 236,242 ****
  6965. --- 254,265 ----
  6966.   {
  6967.     ol.pushGeneratorState();
  6968.     //printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
  6969. + #ifdef RSA_EXTENSIONS
  6970. +   if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef && 
  6971. +     !m_bodyDef->isHidden() && Config_getBool("DEFINED_AT_RELATION"))
  6972. + #else //RSA_EXTENSIONS
  6973.     if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef)
  6974. + #endif //RSA_EXTENSIONS
  6975.     {
  6976.       //ol.disable(OutputGenerator::RTF);
  6977.       ol.newParagraph();
  6978. ***************
  6979. *** 328,345 ****
  6980. --- 351,382 ----
  6981.   }
  6982.   
  6983.   /*! Write code of this definition into the documentation */
  6984. + #ifdef RSA_EXTENSIONS
  6985. + void Definition::writeInlineCode(OutputList &ol,const char *scopeName,bool doInline)
  6986. + #else //!RSA_EXTENSIONS
  6987.   void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
  6988. + #endif //RSA_EXTENSIONS
  6989.   {
  6990.     ol.pushGeneratorState();
  6991.     //printf("Source Fragment %s: %d-%d bodyDef=%p\n",name().data(),
  6992.     //        startBodyLine,endBodyLine,bodyDef);
  6993. + #ifdef RSA_EXTENSIONS
  6994. +   if ((doInline || Config_getBool("INLINE_SOURCES")) && m_startBodyLine!=-1 && 
  6995. +       m_endBodyLine>=m_startBodyLine && m_bodyDef)
  6996. + #else //!RSA_EXTENSIONS
  6997.     if (Config_getBool("INLINE_SOURCES") && m_startBodyLine!=-1 && 
  6998.         m_endBodyLine>=m_startBodyLine && m_bodyDef)
  6999. + #endif
  7000.     {
  7001.       QCString codeFragment;
  7002.       int actualStart=m_startBodyLine,actualEnd=m_endBodyLine;
  7003. + #ifdef RSA_EXTENSIONS
  7004. +     if (readCodeFragment(m_bodyDef->absFilePath(),
  7005. +           actualStart,actualEnd,codeFragment,doInline==FALSE)
  7006. + #else //!RSA_EXTENSIONS
  7007.       if (readCodeFragment(m_bodyDef->absFilePath(),
  7008.             actualStart,actualEnd,codeFragment)
  7009. + #endif //RSA_EXTENSIONS
  7010.          )
  7011.       {
  7012.         initParseCodeContext();
  7013. ***************
  7014. *** 347,354 ****
  7015. --- 384,396 ----
  7016.         if (definitionType()==TypeMember) setParameterList((MemberDef *)this);
  7017.         ol.newParagraph();
  7018.         ol.startCodeFragment();
  7019. + #ifdef RSA_EXTENSIONS
  7020. +       parseCode(ol,scopeName,codeFragment,FALSE,0,
  7021. +           m_bodyDef,actualStart,actualEnd,TRUE,doInline==FALSE);
  7022. + #else //!RSA_EXTENSIONS
  7023.         parseCode(ol,scopeName,codeFragment,FALSE,0,
  7024.             m_bodyDef,actualStart,actualEnd,TRUE);
  7025. + #endif //RSA_EXTENSIONS
  7026.         ol.endCodeFragment();
  7027.       }
  7028.     }
  7029. Index: src/definition.h
  7030. ===================================================================
  7031. RCS file: /usr/local/cvs/tools/doxygen/src/definition.h,v
  7032. retrieving revision 1.1.1.8
  7033. retrieving revision 1.5
  7034. diff -b -c -b -c -r1.1.1.8 -r1.5
  7035. *** src/definition.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  7036. --- src/definition.h    1 Mar 2002 03:46:16 -0000    1.5
  7037. ***************
  7038. *** 1,6 ****
  7039.   /******************************************************************************
  7040.    *
  7041. !  * 
  7042.    *
  7043.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7044.    *
  7045. --- 1,6 ----
  7046.   /******************************************************************************
  7047.    *
  7048. !  * $Id$
  7049.    *
  7050.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7051.    *
  7052. ***************
  7053. *** 95,101 ****
  7054. --- 95,105 ----
  7055.       int getEndBodyLine() const           { return m_endBodyLine; }
  7056.       FileDef *getBodyDef()                { return m_bodyDef; }
  7057.       void writeSourceDef(OutputList &ol,const char *scopeName);
  7058. + #ifdef RSA_EXTENSIONS
  7059. +     void writeInlineCode(OutputList &ol,const char *scopeName,bool doInline=FALSE);
  7060. + #else //!RSA_EXTENSIONS
  7061.       void writeInlineCode(OutputList &ol,const char *scopeName);
  7062. + #endif
  7063.       void writeSourceRefs(OutputList &ol,const char *scopeName);
  7064.       void writeSourceReffedBy(OutputList &ol,const char *scopeName);
  7065.       void addSourceReferencedBy(MemberDef *d);
  7066. Index: src/diagram.cpp
  7067. ===================================================================
  7068. RCS file: /usr/local/cvs/tools/doxygen/src/diagram.cpp,v
  7069. retrieving revision 1.1.1.8
  7070. retrieving revision 1.3
  7071. diff -b -c -b -c -r1.1.1.8 -r1.3
  7072. *** src/diagram.cpp    7 Feb 2002 23:10:14 -0000    1.1.1.8
  7073. --- src/diagram.cpp    7 Feb 2002 23:29:20 -0000    1.3
  7074. ***************
  7075. *** 1,6 ****
  7076.   /******************************************************************************
  7077.    *
  7078. !  * 
  7079.    *
  7080.    *
  7081.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7082. --- 1,6 ----
  7083.   /******************************************************************************
  7084.    *
  7085. !  * $Id$
  7086.    *
  7087.    *
  7088.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7089. Index: src/diagram.h
  7090. ===================================================================
  7091. RCS file: /usr/local/cvs/tools/doxygen/src/diagram.h,v
  7092. retrieving revision 1.1.1.8
  7093. retrieving revision 1.4
  7094. diff -b -c -b -c -r1.1.1.8 -r1.4
  7095. *** src/diagram.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  7096. --- src/diagram.h    7 Feb 2002 23:29:20 -0000    1.4
  7097. ***************
  7098. *** 1,6 ****
  7099.   /******************************************************************************
  7100.    *
  7101. !  * 
  7102.    *
  7103.    *
  7104.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7105. --- 1,6 ----
  7106.   /******************************************************************************
  7107.    *
  7108. !  * $Id$
  7109.    *
  7110.    *
  7111.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7112. Index: src/doc.h
  7113. ===================================================================
  7114. RCS file: /usr/local/cvs/tools/doxygen/src/doc.h,v
  7115. retrieving revision 1.1.1.8
  7116. retrieving revision 1.3
  7117. diff -b -c -b -c -r1.1.1.8 -r1.3
  7118. *** src/doc.h    7 Feb 2002 23:10:14 -0000    1.1.1.8
  7119. --- src/doc.h    7 Feb 2002 23:29:20 -0000    1.3
  7120. ***************
  7121. *** 1,6 ****
  7122.   /******************************************************************************
  7123.    *
  7124. !  * 
  7125.    *
  7126.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7127.    *
  7128. --- 1,6 ----
  7129.   /******************************************************************************
  7130.    *
  7131. !  * $Id$
  7132.    *
  7133.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7134.    *
  7135. Index: src/doc.l
  7136. ===================================================================
  7137. RCS file: /usr/local/cvs/tools/doxygen/src/doc.l,v
  7138. retrieving revision 1.1.1.8
  7139. retrieving revision 1.6
  7140. diff -b -c -b -c -r1.1.1.8 -r1.6
  7141. *** src/doc.l    7 Feb 2002 23:10:14 -0000    1.1.1.8
  7142. --- src/doc.l    7 Feb 2002 23:29:20 -0000    1.6
  7143. ***************
  7144. *** 1,6 ****
  7145.   /*****************************************************************************
  7146.    *
  7147. !  * 
  7148.    *
  7149.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7150.    *
  7151. --- 1,6 ----
  7152.   /*****************************************************************************
  7153.    *
  7154. !  * $Id$
  7155.    *
  7156.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7157.    *
  7158. Index: src/dot.cpp
  7159. ===================================================================
  7160. RCS file: /usr/local/cvs/tools/doxygen/src/dot.cpp,v
  7161. retrieving revision 1.1.1.8
  7162. retrieving revision 1.6
  7163. diff -b -c -b -c -r1.1.1.8 -r1.6
  7164. *** src/dot.cpp    7 Feb 2002 23:10:14 -0000    1.1.1.8
  7165. --- src/dot.cpp    7 Feb 2002 23:29:20 -0000    1.6
  7166. ***************
  7167. *** 1,6 ****
  7168.   /*****************************************************************************
  7169.    *
  7170. !  * 
  7171.    *
  7172.    *
  7173.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7174. --- 1,6 ----
  7175.   /*****************************************************************************
  7176.    *
  7177. !  * $Id$
  7178.    *
  7179.    *
  7180.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7181. Index: src/dot.h
  7182. ===================================================================
  7183. RCS file: /usr/local/cvs/tools/doxygen/src/dot.h,v
  7184. retrieving revision 1.1.1.8
  7185. retrieving revision 1.6
  7186. diff -b -c -b -c -r1.1.1.8 -r1.6
  7187. *** src/dot.h    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7188. --- src/dot.h    7 Feb 2002 23:29:20 -0000    1.6
  7189. ***************
  7190. *** 1,6 ****
  7191.   /******************************************************************************
  7192.    *
  7193. !  * 
  7194.    *
  7195.    *
  7196.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7197. --- 1,6 ----
  7198.   /******************************************************************************
  7199.    *
  7200. !  * $Id$
  7201.    *
  7202.    *
  7203.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7204. Index: src/doxygen.cpp
  7205. ===================================================================
  7206. RCS file: /usr/local/cvs/tools/doxygen/src/doxygen.cpp,v
  7207. retrieving revision 1.1.1.8
  7208. retrieving revision 1.12
  7209. diff -b -c -b -c -r1.1.1.8 -r1.12
  7210. *** src/doxygen.cpp    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7211. --- src/doxygen.cpp    28 Feb 2002 18:20:31 -0000    1.12
  7212. ***************
  7213. *** 1,6 ****
  7214.   /******************************************************************************
  7215.    *
  7216. !  * 
  7217.    *
  7218.    *
  7219.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7220. --- 1,6 ----
  7221.   /******************************************************************************
  7222.    *
  7223. !  * $Id$
  7224.    *
  7225.    *
  7226.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7227. ***************
  7228. *** 109,114 ****
  7229. --- 109,118 ----
  7230.   QTextStream    Doxygen::tagFile;
  7231.   NamespaceDef  *Doxygen::globalScope = new NamespaceDef("<globalScope>",1,"<globalScope>");
  7232.   
  7233. + #ifdef RSA_EXTENSIONS
  7234. + Doxygen::TocStyle Doxygen::tocStyle = Doxygen::Original;
  7235. + #endif //RSA_EXTENSIONS
  7236. +   
  7237.   static StringList     inputFiles;         
  7238.   static StringDict     excludeNameDict(1009);   // sections
  7239.   static QDict<void>    compoundKeywordDict(7);  // keywords recognised as compounds
  7240. ***************
  7241. *** 5012,5023 ****
  7242. --- 5016,5035 ----
  7243.       writeAlphabeticalIndex(*outputList);
  7244.     }
  7245.   
  7246. + #ifdef RSA_EXTENSIONS
  7247. +   if (!Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
  7248. +   {
  7249. + #endif //RSA_EXTENSIONS
  7250.     msg("Generating hierarchical class index...\n");
  7251.     writeHierarchicalIndex(*outputList);
  7252.   
  7253.     msg("Generating member index...\n");
  7254.     writeMemberIndex(*outputList);
  7255.   
  7256. + #ifdef RSA_EXTENSIONS
  7257. +   }
  7258. + #endif //RSA_EXTENSIONS
  7259.     if (Doxygen::exampleSDict->count()>0)
  7260.     {
  7261.       msg("Generating example index...\n");
  7262. ***************
  7263. *** 5584,5589 ****
  7264. --- 5596,5604 ----
  7265.     {
  7266.       if (!gd->isReference())
  7267.       {
  7268. + #ifdef RSA_EXTENSIONS
  7269. +       msg("Generating docs for group %s\n", gd->name().data());
  7270. + #endif //RSA_EXTENSIONS
  7271.         gd->writeDocumentation(*outputList);
  7272.       }
  7273.     }
  7274. ***************
  7275. *** 6020,6025 ****
  7276. --- 6035,6083 ----
  7277.     }
  7278.   }
  7279.   
  7280. + #ifdef RSA_EXTENSIONS
  7281. + static void copyFile(QCString &fileName)
  7282. + {
  7283. +   if (!fileName.isEmpty())
  7284. +   {
  7285. +     QFile f(fileName);
  7286. +     QFileInfo fi(fileName);
  7287. +     if (f.open(IO_ReadOnly))
  7288. +     {
  7289. +       QCString destFileName = Config_getString("HTML_OUTPUT")+"/"+fi.fileName().data();
  7290. +       QFile df(destFileName);
  7291. +       if (df.open(IO_WriteOnly))
  7292. +       {
  7293. +         char *buffer = new char[f.size()];
  7294. +         f.readBlock(buffer,f.size());
  7295. +         df.writeBlock(buffer,f.size());
  7296. +         df.flush();
  7297. +         delete buffer;
  7298. +       }
  7299. +       else
  7300. +       {
  7301. +         err("Error: could not write to file %s\n",destFileName.data());
  7302. +       }
  7303. +     }
  7304. +     else
  7305. +     {
  7306. +       err("Error: could not open user specified file %s\n",fileName.data());
  7307. +     }
  7308. +   }
  7309. + }
  7310. + static void copyExtraFiles()
  7311. + {
  7312. +     QStrList &fileList = Config_getList("HTML_EXTRA_FILES");
  7313. +     QCString fileName = fileList.first();
  7314. +     while (!fileName.isEmpty())
  7315. +     {
  7316. +         copyFile(fileName);
  7317. +         fileName = fileList.next();
  7318. +     }
  7319. + }
  7320. + #endif //RSA_EXTENSIONS
  7321.   //----------------------------------------------------------------------------
  7322.   // Reads a file to a string.
  7323.   // The name of the file is written in front of the file's contents and
  7324. ***************
  7325. *** 7097,7102 ****
  7326. --- 7155,7172 ----
  7327.       if (Config_getBool("GENERATE_HTMLHELP")) HtmlHelp::getInstance()->initialize();
  7328.       if (Config_getBool("GENERATE_TREEVIEW")) FTVHelp::getInstance()->initialize();
  7329.       copyStyleSheet();
  7330. + #ifdef RSA_EXTENSIONS
  7331. +     // Set the style of tree view and HTML indices.
  7332. +     QCString tocStyleOpt=Config_getEnum("TOC_STYLE");
  7333. +     if (stricmp(tocStyleOpt, "Original") == 0)
  7334. +       Doxygen::tocStyle = Doxygen::Original;
  7335. +     else if (stricmp(tocStyleOpt, "Spicy") == 0)
  7336. +       Doxygen::tocStyle = Doxygen::Spicy;
  7337. +     else
  7338. +       Doxygen::tocStyle = Doxygen::ExtraCrispy;
  7339. +     copyExtraFiles();
  7340. + #endif //RSA_EXTENSIONS
  7341.     }
  7342.     if (Config_getBool("GENERATE_LATEX")) 
  7343.     {
  7344. ***************
  7345. *** 7157,7162 ****
  7346. --- 7227,7237 ----
  7347.     msg("Generating index page...\n"); 
  7348.     writeIndex(*outputList);
  7349.   
  7350. + #ifdef RSA_EXTENSIONS
  7351. +   if (Doxygen::tocStyle == Doxygen::Original)
  7352. +   {
  7353. + #endif //RSA_EXTENSIONS
  7354.     msg("Generating file index...\n");
  7355.     writeFileIndex(*outputList);
  7356.   
  7357. ***************
  7358. *** 7208,7213 ****
  7359. --- 7283,7352 ----
  7360.     msg("Generating search index...\n");
  7361.     generateSearchIndex();
  7362.     
  7363. + #ifdef RSA_EXTENSIONS
  7364. +   }
  7365. +   else
  7366. +   {
  7367. +     msg("Generating group documentation...\n");
  7368. +     generateGroupDocs();
  7369. +     msg("Generating group index...\n");
  7370. +     writeGroupIndex(*outputList);
  7371. +   
  7372. +     msg("Generating annotated function list...\n");
  7373. +     writeAnnotatedFunctionList(*outputList);
  7374. +     msg("Generating class documentation...\n");
  7375. +     generateClassDocs();
  7376. +   
  7377. +     msg("Generating file index...\n");
  7378. +     writeFileIndex(*outputList);
  7379. +     msg("Generating example documentation...\n");
  7380. +     generateExampleDocs();
  7381. +     msg("Generating file sources...\n");
  7382. +     generateFileSources();
  7383. +     msg("Generating file documentation...\n");
  7384. +     generateFileDocs();
  7385. +   
  7386. +     msg("Generating page documentation...\n");
  7387. +     generatePageDocs();
  7388. +   
  7389. +     msg("Generating namespace index...\n");
  7390. +     generateNamespaceDocs();
  7391. +   
  7392. +     msg("Generating package index...\n");
  7393. +     generatePackageDocs();
  7394. +     msg("Generating example index...\n");
  7395. +     writeExampleIndex(*outputList);
  7396. +     msg("Generating alphabetical function index...\n");
  7397. +     writeAlphabeticalFunctionIndex(*outputList);
  7398. + //    msg("Generating file member index...\n");
  7399. + //    writeFileMemberIndex(*outputList);
  7400. +   
  7401. +     msg("Generating namespace member index...\n");
  7402. +     writeNamespaceMemberIndex(*outputList);
  7403. +     msg("Generating page index...\n");
  7404. +     writePageIndex(*outputList);
  7405. +   
  7406. +     if (Config_getBool("GENERATE_LEGEND"))
  7407. +     {
  7408. +       msg("Generating graph info page...\n");
  7409. +       writeGraphInfo(*outputList);
  7410. +     }
  7411. +     msg("Generating search index...\n");
  7412. +     generateSearchIndex();
  7413. +   
  7414. +   }
  7415. + #endif
  7416.     msg("Generating style sheet...\n");
  7417.     outputList->writeStyleInfo(0); // write first part
  7418.     outputList->disableAllBut(OutputGenerator::Latex);
  7419. Index: src/doxygen.h
  7420. ===================================================================
  7421. RCS file: /usr/local/cvs/tools/doxygen/src/doxygen.h,v
  7422. retrieving revision 1.1.1.8
  7423. retrieving revision 1.5
  7424. diff -b -c -b -c -r1.1.1.8 -r1.5
  7425. *** src/doxygen.h    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7426. --- src/doxygen.h    28 Feb 2002 03:22:59 -0000    1.5
  7427. ***************
  7428. *** 1,6 ****
  7429.   /******************************************************************************
  7430.    *
  7431. !  * 
  7432.    *
  7433.    *
  7434.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7435. --- 1,6 ----
  7436.   /******************************************************************************
  7437.    *
  7438. !  * $Id$
  7439.    *
  7440.    *
  7441.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7442. ***************
  7443. *** 92,97 ****
  7444. --- 92,107 ----
  7445.       static QDict<void> expandAsDefinedDict;
  7446.       static PackageSDict packageDict;
  7447.       static NamespaceDef *globalScope;
  7448. + #ifdef RSA_EXTENSIONS
  7449. +     enum TocStyle {
  7450. +       Original,
  7451. +       Spicy,
  7452. +       ExtraCrispy
  7453. +     };
  7454. +     static TocStyle tocStyle;
  7455. + #endif
  7456.   };
  7457.   
  7458.   void initDoxygen();
  7459. Index: src/doxygen.pro.in
  7460. ===================================================================
  7461. RCS file: /usr/local/cvs/tools/doxygen/src/doxygen.pro.in,v
  7462. retrieving revision 1.1.1.8
  7463. retrieving revision 1.5
  7464. diff -b -c -b -c -r1.1.1.8 -r1.5
  7465. *** src/doxygen.pro.in    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7466. --- src/doxygen.pro.in    7 Feb 2002 23:29:20 -0000    1.5
  7467. ***************
  7468. *** 1,5 ****
  7469.   #
  7470. ! # 
  7471.   #
  7472.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  7473.   #
  7474. --- 1,5 ----
  7475.   #
  7476. ! # $Id$
  7477.   #
  7478.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  7479.   #
  7480. ***************
  7481. *** 18,23 ****
  7482. --- 18,25 ----
  7483.   CONFIG       =    console warn_on $extraopts
  7484.   HEADERS      =    doxygen.h 
  7485.   SOURCES      =    main.cpp
  7486. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  7487. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  7488.   unix:LIBS                  += -L../lib -ldoxygen -ldoxycfg -lqtools 
  7489.   win32:INCLUDEPATH          += .
  7490.   win32-mingw:LIBS           += -L../lib -ldoxygen -ldoxycfg -lqtools 
  7491. Index: src/doxysearch.cpp
  7492. ===================================================================
  7493. RCS file: /usr/local/cvs/tools/doxygen/src/doxysearch.cpp,v
  7494. retrieving revision 1.1.1.8
  7495. retrieving revision 1.4
  7496. diff -b -c -b -c -r1.1.1.8 -r1.4
  7497. *** src/doxysearch.cpp    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7498. --- src/doxysearch.cpp    7 Feb 2002 23:29:21 -0000    1.4
  7499. ***************
  7500. *** 1,6 ****
  7501.   /******************************************************************************
  7502.    *
  7503. !  * 
  7504.    *
  7505.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7506.    *
  7507. --- 1,6 ----
  7508.   /******************************************************************************
  7509.    *
  7510. !  * $Id$
  7511.    *
  7512.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7513.    *
  7514. Index: src/doxysearch.pro.in
  7515. ===================================================================
  7516. RCS file: /usr/local/cvs/tools/doxygen/src/doxysearch.pro.in,v
  7517. retrieving revision 1.1.1.7
  7518. retrieving revision 1.4
  7519. diff -b -c -b -c -r1.1.1.7 -r1.4
  7520. *** src/doxysearch.pro.in    24 Jan 2002 04:03:54 -0000    1.1.1.7
  7521. --- src/doxysearch.pro.in    3 Feb 2002 23:18:04 -0000    1.4
  7522. ***************
  7523. *** 1,5 ****
  7524.   # 
  7525. ! # 
  7526.   #
  7527.   # Copyright (C) 1997-1999 by Dimitri van Heesch.
  7528.   # 
  7529. --- 1,5 ----
  7530.   # 
  7531. ! # $Id$
  7532.   #
  7533.   # Copyright (C) 1997-1999 by Dimitri van Heesch.
  7534.   # 
  7535. ***************
  7536. *** 17,19 ****
  7537. --- 17,21 ----
  7538.   SOURCES      =    doxysearch.cpp
  7539.   TARGET       =    ../bin/doxysearch
  7540.   OBJECTS_DIR  =  ../objects
  7541. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  7542. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  7543. Index: src/doxytag.l
  7544. ===================================================================
  7545. RCS file: /usr/local/cvs/tools/doxygen/src/doxytag.l,v
  7546. retrieving revision 1.1.1.8
  7547. retrieving revision 1.4
  7548. diff -b -c -b -c -r1.1.1.8 -r1.4
  7549. *** src/doxytag.l    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7550. --- src/doxytag.l    7 Feb 2002 23:29:21 -0000    1.4
  7551. ***************
  7552. *** 1,6 ****
  7553.   /******************************************************************************
  7554.    *
  7555. !  * 
  7556.    *
  7557.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7558.    *
  7559. --- 1,6 ----
  7560.   /******************************************************************************
  7561.    *
  7562. !  * $Id$
  7563.    *
  7564.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7565.    *
  7566. Index: src/doxytag.pro.in
  7567. ===================================================================
  7568. RCS file: /usr/local/cvs/tools/doxygen/src/doxytag.pro.in,v
  7569. retrieving revision 1.1.1.7
  7570. retrieving revision 1.4
  7571. diff -b -c -b -c -r1.1.1.7 -r1.4
  7572. *** src/doxytag.pro.in    24 Jan 2002 04:03:54 -0000    1.1.1.7
  7573. --- src/doxytag.pro.in    3 Feb 2002 23:18:04 -0000    1.4
  7574. ***************
  7575. *** 1,5 ****
  7576.   # 
  7577. ! # 
  7578.   #
  7579.   # Copyright (C) 1997-1999 by Dimitri van Heesch.
  7580.   # 
  7581. --- 1,5 ----
  7582.   # 
  7583. ! # $Id$
  7584.   #
  7585.   # Copyright (C) 1997-1999 by Dimitri van Heesch.
  7586.   # 
  7587. ***************
  7588. *** 19,24 ****
  7589. --- 19,26 ----
  7590.   HEADERS      =  suffixtree.h searchindex.h logos.h version.h
  7591.   SOURCES      =    doxytag.cpp suffixtree.cpp searchindex.cpp \
  7592.           logos.cpp version.cpp 
  7593. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  7594. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  7595.   unix:LIBS                  += -L../lib -lqtools
  7596.   win32:INCLUDEPATH          += .
  7597.   win32-mingw:LIBS           += -L../lib -lqtools
  7598. Index: src/doxytag.t
  7599. ===================================================================
  7600. RCS file: /usr/local/cvs/tools/doxygen/src/doxytag.t,v
  7601. retrieving revision 1.1.1.7
  7602. retrieving revision 1.3
  7603. diff -b -c -b -c -r1.1.1.7 -r1.3
  7604. *** src/doxytag.t    24 Jan 2002 04:03:55 -0000    1.1.1.7
  7605. --- src/doxytag.t    24 Jan 2002 02:28:31 -0000    1.3
  7606. ***************
  7607. *** 1,5 ****
  7608.   #
  7609. ! # 
  7610.   #
  7611.   # Copyright (C) 1997-1999 by Dimitri van Heesch.
  7612.   #
  7613. --- 1,5 ----
  7614.   #
  7615. ! # $Id$
  7616.   #
  7617.   # Copyright (C) 1997-1999 by Dimitri van Heesch.
  7618.   #
  7619. Index: src/entry.cpp
  7620. ===================================================================
  7621. RCS file: /usr/local/cvs/tools/doxygen/src/entry.cpp,v
  7622. retrieving revision 1.1.1.8
  7623. retrieving revision 1.5
  7624. diff -b -c -b -c -r1.1.1.8 -r1.5
  7625. *** src/entry.cpp    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7626. --- src/entry.cpp    7 Feb 2002 23:29:21 -0000    1.5
  7627. ***************
  7628. *** 1,6 ****
  7629.   /******************************************************************************
  7630.    *
  7631. !  * 
  7632.    *
  7633.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7634.    *
  7635. --- 1,6 ----
  7636.   /******************************************************************************
  7637.    *
  7638. !  * $Id$
  7639.    *
  7640.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7641.    *
  7642. Index: src/entry.h
  7643. ===================================================================
  7644. RCS file: /usr/local/cvs/tools/doxygen/src/entry.h,v
  7645. retrieving revision 1.1.1.8
  7646. retrieving revision 1.5
  7647. diff -b -c -b -c -r1.1.1.8 -r1.5
  7648. *** src/entry.h    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7649. --- src/entry.h    7 Feb 2002 23:29:21 -0000    1.5
  7650. ***************
  7651. *** 1,6 ****
  7652.   /******************************************************************************
  7653.    *
  7654. !  * 
  7655.    *
  7656.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7657.    *
  7658. --- 1,6 ----
  7659.   /******************************************************************************
  7660.    *
  7661. !  * $Id$
  7662.    *
  7663.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7664.    *
  7665. Index: src/example.h
  7666. ===================================================================
  7667. RCS file: /usr/local/cvs/tools/doxygen/src/example.h,v
  7668. retrieving revision 1.1.1.8
  7669. retrieving revision 1.4
  7670. diff -b -c -b -c -r1.1.1.8 -r1.4
  7671. *** src/example.h    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7672. --- src/example.h    7 Feb 2002 23:29:21 -0000    1.4
  7673. ***************
  7674. *** 1,6 ****
  7675.   /******************************************************************************
  7676.    *
  7677. !  * 
  7678.    *
  7679.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7680.    *
  7681. --- 1,6 ----
  7682.   /******************************************************************************
  7683.    *
  7684. !  * $Id$
  7685.    *
  7686.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7687.    *
  7688. Index: src/filedef.cpp
  7689. ===================================================================
  7690. RCS file: /usr/local/cvs/tools/doxygen/src/filedef.cpp,v
  7691. retrieving revision 1.1.1.8
  7692. retrieving revision 1.8
  7693. diff -b -c -b -c -r1.1.1.8 -r1.8
  7694. *** src/filedef.cpp    7 Feb 2002 23:10:15 -0000    1.1.1.8
  7695. --- src/filedef.cpp    8 Feb 2002 06:07:30 -0000    1.8
  7696. ***************
  7697. *** 1,6 ****
  7698.   /******************************************************************************
  7699.    *
  7700. !  * 
  7701.    *
  7702.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7703.    *
  7704. --- 1,6 ----
  7705.   /******************************************************************************
  7706.    *
  7707. !  * $Id$
  7708.    *
  7709.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7710.    *
  7711. ***************
  7712. *** 102,107 ****
  7713. --- 102,113 ----
  7714.   */
  7715.   void FileDef::writeDocumentation(OutputList &ol)
  7716.   {
  7717. + #ifdef RSA_EXTENSIONS
  7718. +   if (isHidden())
  7719. +   {
  7720. +     return;
  7721. +   }
  7722. + #endif
  7723.     //funcList->countDecMembers();
  7724.     
  7725.     //QCString fn = name();
  7726. ***************
  7727. *** 138,152 ****
  7728. --- 144,174 ----
  7729.       parseDoc(briefOutput,filepath,1,0,0,briefDescription());
  7730.       ol+=briefOutput;
  7731.       ol.writeString(" \n");
  7732. + #ifdef RSA_EXTENSIONS
  7733. +     if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
  7734. +     {
  7735. + #endif //RSA_EXTENSIONS
  7736.       ol.disableAllBut(OutputGenerator::Html);
  7737.       ol.startTextLink(0,"_details");
  7738.       parseText(ol,theTranslator->trMore());
  7739.       ol.endTextLink();
  7740.       ol.enableAll();
  7741. + #ifdef RSA_EXTENSIONS
  7742. +     }
  7743. + #endif //RSA_EXTENSIONS
  7744.       ol.disable(OutputGenerator::Man);
  7745.       ol.newParagraph();
  7746.       ol.enable(OutputGenerator::Man);
  7747.     }
  7748. + #ifdef RSA_EXTENSIONS
  7749. +   if (Config_getBool("DETAIL_SECTION_FIRST") == TRUE)
  7750. +   {
  7751. +     if (!documentation().isEmpty())
  7752. +     {
  7753. +       parseDoc(ol,filepath,1,0,0,documentation()+"\n");
  7754. +     }
  7755. +   }
  7756. + #endif //RSA_EXTENSIONS
  7757.     ol.writeSynopsis();
  7758.    
  7759.     if (Config_getBool("SHOW_INCLUDE_FILES"))
  7760. ***************
  7761. *** 334,339 ****
  7762. --- 356,365 ----
  7763.     //doc=doc.stripWhiteSpace();
  7764.     //int bl=brief.length();
  7765.     //int dl=doc.length();
  7766. + #ifdef RSA_EXTENSIONS
  7767. +   if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
  7768. +   {
  7769. + #endif //RSA_EXTENSIONS
  7770.     if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || 
  7771.         !documentation().isEmpty() 
  7772.         /* || startBodyLine!=-1 */
  7773. ***************
  7774. *** 382,387 ****
  7775. --- 408,416 ----
  7776.         }
  7777.       }
  7778.     }
  7779. + #ifdef RSA_EXTENSIONS
  7780. +   }
  7781. + #endif //RSA_EXTENSIONS
  7782.   
  7783.     docDefineMembers.writeDocumentation(ol,name(),this,
  7784.                               theTranslator->trDefineDocumentation());
  7785. ***************
  7786. *** 421,426 ****
  7787. --- 450,461 ----
  7788.   /*! Write a source listing of this file to the output */
  7789.   void FileDef::writeSource(OutputList &ol)
  7790.   {
  7791. + #ifdef RSA_EXTENSIONS
  7792. +   if (isHidden())
  7793. +   {
  7794. +       return;
  7795. +   }
  7796. + #endif //RSA_EXTENSIONS
  7797.     ol.disableAllBut(OutputGenerator::Html);
  7798.     startFile(ol,getSourceFileBase(),0,docname+" Source File");
  7799.     startTitle(ol,0);
  7800. ***************
  7801. *** 623,634 ****
  7802. --- 658,675 ----
  7803.   
  7804.   bool FileDef::generateSourceFile() const 
  7805.   { 
  7806. + #ifndef RSA_EXTENSIONS
  7807.     QCString extension = name().right(4);
  7808. + #endif //RSA_EXTENSIONS
  7809.     return !isReference() && 
  7810.            (Config_getBool("SOURCE_BROWSER") || 
  7811.              (Config_getBool("VERBATIM_HEADERS") && guessSection(name())==Entry::HEADER_SEC) 
  7812.            ) &&
  7813. + #ifdef RSA_EXTENSIONS
  7814. +          !isHidden();
  7815. + #else //RSA_EXTENSIONS
  7816.            extension!=".doc" && extension!=".txt" && extension!=".dox"; 
  7817. + #endif //RSA_EXTENSIONS
  7818.   }
  7819.   
  7820.   
  7821. ***************
  7822. *** 651,654 ****
  7823. --- 692,713 ----
  7824.     docFuncMembers.addListReferences(this);
  7825.     docVarMembers.addListReferences(this);
  7826.   }
  7827. + #ifdef RSA_EXTENSIONS
  7828. + bool FileDef::isHidden() const
  7829. + {
  7830. +   return isEntryHidden(name(), "TOC_INCLUDE_PATTERNS", 
  7831. +     "TOC_EXCLUDE_PATTERNS", TRUE);
  7832. + }
  7833. + bool FileDef::isLinkableInProject() const
  7834. + {
  7835. +   return hasDocumentation() && !isReference() && !isHidden();
  7836. + }
  7837. + bool FileDef::isLinkable() const
  7838. + {
  7839. +   return (isLinkableInProject() || isReference()) && !isHidden();
  7840. + }
  7841. + #endif // RSA_EXTENSIONS
  7842.   
  7843. Index: src/filedef.h
  7844. ===================================================================
  7845. RCS file: /usr/local/cvs/tools/doxygen/src/filedef.h,v
  7846. retrieving revision 1.1.1.8
  7847. retrieving revision 1.7
  7848. diff -b -c -b -c -r1.1.1.8 -r1.7
  7849. *** src/filedef.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  7850. --- src/filedef.h    7 Feb 2002 23:29:21 -0000    1.7
  7851. ***************
  7852. *** 1,6 ****
  7853.   /******************************************************************************
  7854.    *
  7855. !  * 
  7856.    *
  7857.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7858.    *
  7859. --- 1,6 ----
  7860.   /******************************************************************************
  7861.    *
  7862. !  * $Id$
  7863.    *
  7864.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7865.    *
  7866. ***************
  7867. *** 108,113 ****
  7868. --- 108,117 ----
  7869.       /*! Returns the absolute path of this file. */ 
  7870.       QCString getPath() const { return path; }
  7871.   
  7872. + #ifdef RSA_EXTENSIONS
  7873. +     bool isLinkableInProject() const;
  7874. +     bool isLinkable() const;
  7875. + #else //RSA_EXTENSIONS
  7876.       bool isLinkableInProject() const
  7877.       {
  7878.         return hasDocumentation() && !isReference();
  7879. ***************
  7880. *** 117,122 ****
  7881. --- 121,127 ----
  7882.       {
  7883.         return isLinkableInProject() || isReference();
  7884.       }
  7885. + #endif //RSA_EXTENSIONS
  7886.   
  7887.       void writeDocumentation(OutputList &ol);
  7888.       void writeSource(OutputList &ol);
  7889. ***************
  7890. *** 194,199 ****
  7891. --- 199,210 ----
  7892.   
  7893.   
  7894.       PackageDef *package;
  7895. + #ifdef RSA_EXTENSIONS
  7896. +   public:
  7897. +     /*! TRUE if the class documentation is explicitly hidden */
  7898. +     bool isHidden() const;
  7899. + #endif
  7900.   };
  7901.   
  7902.   
  7903. Index: src/filename.cpp
  7904. ===================================================================
  7905. RCS file: /usr/local/cvs/tools/doxygen/src/filename.cpp,v
  7906. retrieving revision 1.1.1.8
  7907. retrieving revision 1.4
  7908. diff -b -c -b -c -r1.1.1.8 -r1.4
  7909. *** src/filename.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  7910. --- src/filename.cpp    7 Feb 2002 23:29:21 -0000    1.4
  7911. ***************
  7912. *** 1,6 ****
  7913.   /******************************************************************************
  7914.    *
  7915. !  * 
  7916.    *
  7917.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7918.    *
  7919. --- 1,6 ----
  7920.   /******************************************************************************
  7921.    *
  7922. !  * $Id$
  7923.    *
  7924.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7925.    *
  7926. Index: src/filename.h
  7927. ===================================================================
  7928. RCS file: /usr/local/cvs/tools/doxygen/src/filename.h,v
  7929. retrieving revision 1.1.1.8
  7930. retrieving revision 1.4
  7931. diff -b -c -b -c -r1.1.1.8 -r1.4
  7932. *** src/filename.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  7933. --- src/filename.h    7 Feb 2002 23:29:21 -0000    1.4
  7934. ***************
  7935. *** 1,6 ****
  7936.   /******************************************************************************
  7937.    *
  7938. !  * 
  7939.    *
  7940.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7941.    *
  7942. --- 1,6 ----
  7943.   /******************************************************************************
  7944.    *
  7945. !  * $Id$
  7946.    *
  7947.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7948.    *
  7949. Index: src/formula.cpp
  7950. ===================================================================
  7951. RCS file: /usr/local/cvs/tools/doxygen/src/formula.cpp,v
  7952. retrieving revision 1.1.1.8
  7953. retrieving revision 1.4
  7954. diff -b -c -b -c -r1.1.1.8 -r1.4
  7955. *** src/formula.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  7956. --- src/formula.cpp    7 Feb 2002 23:29:21 -0000    1.4
  7957. ***************
  7958. *** 1,6 ****
  7959.   /******************************************************************************
  7960.    *
  7961. !  * 
  7962.    *
  7963.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7964.    *
  7965. --- 1,6 ----
  7966.   /******************************************************************************
  7967.    *
  7968. !  * $Id$
  7969.    *
  7970.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7971.    *
  7972. Index: src/formula.h
  7973. ===================================================================
  7974. RCS file: /usr/local/cvs/tools/doxygen/src/formula.h,v
  7975. retrieving revision 1.1.1.8
  7976. retrieving revision 1.4
  7977. diff -b -c -b -c -r1.1.1.8 -r1.4
  7978. *** src/formula.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  7979. --- src/formula.h    7 Feb 2002 23:29:21 -0000    1.4
  7980. ***************
  7981. *** 1,6 ****
  7982.   /******************************************************************************
  7983.    *
  7984. !  * 
  7985.    *
  7986.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7987.    *
  7988. --- 1,6 ----
  7989.   /******************************************************************************
  7990.    *
  7991. !  * $Id$
  7992.    *
  7993.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  7994.    *
  7995. Index: src/gifenc.cpp
  7996. ===================================================================
  7997. RCS file: /usr/local/cvs/tools/doxygen/src/gifenc.cpp,v
  7998. retrieving revision 1.1.1.8
  7999. retrieving revision 1.4
  8000. diff -b -c -b -c -r1.1.1.8 -r1.4
  8001. *** src/gifenc.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8002. --- src/gifenc.cpp    7 Feb 2002 23:29:21 -0000    1.4
  8003. ***************
  8004. *** 1,6 ****
  8005.   /******************************************************************************
  8006.    *
  8007. !  * 
  8008.    *
  8009.    *
  8010.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8011. --- 1,6 ----
  8012.   /******************************************************************************
  8013.    *
  8014. !  * $Id$
  8015.    *
  8016.    *
  8017.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8018. Index: src/gifenc.h
  8019. ===================================================================
  8020. RCS file: /usr/local/cvs/tools/doxygen/src/gifenc.h,v
  8021. retrieving revision 1.1.1.8
  8022. retrieving revision 1.4
  8023. diff -b -c -b -c -r1.1.1.8 -r1.4
  8024. *** src/gifenc.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8025. --- src/gifenc.h    7 Feb 2002 23:29:21 -0000    1.4
  8026. ***************
  8027. *** 1,6 ****
  8028.   /******************************************************************************
  8029.    *
  8030. !  * 
  8031.    *
  8032.    *
  8033.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8034. --- 1,6 ----
  8035.   /******************************************************************************
  8036.    *
  8037. !  * $Id$
  8038.    *
  8039.    *
  8040.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8041. Index: src/groupdef.cpp
  8042. ===================================================================
  8043. RCS file: /usr/local/cvs/tools/doxygen/src/groupdef.cpp,v
  8044. retrieving revision 1.1.1.8
  8045. retrieving revision 1.10
  8046. diff -b -c -b -c -r1.1.1.8 -r1.10
  8047. *** src/groupdef.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8048. --- src/groupdef.cpp    8 Feb 2002 06:10:04 -0000    1.10
  8049. ***************
  8050. *** 1,6 ****
  8051.   /******************************************************************************
  8052.    *
  8053. !  * 
  8054.    *
  8055.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8056.    *
  8057. --- 1,6 ----
  8058.   /******************************************************************************
  8059.    *
  8060. !  * $Id$
  8061.    *
  8062.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8063.    *
  8064. ***************
  8065. *** 32,37 ****
  8066. --- 32,56 ----
  8067.   #include "doxygen.h"
  8068.   #include "page.h"
  8069.   
  8070. + #ifdef RSA_EXTENSIONS
  8071. + bool GroupDef::isHidden() const
  8072. + {
  8073. +   return isEntryHidden(name(), "GROUP_INCLUDE_PATTERNS", 
  8074. +     "GROUP_EXCLUDE_PATTERNS", FALSE);
  8075. + }
  8076. + bool GroupDef::isLinkableInProject() const
  8077. + {
  8078. +   return !isHidden() && !isReference();
  8079. + }
  8080. + bool GroupDef::isLinkable() const
  8081. + {
  8082. +   return !isHidden();
  8083. + }
  8084. + #endif //RSA_EXTENSIONS
  8085.   GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t) : 
  8086.      Definition(df,dl,na)
  8087.   {
  8088. ***************
  8089. *** 349,354 ****
  8090. --- 368,381 ----
  8091.   
  8092.   void GroupDef::writeDocumentation(OutputList &ol)
  8093.   {
  8094. + #ifdef RSA_EXTENSIONS
  8095. +   // don't generate hidden group pages
  8096. +   if (isHidden())
  8097. +   {
  8098. +       return;
  8099. +   }
  8100. + #endif
  8101.     ol.pushGeneratorState();
  8102.     //ol.disable(OutputGenerator::Man);
  8103.     startFile(ol,getOutputFileBase(),name(),title);
  8104. ***************
  8105. *** 364,369 ****
  8106. --- 391,400 ----
  8107.       parseDoc(briefOutput,m_defFileName,m_defLine,name(),0,briefDescription());
  8108.       ol+=briefOutput;
  8109.       ol.writeString(" \n");
  8110. + #ifdef RSA_EXTENSIONS
  8111. +     if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
  8112. +     {
  8113. + #endif //RSA_EXTENSIONS
  8114.       ol.pushGeneratorState();
  8115.       ol.disable(OutputGenerator::Latex);
  8116.       ol.disable(OutputGenerator::RTF);
  8117. ***************
  8118. *** 372,377 ****
  8119. --- 403,411 ----
  8120.       ol.endTextLink();
  8121.       //ol.enable(OutputGenerator::Latex);
  8122.       ol.popGeneratorState();
  8123. + #ifdef RSA_EXTENSIONS
  8124. +     }
  8125. + #endif //RSA_EXTENSIONS
  8126.     }
  8127.   
  8128.     if (!Config_getString("GENERATE_TAGFILE").isEmpty()) 
  8129. ***************
  8130. *** 382,387 ****
  8131. --- 416,431 ----
  8132.       Doxygen::tagFile << "    <filename>" << convertToXML(getOutputFileBase()) << ".html</filename>" << endl;
  8133.     }
  8134.     
  8135. + #ifdef RSA_EXTENSIONS
  8136. +   if (Config_getBool("DETAIL_SECTION_FIRST") == TRUE)
  8137. +   {
  8138. +     if (!documentation().isEmpty())
  8139. +     {
  8140. +       parseDoc(ol,m_defFileName,m_defLine,name(),0,documentation()+"\n");
  8141. +     }
  8142. +   }
  8143. + #endif //RSA_EXTENSIONS
  8144.     ol.startMemberSections();
  8145.   
  8146.     // write list of files
  8147. ***************
  8148. *** 501,506 ****
  8149. --- 545,554 ----
  8150.     ol.endMemberSections();
  8151.   
  8152.   
  8153. + #ifdef RSA_EXTENSIONS
  8154. +   if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
  8155. +   {
  8156. + #endif //RSA_EXTENSIONS
  8157.     if (!briefDescription().isEmpty() || !documentation().isEmpty())
  8158.     {
  8159.       
  8160. ***************
  8161. *** 530,535 ****
  8162. --- 578,586 ----
  8163.         parseDoc(ol,m_defFileName,m_defLine,name(),0,documentation()+"\n");
  8164.       }
  8165.     }
  8166. + #ifdef RSA_EXTENSIONS
  8167. +   }
  8168. + #endif
  8169.     PageInfo *pi=0;
  8170.     PageSDict::Iterator pdi(*pageDict);
  8171.     for (pdi.toFirst();(pi=pdi.current());++pdi)
  8172. Index: src/groupdef.h
  8173. ===================================================================
  8174. RCS file: /usr/local/cvs/tools/doxygen/src/groupdef.h,v
  8175. retrieving revision 1.1.1.8
  8176. retrieving revision 1.7
  8177. diff -b -c -b -c -r1.1.1.8 -r1.7
  8178. *** src/groupdef.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8179. --- src/groupdef.h    7 Feb 2002 23:29:21 -0000    1.7
  8180. ***************
  8181. *** 1,6 ****
  8182.   /******************************************************************************
  8183.    *
  8184. !  * 
  8185.    *
  8186.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8187.    *
  8188. --- 1,6 ----
  8189.   /******************************************************************************
  8190.    *
  8191. !  * $Id$
  8192.    *
  8193.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8194.    *
  8195. ***************
  8196. *** 60,65 ****
  8197. --- 60,69 ----
  8198.       bool containsGroup(const GroupDef *def);    // true if def is already a subgroup
  8199.       void writeDocumentation(OutputList &ol);
  8200.       int countMembers() const;
  8201. + #ifdef RSA_EXTENSIONS
  8202. +     bool isLinkableInProject() const;
  8203. +     bool isLinkable() const;
  8204. + #else //RSA_EXTENSIONS
  8205.       bool isLinkableInProject() const
  8206.       {
  8207.         return !isReference();
  8208. ***************
  8209. *** 68,73 ****
  8210. --- 72,78 ----
  8211.       {
  8212.         return TRUE;
  8213.       }
  8214. + #endif //RSA_EXTENSIONS
  8215.       bool isASubGroup() const;
  8216.       void computeAnchors();
  8217.   
  8218. ***************
  8219. *** 125,130 ****
  8220. --- 130,139 ----
  8221.       MemberList *allMemberList;
  8222.       MemberNameInfoSDict *allMemberNameInfoSDict;
  8223.       
  8224. + #ifdef RSA_EXTENSIONS
  8225. +     /*! TRUE if the class documentation is explicitely hidden */
  8226. +     bool isHidden() const;
  8227. + #endif
  8228.   
  8229.   };
  8230.   
  8231. Index: src/htmlgen.cpp
  8232. ===================================================================
  8233. RCS file: /usr/local/cvs/tools/doxygen/src/htmlgen.cpp,v
  8234. retrieving revision 1.1.1.8
  8235. retrieving revision 1.6
  8236. diff -b -c -b -c -r1.1.1.8 -r1.6
  8237. *** src/htmlgen.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8238. --- src/htmlgen.cpp    7 Feb 2002 23:29:21 -0000    1.6
  8239. ***************
  8240. *** 1,6 ****
  8241.   /******************************************************************************
  8242.    *
  8243. !  * 
  8244.    *
  8245.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8246.    *
  8247. --- 1,6 ----
  8248.   /******************************************************************************
  8249.    *
  8250. !  * $Id$
  8251.    *
  8252.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8253.    *
  8254. ***************
  8255. *** 719,727 ****
  8256. --- 719,733 ----
  8257.       t << "<tr>";
  8258.       switch(annoType)
  8259.       {
  8260. + #ifdef RSA_EXTENSIONS
  8261. +       case 0:  t << "<td nowrap align=right valign=baseline>"; break; 
  8262. +       case 1:  t << "<td nowrap>"; break;
  8263. +       default: t << "<td nowrap valign=baseline>"; break;  
  8264. + #else /* !RSA_EXTENSIONS */
  8265.         case 0:  t << "<td nowrap align=right valign=top>"; break; 
  8266.         case 1:  t << "<td nowrap>"; break;
  8267.         default: t << "<td nowrap valign=top>"; break;  
  8268. + #endif /* RSA_EXTENSIONS */
  8269.       }
  8270.     }
  8271.     else
  8272. ***************
  8273. *** 746,752 ****
  8274. --- 752,762 ----
  8275.     DBG_HTML(t << "<!-- insertMemberAlign -->" << endl)
  8276.     if (Config_getBool("HTML_ALIGN_MEMBERS"))
  8277.     {
  8278. + #ifdef RSA_EXTENSIONS
  8279. +     t << " </td><td valign=baseline>";
  8280. + #else /* !RSA_EXTENSIONS */
  8281.       t << " </td><td valign=bottom>";
  8282. + #endif /* RSA_EXTENSIONS */
  8283.     }
  8284.   }
  8285.   
  8286. ***************
  8287. *** 757,767 ****
  8288. --- 767,788 ----
  8289.     {
  8290.       //t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>"
  8291.       //     "<td></td><td><font size=-1><em>"; 
  8292. + #ifdef RSA_EXTENSIONS
  8293. +     // No emphasis and no size reduction
  8294. +     t << "<tr><td> </td><td>";
  8295. + #else /* !RSA_EXTENSIONS */
  8296.       t << "<tr><td> </td><td><font size=-1><em>";  
  8297. + #endif /* RSA_EXTENSIONS */
  8298.     }
  8299.     else
  8300.     {
  8301. + #ifdef RSA_EXTENSIONS
  8302. +     // No emphasis and no size reduction
  8303. +     t << "<dl class=\"el\"><dd>";
  8304. + #else /* !RSA_EXTENSIONS */
  8305.       t << "<dl class=\"el\"><dd><font size=-1><em>"; 
  8306. + #endif /* RSA_EXTENSIONS */
  8307.     }
  8308.   }
  8309.   
  8310. ***************
  8311. *** 770,780 ****
  8312. --- 791,809 ----
  8313.     DBG_HTML(t << "<!-- endMemberDescription -->" << endl)
  8314.     if (Config_getBool("HTML_ALIGN_MEMBERS"))
  8315.     {
  8316. + #ifdef RSA_EXTENSIONS
  8317. +     t << "<br><br></td></tr>" << endl;
  8318. + #else /* !RSA_EXTENSIONS */
  8319.       t << "</em></font><br><br></td></tr>" << endl;
  8320. + #endif /* RSA_EXTENSIONS */
  8321.     }
  8322.     else
  8323.     {
  8324. + #ifdef RSA_EXTENSIONS
  8325. +     t << "<br><br></dl>";
  8326. + #else /* !RSA_EXTENSIONS */
  8327.       t << "<br><br></em></font></dl>"; 
  8328. + #endif /* RSA_EXTENSIONS */
  8329.     }
  8330.   }
  8331.   
  8332. ***************
  8333. *** 846,853 ****
  8334. --- 875,886 ----
  8335.   
  8336.   void HtmlGenerator::startIndexKey() 
  8337.   { 
  8338. + #ifdef RSA_EXTENSIONS
  8339. +   t << "  <tr bgcolor=\"#f0f0f0\"><td class=\"indexkey\" width=30%>";
  8340. + #else /* !RSA_EXTENSIONS */
  8341.     // inserted 'class = ...', 02 jan 2002, jh
  8342.     t << "  <tr><td class=\"indexkey\">"; 
  8343. + #endif //RSA_EXTENSIONS
  8344.   }
  8345.   
  8346.   void HtmlGenerator::endIndexKey()
  8347. ***************
  8348. *** 1048,1053 ****
  8349. --- 1081,1089 ----
  8350.   void HtmlGenerator::endParameterList()
  8351.   {
  8352.     DBG_HTML(t << "<!-- endParameterList -->" << endl;)
  8353. + #ifdef RSA_EXTENSIONS
  8354. +   docify(";");
  8355. + #endif /* RSA_EXTENSIONS */
  8356.     t << "</td>" << endl;
  8357.     t << "        </tr>" << endl;
  8358.   }
  8359. Index: src/htmlgen.h
  8360. ===================================================================
  8361. RCS file: /usr/local/cvs/tools/doxygen/src/htmlgen.h,v
  8362. retrieving revision 1.1.1.8
  8363. retrieving revision 1.6
  8364. diff -b -c -b -c -r1.1.1.8 -r1.6
  8365. *** src/htmlgen.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8366. --- src/htmlgen.h    7 Feb 2002 23:35:48 -0000    1.6
  8367. ***************
  8368. *** 1,6 ****
  8369.   /******************************************************************************
  8370.    *
  8371. !  * 
  8372.    *
  8373.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8374.    *
  8375. --- 1,6 ----
  8376.   /******************************************************************************
  8377.    *
  8378. !  * $Id$
  8379.    *
  8380.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8381.    *
  8382. ***************
  8383. *** 166,172 ****
  8384. --- 166,177 ----
  8385.       void startSuperscript()   { t << "<sup>"; }
  8386.       void endSuperscript()     { t << "</sup>"; }
  8387.       void startTable(bool,int) 
  8388. + #ifdef RSA_EXTENSIONS
  8389. +                               { t << "<table border=1 cellspacing=0 "
  8390. +                                 "cellpadding=3 Bordercolor=CCCCCC>"; }
  8391. + #else //RSA_EXTENSIONS
  8392.                                 { t << "<table border=1 cellspacing=3 cellpadding=3>"; }
  8393. + #endif //RSA_EXTENSIONS
  8394.       void endTable(bool hasCaption) 
  8395.                                 { if (!hasCaption) t << "</tr>"; 
  8396.                                   t << "</table>" << endl; 
  8397. ***************
  8398. *** 218,230 ****
  8399. --- 223,243 ----
  8400.       void endDotFile(bool);
  8401.       
  8402.       void startDescTable()
  8403. + #ifdef RSA_EXTENSIONS
  8404. +     { t << "<table border=0 cellspacing=2 cellpadding=5>" << endl; }
  8405. + #else //RSA_EXTENSIONS
  8406.       { t << "<table border=0 cellspacing=2 cellpadding=0>" << endl; }
  8407. + #endif //RSA_EXTENSIONS
  8408.       void endDescTable()
  8409.       { t << "</table>" << endl; }
  8410.       void startDescTableTitle()
  8411.       { t << "<tr><td valign=top><em>"; }
  8412.       void endDescTableTitle()
  8413. + #ifdef RSA_EXTENSIONS
  8414. +     { t << "</em></td>"; }
  8415. + #else //RSA_EXTENSIONS
  8416.       { t << "</em> </td>"; }
  8417. + #endif //RSA_EXTENSIONS
  8418.       void startDescTableData()
  8419.       { t << "<td>" << endl; }
  8420.       void endDescTableData()
  8421. Index: src/htmlhelp.cpp
  8422. ===================================================================
  8423. RCS file: /usr/local/cvs/tools/doxygen/src/htmlhelp.cpp,v
  8424. retrieving revision 1.1.1.8
  8425. retrieving revision 1.4
  8426. diff -b -c -b -c -r1.1.1.8 -r1.4
  8427. *** src/htmlhelp.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8428. --- src/htmlhelp.cpp    7 Feb 2002 23:29:21 -0000    1.4
  8429. ***************
  8430. *** 1,6 ****
  8431.   /******************************************************************************
  8432.    *
  8433. !  * 
  8434.    *
  8435.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8436.    *
  8437. --- 1,6 ----
  8438.   /******************************************************************************
  8439.    *
  8440. !  * $Id$
  8441.    *
  8442.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8443.    *
  8444. Index: src/htmlhelp.h
  8445. ===================================================================
  8446. RCS file: /usr/local/cvs/tools/doxygen/src/htmlhelp.h,v
  8447. retrieving revision 1.1.1.8
  8448. retrieving revision 1.4
  8449. diff -b -c -b -c -r1.1.1.8 -r1.4
  8450. *** src/htmlhelp.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8451. --- src/htmlhelp.h    7 Feb 2002 23:29:21 -0000    1.4
  8452. ***************
  8453. *** 1,6 ****
  8454.   /******************************************************************************
  8455.    *
  8456. !  * 
  8457.    *
  8458.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8459.    *
  8460. --- 1,6 ----
  8461.   /******************************************************************************
  8462.    *
  8463. !  * $Id$
  8464.    *
  8465.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8466.    *
  8467. Index: src/image.cpp
  8468. ===================================================================
  8469. RCS file: /usr/local/cvs/tools/doxygen/src/image.cpp,v
  8470. retrieving revision 1.1.1.8
  8471. retrieving revision 1.4
  8472. diff -b -c -b -c -r1.1.1.8 -r1.4
  8473. *** src/image.cpp    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8474. --- src/image.cpp    7 Feb 2002 23:29:21 -0000    1.4
  8475. ***************
  8476. *** 1,6 ****
  8477.   /******************************************************************************
  8478.    *
  8479. !  * 
  8480.    *
  8481.    *
  8482.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8483. --- 1,6 ----
  8484.   /******************************************************************************
  8485.    *
  8486. !  * $Id$
  8487.    *
  8488.    *
  8489.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8490. Index: src/image.h
  8491. ===================================================================
  8492. RCS file: /usr/local/cvs/tools/doxygen/src/image.h,v
  8493. retrieving revision 1.1.1.8
  8494. retrieving revision 1.4
  8495. diff -b -c -b -c -r1.1.1.8 -r1.4
  8496. *** src/image.h    7 Feb 2002 23:10:16 -0000    1.1.1.8
  8497. --- src/image.h    7 Feb 2002 23:29:21 -0000    1.4
  8498. ***************
  8499. *** 1,6 ****
  8500.   /******************************************************************************
  8501.    *
  8502. !  * 
  8503.    *
  8504.    *
  8505.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8506. --- 1,6 ----
  8507.   /******************************************************************************
  8508.    *
  8509. !  * $Id$
  8510.    *
  8511.    *
  8512.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8513. Index: src/index.cpp
  8514. ===================================================================
  8515. RCS file: /usr/local/cvs/tools/doxygen/src/index.cpp,v
  8516. retrieving revision 1.1.1.8
  8517. retrieving revision 1.17
  8518. diff -b -c -b -c -r1.1.1.8 -r1.17
  8519. *** src/index.cpp    7 Feb 2002 23:10:17 -0000    1.1.1.8
  8520. --- src/index.cpp    28 Feb 2002 10:11:54 -0000    1.17
  8521. ***************
  8522. *** 1,6 ****
  8523.   /******************************************************************************
  8524.    *
  8525. !  * 
  8526.    *
  8527.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8528.    *
  8529. --- 1,6 ----
  8530.   /******************************************************************************
  8531.    *
  8532. !  * $Id$
  8533.    *
  8534.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  8535.    *
  8536. ***************
  8537. *** 112,118 ****
  8538. --- 112,122 ----
  8539.   static bool g_fileIndexLetterUsed[256];
  8540.   static bool g_namespaceIndexLetterUsed[256];
  8541.   
  8542. + #ifdef RSA_EXTENSIONS
  8543. + const int maxItemsBeforeQuickIndex = 0;
  8544. + #else
  8545.   const int maxItemsBeforeQuickIndex = 50;
  8546. + #endif
  8547.   
  8548.   //----------------------------------------------------------------------------
  8549.   
  8550. ***************
  8551. *** 371,376 ****
  8552. --- 375,393 ----
  8553.     for ( ; bcli.current() ; ++bcli)
  8554.     {
  8555.       ClassDef *cd=bcli.current()->classDef;
  8556. + #ifdef RSA_EXTENSIONS
  8557. +     bool hasTypedef = FALSE;
  8558. +     MemberDef *td;
  8559. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  8560. +         Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  8561. +     {
  8562. +       td = cd->findTypedef();
  8563. +       if (td != 0)
  8564. +       {
  8565. +         hasTypedef = TRUE;
  8566. +       }
  8567. +     }
  8568. + #endif //RSA_EXTENSIONS
  8569.       if (cd->isVisibleInHierarchy() && hasVisibleRoot(cd->baseClasses()))
  8570.       {
  8571.         if (!started)
  8572. ***************
  8573. *** 394,408 ****
  8574. --- 411,463 ----
  8575.           }
  8576.           if (hasHtmlHelp)
  8577.           {
  8578. + #ifdef RSA_EXTENSIONS
  8579. +           if (hasTypedef)
  8580. +           {
  8581. +             htmlHelp->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
  8582. +           }
  8583. +           else
  8584. +           {
  8585. + #endif //RSA_EXTENSIONS
  8586.             htmlHelp->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
  8587. + #ifdef RSA_EXTENSIONS
  8588. +           }
  8589. + #endif //RSA_EXTENSIONS
  8590.           }
  8591.           if (hasFtvHelp)
  8592.           {
  8593. + #ifdef RSA_EXTENSIONS
  8594. +           if (hasTypedef)
  8595. +           {
  8596. +             ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
  8597. +           }
  8598. +           else
  8599. +           {
  8600. + #endif //RSA_EXTENSIONS
  8601.             ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
  8602. + #ifdef RSA_EXTENSIONS
  8603. +           }
  8604. + #endif //RSA_EXTENSIONS
  8605.           }
  8606.         }
  8607.         else
  8608.         {
  8609. + #ifdef RSA_EXTENSIONS
  8610. +         if (hasTypedef)
  8611. +         {
  8612. +           ol.writeIndexItem(0,0,td->name());
  8613. +           if (hasHtmlHelp)
  8614. +           {
  8615. +             htmlHelp->addContentsItem(hasChildren,td->name(),0);
  8616. +           }
  8617. +           if (hasFtvHelp)
  8618. +           {
  8619. +             ftvHelp->addContentsItem(hasChildren,0,0,0,td->name());
  8620. +           }
  8621. +         }
  8622. +         else
  8623. +         {
  8624. + #endif //RSA_EXTENSIONS
  8625.           ol.writeIndexItem(0,0,cd->name());
  8626.           if (hasHtmlHelp)
  8627.           {
  8628. ***************
  8629. *** 412,417 ****
  8630. --- 467,475 ----
  8631.           {
  8632.             ftvHelp->addContentsItem(hasChildren,0,0,0,cd->name());
  8633.           }
  8634. + #ifdef RSA_EXTENSIONS
  8635. +         }
  8636. + #endif //RSA_EXTENSIONS
  8637.         }
  8638.         if (hasChildren)
  8639.         {
  8640. ***************
  8641. *** 454,459 ****
  8642. --- 512,530 ----
  8643.     for ( ; cli.current() ; ++cli)
  8644.     {
  8645.       ClassDef *cd=cli.current()->classDef;
  8646. + #ifdef RSA_EXTENSIONS
  8647. +     bool hasTypedef = FALSE;
  8648. +     MemberDef *td;
  8649. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  8650. +         Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  8651. +     {
  8652. +       td = cd->findTypedef();
  8653. +       if (td != 0)
  8654. +       {
  8655. +         hasTypedef = TRUE;
  8656. +       }
  8657. +     }
  8658. + #endif //RSA_EXTENSIONS
  8659.       if (cd->isVisibleInHierarchy() && !cd->visited)
  8660.       {
  8661.         if (!started)
  8662. ***************
  8663. *** 467,477 ****
  8664. --- 538,570 ----
  8665.         {
  8666.           if (hasHtmlHelp)
  8667.           {
  8668. + #ifdef RSA_EXTENSIONS
  8669. +             if (hasTypedef == TRUE)
  8670. +             {
  8671. +               htmlHelp->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
  8672. +             }
  8673. +             else
  8674. +             {
  8675. + #endif
  8676.               htmlHelp->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
  8677. + #ifdef RSA_EXTENSIONS
  8678. +             }
  8679. + #endif
  8680.           }
  8681.           if (hasFtvHelp)
  8682.           {
  8683. + #ifdef RSA_EXTENSIONS
  8684. +             if (hasTypedef == TRUE)
  8685. +             {
  8686. +               ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
  8687. +             }
  8688. +             else
  8689. +             {
  8690. + #endif
  8691.               ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
  8692. + #ifdef RSA_EXTENSIONS
  8693. +             }
  8694. + #endif
  8695.           }
  8696.         }
  8697.         if (hasChildren)
  8698. ***************
  8699. *** 493,498 ****
  8700. --- 586,604 ----
  8701.   
  8702.   void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &started,int level)
  8703.   {
  8704. + #ifdef RSA_EXTENSIONS
  8705. +     bool hasTypedef = FALSE;
  8706. +     MemberDef *td;
  8707. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  8708. +         Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  8709. +     {
  8710. +       td = cd->findTypedef();
  8711. +       if (td != 0)
  8712. +       {
  8713. +         hasTypedef = TRUE;
  8714. +       }
  8715. +     }
  8716. + #endif //RSA_EXTENSIONS
  8717.       if (cd->isVisibleInHierarchy() && !cd->visited)
  8718.       {
  8719.         if (!started)
  8720. ***************
  8721. *** 504,514 ****
  8722. --- 610,642 ----
  8723.         {
  8724.           if (hasHtmlHelp)
  8725.           {
  8726. + #ifdef RSA_EXTENSIONS
  8727. +           if (hasTypedef == TRUE)
  8728. +           {
  8729. +             HtmlHelp::getInstance()->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
  8730. +           }
  8731. +           else
  8732. +           {
  8733. + #endif
  8734.             HtmlHelp::getInstance()->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
  8735. + #ifdef RSA_EXTENSIONS
  8736. +             }
  8737. + #endif
  8738.           }
  8739.           if (hasFtvHelp)
  8740.           {
  8741. + #ifdef RSA_EXTENSIONS
  8742. +           if (hasTypedef == TRUE)
  8743. +           {
  8744. +             FTVHelp::getInstance()->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
  8745. +           }
  8746. +           else
  8747. +           {
  8748. + #endif
  8749.             FTVHelp::getInstance()->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
  8750. + #ifdef RSA_EXTENSIONS
  8751. +             }
  8752. + #endif
  8753.           }
  8754.         }
  8755.         if (hasChildren)
  8756. ***************
  8757. *** 567,572 ****
  8758. --- 695,713 ----
  8759.     for (;cli.current(); ++cli)
  8760.     {
  8761.       ClassDef *cd=cli.current();
  8762. + #ifdef RSA_EXTENSIONS
  8763. +     bool hasTypedef = FALSE;
  8764. +     MemberDef *td;
  8765. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  8766. +         Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  8767. +     {
  8768. +       td = cd->findTypedef();
  8769. +       if (td != 0)
  8770. +       {
  8771. +         hasTypedef = TRUE;
  8772. +       }
  8773. +     }
  8774. + #endif //RSA_EXTENSIONS
  8775.       //printf("class %s hasVisibleRoot=%d isVisibleInHierarchy=%d\n",
  8776.       //             cd->name().data(),
  8777.       //              hasVisibleRoot(cd->baseClasses()),
  8778. ***************
  8779. *** 586,594 ****
  8780. --- 727,746 ----
  8781.           bool hasChildren = !cd->visited && cd->subClasses()->count()>0; 
  8782.           if (cd->isLinkable())
  8783.           {
  8784. + #ifdef RSA_EXTENSIONS
  8785. +           if (hasTypedef == TRUE)
  8786. +           {
  8787. +             ol.writeIndexItem(cd->getReference(),cd->getOutputFileBase(),td->name());
  8788. +           }
  8789. +           else
  8790. +           {
  8791. + #endif
  8792.             //printf("Writing class %s isLinkable()=%d isLinkableInProject()=%d cd->templateMaster()=%p\n",
  8793.             //    cd->displayName().data(),cd->isLinkable(),cd->isLinkableInProject(),cd->templateMaster());
  8794.             ol.writeIndexItem(cd->getReference(),cd->getOutputFileBase(),cd->displayName());
  8795. + #ifdef RSA_EXTENSIONS
  8796. +           }
  8797. + #endif
  8798.             if (cd->isReference()) 
  8799.             {
  8800.               ol.startTypewriter(); 
  8801. ***************
  8802. *** 597,619 ****
  8803. --- 749,826 ----
  8804.             }
  8805.             if (hasHtmlHelp)
  8806.             {
  8807. + #ifdef RSA_EXTENSIONS
  8808. +             if (hasTypedef == TRUE)
  8809. +             {
  8810. +               htmlHelp->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
  8811. +             }
  8812. +             else
  8813. +             {
  8814. + #endif
  8815.               htmlHelp->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
  8816. + #ifdef RSA_EXTENSIONS
  8817. +             }
  8818. + #endif
  8819.             }
  8820.             if (hasFtvHelp)
  8821.             {
  8822. + #ifdef RSA_EXTENSIONS
  8823. +             if (hasTypedef == TRUE)
  8824. +             {
  8825. +               ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
  8826. +             }
  8827. +             else
  8828. +             {
  8829. + #endif
  8830.               ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
  8831. + #ifdef RSA_EXTENSIONS
  8832. +             }
  8833. + #endif
  8834.             }
  8835.           }
  8836.           else
  8837.           {
  8838. + #ifdef RSA_EXTENSIONS
  8839. +           if (hasTypedef == TRUE)
  8840. +           {
  8841. +             ol.writeIndexItem(0,0,td->name());
  8842. +           }
  8843. +           else
  8844. +           {
  8845. + #endif
  8846.             ol.writeIndexItem(0,0,cd->displayName());
  8847. + #ifdef RSA_EXTENSIONS
  8848. +           }
  8849. + #endif
  8850.             if (hasHtmlHelp)
  8851.             {
  8852. + #ifdef RSA_EXTENSIONS
  8853. +             if (hasTypedef == TRUE)
  8854. +             {
  8855. +             htmlHelp->addContentsItem(hasChildren,td->name(),0);
  8856. +             }
  8857. +             else
  8858. +             {
  8859. + #endif
  8860.               htmlHelp->addContentsItem(hasChildren,cd->name(),0);
  8861. + #ifdef RSA_EXTENSIONS
  8862. +             }
  8863. + #endif
  8864.             }
  8865.             if (hasFtvHelp)
  8866.             {
  8867. + #ifdef RSA_EXTENSIONS
  8868. +             if (hasTypedef == TRUE)
  8869. +             {
  8870. +             ftvHelp->addContentsItem(hasChildren,0,0,0,td->name());
  8871. +             }
  8872. +             else
  8873. +             {
  8874. + #endif
  8875.               ftvHelp->addContentsItem(hasChildren,0,0,0,cd->name());
  8876. + #ifdef RSA_EXTENSIONS
  8877. +             }
  8878. + #endif
  8879.             }
  8880.           }
  8881.           if (hasChildren) 
  8882. ***************
  8883. *** 781,788 ****
  8884. --- 988,1000 ----
  8885.       {
  8886.         bool doc = fd->isLinkableInProject();
  8887.         bool src = fd->generateSourceFile();
  8888. + #ifdef RSA_EXTENSIONS
  8889. +       bool nameOk = !isEntryHidden(fd->name(), "TOC_INCLUDE_PATTERNS",
  8890. +         "TOC_EXCLUDE_PATTERNS", TRUE);
  8891. + #else // RSA_EXTENSIONS
  8892.         bool nameOk = fd->name().right(4)!=".doc" && 
  8893.                       fd->name().right(4)!=".txt";
  8894. + #endif // RSA_EXTENSIONS
  8895.         if (nameOk)
  8896.         {
  8897.           if (doc || src)
  8898. ***************
  8899. *** 823,836 ****
  8900. --- 1035,1072 ----
  8901.     if (hasHtmlHelp)
  8902.     {
  8903.       htmlHelp = HtmlHelp::getInstance();
  8904. + #ifdef RSA_EXTENSIONS
  8905. +     if (Doxygen::tocStyle == Doxygen::Original ||
  8906. +         Doxygen::tocStyle == Doxygen::ExtraCrispy)
  8907. +     {
  8908. + #endif //RSA_EXTENSIONS
  8909.       htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"files"); 
  8910.       htmlHelp->incContentsDepth();
  8911. + #ifdef RSA_EXTENSIONS
  8912. +     }
  8913. +     else
  8914. +     {
  8915. +       htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"files"); 
  8916. +     }
  8917. + #endif //RSA_EXTENSIONS
  8918.     }
  8919.     if (hasFtvHelp)
  8920.     {
  8921.       ftvHelp = FTVHelp::getInstance();
  8922. + #ifdef RSA_EXTENSIONS
  8923. +     if (Doxygen::tocStyle == Doxygen::Original ||
  8924. +         Doxygen::tocStyle == Doxygen::ExtraCrispy)
  8925. +     {
  8926. + #endif //RSA_EXTENSIONS
  8927.       ftvHelp->addContentsItem(TRUE,0,"files",0,ftvHelpTitle); 
  8928.       ftvHelp->incContentsDepth();
  8929. + #ifdef RSA_EXTENSIONS
  8930. +     }
  8931. +     else
  8932. +     {
  8933. +       ftvHelp->addContentsItem(FALSE,0,"files",0,ftvHelpTitle); 
  8934. +     }
  8935. + #endif //RSA_EXTENSIONS
  8936.     }
  8937.     //ol.newParagraph();
  8938.     parseText(ol,theTranslator->trFileListDescription(Config_getBool("EXTRACT_ALL")));
  8939. ***************
  8940. *** 890,897 ****
  8941. --- 1126,1138 ----
  8942.         //printf("Found filedef %s\n",fd->name().data());
  8943.         bool doc = fd->isLinkableInProject();
  8944.         bool src = fd->generateSourceFile();
  8945. + #ifdef RSA_EXTENSIONS
  8946. +       bool nameOk = !isEntryHidden(fd->name(), "TOC_INCLUDE_PATTERNS",
  8947. +         "TOC_EXCLUDE_PATTERNS", TRUE);
  8948. + #else // RSA_EXTENSIONS
  8949.         bool nameOk = fd->name().right(4)!=".doc" && 
  8950.                       fd->name().right(4)!=".txt";
  8951. + #endif //RSA_EXTENSIONS
  8952.         if (nameOk && (doc || src) && 
  8953.                 !fd->isReference())
  8954.         {
  8955. ***************
  8956. *** 937,942 ****
  8957. --- 1178,1188 ----
  8958.           if (doc)
  8959.           {
  8960.             ol.writeObjectLink(0,fd->getOutputFileBase(),0,fd->name());
  8961. + #ifdef RSA_EXTENSIONS
  8962. +           if (Doxygen::tocStyle == Doxygen::Original ||
  8963. +               Doxygen::tocStyle == Doxygen::ExtraCrispy)
  8964. +           {
  8965. + #endif //RSA_EXTENSIONS
  8966.             if (hasHtmlHelp)
  8967.             {
  8968.               htmlHelp->addContentsItem(FALSE,fullName,fd->getOutputFileBase());
  8969. ***************
  8970. *** 945,956 ****
  8971. --- 1191,1210 ----
  8972.             {
  8973.               ftvHelp->addContentsItem(FALSE,fd->getReference(),fd->getOutputFileBase(),0,fullName);
  8974.             }
  8975. + #ifdef RSA_EXTENSIONS
  8976. +           }
  8977. + #endif //RSA_EXTENSIONS
  8978.           }
  8979.           else
  8980.           {
  8981.             ol.startBold();
  8982.             ol.docify(fd->name());
  8983.             ol.endBold();
  8984. + #ifdef RSA_EXTENSIONS
  8985. +           if (Doxygen::tocStyle == Doxygen::Original ||
  8986. +               Doxygen::tocStyle == Doxygen::ExtraCrispy)
  8987. +           {
  8988. + #endif //RSA_EXTENSIONS
  8989.             if (hasHtmlHelp)
  8990.             {
  8991.               htmlHelp->addContentsItem(FALSE,fd->name(),0);
  8992. ***************
  8993. *** 959,970 ****
  8994. --- 1213,1230 ----
  8995.             {
  8996.               ftvHelp->addContentsItem(FALSE,0,0,0,fd->name());
  8997.             }
  8998. + #ifdef RSA_EXTENSIONS
  8999. +           }
  9000. + #endif //RSA_EXTENSIONS
  9001.           }
  9002.           if (src)
  9003.           {
  9004.             ol.pushGeneratorState();
  9005.             ol.disableAllBut(OutputGenerator::Html);
  9006.             ol.docify(" ");
  9007. + #ifdef RSA_EXTENSIONS
  9008. +       ol.writeNonBreakableSpace(1);
  9009. + #endif /* RSA_EXTENSIONS */
  9010.             ol.startTextLink(fd->includeName(),0);
  9011.             ol.docify("[");
  9012.             parseText(ol,theTranslator->trCode());
  9013. ***************
  9014. *** 1000,1005 ****
  9015. --- 1260,1270 ----
  9016.       }
  9017.     }
  9018.     ol.endIndexList();
  9019. + #ifdef RSA_EXTENSIONS
  9020. +   if (Doxygen::tocStyle == Doxygen::Original ||
  9021. +       Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9022. +   {
  9023. + #endif //RSA_EXTENSIONS
  9024.     if (hasHtmlHelp)
  9025.     {
  9026.       htmlHelp->decContentsDepth();
  9027. ***************
  9028. *** 1008,1013 ****
  9029. --- 1273,1281 ----
  9030.     {
  9031.       ftvHelp->decContentsDepth();
  9032.     }
  9033. + #ifdef RSA_EXTENSIONS
  9034. +   }
  9035. + #endif //RSA_EXTENSIONS
  9036.     endFile(ol);
  9037.     ol.popGeneratorState();
  9038.   }
  9039. ***************
  9040. *** 1149,1181 ****
  9041. --- 1417,1517 ----
  9042.     ClassDef *cd;
  9043.     for (;(cd=cli.current());++cli)
  9044.     {
  9045. + #ifdef RSA_EXTENSIONS
  9046. +     bool hasTypedef = FALSE;
  9047. +     MemberDef *td;
  9048. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  9049. +         Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  9050. +     {
  9051. +       td = cd->findTypedef();
  9052. +       if (td != 0)
  9053. +       {
  9054. +         hasTypedef = TRUE;
  9055. +       }
  9056. +     }
  9057. + #endif //RSA_EXTENSIONS
  9058.       if (cd->isLinkableInProject() && cd->templateMaster()==0)
  9059.       {
  9060.         QCString type=cd->compoundTypeString();
  9061.         //ol.writeStartAnnoItem(type,cd->getOutputFileBase(),0,cd->displayName());
  9062.         ol.startIndexKey();
  9063. + #ifdef RSA_EXTENSIONS
  9064. +       if (hasTypedef == TRUE)
  9065. +       {
  9066. +         ol.writeObjectLink(0,cd->getOutputFileBase(),0,td->name());
  9067. +       }
  9068. +       else
  9069. +       {
  9070. + #endif
  9071.         ol.writeObjectLink(0,cd->getOutputFileBase(),0,cd->displayName());
  9072. + #ifdef RSA_EXTENSIONS
  9073. +       }
  9074. + #endif
  9075.         ol.endIndexKey();
  9076.         bool hasBrief = !cd->briefDescription().isEmpty();
  9077.         ol.startIndexValue(hasBrief);
  9078.         if (hasBrief)
  9079.         {
  9080. + #ifdef RSA_EXTENSIONS
  9081. +         if (hasTypedef == TRUE)
  9082. +         {
  9083. +           parseDoc(ol,
  9084. +                    cd->getDefFileName(),cd->getDefLine(),
  9085. +                    td->name(),0,
  9086. +                    abbreviate(cd->briefDescription(),td->name()));
  9087. +         }
  9088. +         else
  9089. +         {
  9090. + #endif
  9091.           //ol.docify(" (");
  9092.           parseDoc(ol,
  9093.                    cd->getDefFileName(),cd->getDefLine(),
  9094.                    cd->name(),0,
  9095.                    abbreviate(cd->briefDescription(),cd->name()));
  9096.           //ol.docify(")");
  9097. + #ifdef RSA_EXTENSIONS
  9098. +         }
  9099. + #endif
  9100.         }
  9101.         ol.endIndexValue(cd->getOutputFileBase(),hasBrief);
  9102.         //ol.writeEndAnnoItem(cd->getOutputFileBase());
  9103.         if (hasHtmlHelp)
  9104.         {
  9105. + #ifdef RSA_EXTENSIONS
  9106. +         if (Doxygen::tocStyle == Doxygen::Original ||
  9107. +             Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9108. +         {
  9109. +           if (hasTypedef == TRUE)
  9110. +           {
  9111. +             HtmlHelp::getInstance()->addContentsItem(FALSE,td->name(),cd->getOutputFileBase());
  9112. +           }
  9113. +           else
  9114. +           {
  9115. + #endif
  9116.           HtmlHelp::getInstance()->addContentsItem(FALSE,cd->name(),cd->getOutputFileBase());
  9117. + #ifdef RSA_EXTENSIONS
  9118. +           }
  9119. +         }
  9120. + #endif
  9121.         }
  9122.         if (hasFtvHelp)
  9123.         {
  9124. + #ifdef RSA_EXTENSIONS
  9125. +         if (Doxygen::tocStyle == Doxygen::Original ||
  9126. +             Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9127. +         {
  9128. +           if (hasTypedef == TRUE)
  9129. +           {
  9130. +             FTVHelp::getInstance()->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,td->name());
  9131. +           }
  9132. +           else
  9133. +           {
  9134. + #endif
  9135.           FTVHelp::getInstance()->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
  9136. + #ifdef RSA_EXTENSIONS
  9137. +           }
  9138. +         }
  9139. + #endif
  9140.         }
  9141.       }
  9142.     }
  9143. ***************
  9144. *** 1237,1254 ****
  9145. --- 1573,1621 ----
  9146.     // first count the number of headers
  9147.     ClassSDict::Iterator cli(Doxygen::classSDict);
  9148.     ClassDef *cd;
  9149. + #ifdef RSA_EXTENSIONS
  9150. +   bool hasTypedef = FALSE;
  9151. +   MemberDef *td;
  9152. + #endif //RSA_EXTENSIONS
  9153.     char startLetter=0;
  9154.     int headerItems=0;
  9155.     for (;(cd=cli.current());++cli)
  9156.     {
  9157. + #ifdef RSA_EXTENSIONS
  9158. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  9159. +         Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  9160. +     {
  9161. +       td = cd->findTypedef();
  9162. +       if (td != 0)
  9163. +       {
  9164. +         hasTypedef = TRUE;
  9165. +       }
  9166. +     }
  9167. + #endif //RSA_EXTENSIONS
  9168.       if (cd->isLinkableInProject() && cd->templateMaster()==0)
  9169.       {
  9170. + #ifdef RSA_EXTENSIONS
  9171. +       if (hasTypedef == TRUE)
  9172. +       {
  9173. +         int index = getPrefixIndex(td->name());
  9174. +         if (toupper(td->name().at(index))!=startLetter) // new begin letter => new header
  9175. +         {
  9176. +           startLetter=toupper(td->name().at(index));
  9177. +           headerItems++;
  9178. +         }
  9179. +       }
  9180. +       else
  9181. +       {
  9182. + #endif
  9183.         int index = getPrefixIndex(cd->className());
  9184.         if (toupper(cd->className().at(index))!=startLetter) // new begin letter => new header
  9185.         {
  9186.           startLetter=toupper(cd->className().at(index));
  9187.           headerItems++;
  9188.         }
  9189. + #ifdef RSA_EXTENSIONS
  9190. +       }
  9191. + #endif
  9192.       }
  9193.     }
  9194.   
  9195. ***************
  9196. *** 1276,1281 ****
  9197. --- 1643,1672 ----
  9198.     {
  9199.       if (cd->isLinkableInProject() && cd->templateMaster()==0)
  9200.       {
  9201. + #ifdef RSA_EXTENSIONS
  9202. +       if (hasTypedef == TRUE)
  9203. +       {
  9204. +         int index = 1;
  9205. +         if (toupper(td->name().at(index))!=startLetter)
  9206. +         {
  9207. +           // insert a new header using a dummy class pointer.
  9208. +           startLetter=toupper(td->name().at(index));
  9209. +           colList[col].append((ClassDef *)8); // insert dummy for the header
  9210. +           row++;
  9211. +           if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1)) 
  9212. +           { 
  9213. +             // if the header is the last item in the row, we add an extra
  9214. +             // row to make it easier to find the text of the header (this
  9215. +             // is then contained in the next cell)
  9216. +             colList[col].append(cd); 
  9217. +             col++; 
  9218. +             row=0; 
  9219. +           }
  9220. +         }
  9221. +       }
  9222. +       else
  9223. +       {
  9224. + #endif
  9225.         int index = getPrefixIndex(cd->className());
  9226.         if (toupper(cd->className().at(index))!=startLetter)
  9227.         {
  9228. ***************
  9229. *** 1293,1298 ****
  9230. --- 1684,1692 ----
  9231.             row=0; 
  9232.           }
  9233.         }
  9234. + #ifdef RSA_EXTENSIONS
  9235. +       }
  9236. + #endif
  9237.         // add the class definition to the correct column list
  9238.         colList[col].append(cd);
  9239.         row++;
  9240. ***************
  9241. *** 1324,1331 ****
  9242. --- 1718,1737 ----
  9243.           if (cd)
  9244.           {
  9245.             //printf("head ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>");
  9246. + #ifdef RSA_EXTENSIONS
  9247. +           if (hasTypedef == TRUE)
  9248. +           {
  9249. +             int index = 1;
  9250. +             startLetter=toupper(td->name().at(index));
  9251. +           }
  9252. +           else
  9253. +           {
  9254. + #endif
  9255.             int index = getPrefixIndex(cd->className());
  9256.             startLetter=toupper(cd->className().at(index));
  9257. + #ifdef RSA_EXTENSIONS
  9258. +           }
  9259. + #endif
  9260.             char s[2]; s[0]=startLetter; s[1]=0;
  9261.             ol.writeIndexHeading(s);
  9262.           }
  9263. ***************
  9264. *** 1335,1340 ****
  9265. --- 1741,1753 ----
  9266.           QCString cname;
  9267.           QCString namesp;
  9268.           if (cd->getNamespaceDef()) namesp=cd->getNamespaceDef()->name();
  9269. + #ifdef RSA_EXTENSIONS
  9270. +         if (hasTypedef == TRUE)
  9271. +         {
  9272. +           cname = td->name();
  9273. +         }
  9274. +         else
  9275. + #endif
  9276.           if (Config_getBool("HIDE_SCOPE_NAMES"))
  9277.           {
  9278.             cname=cd->displayName();
  9279. ***************
  9280. *** 1423,1440 ****
  9281. --- 1836,1882 ----
  9282.     if (hasHtmlHelp)
  9283.     {
  9284.       htmlHelp = HtmlHelp::getInstance();
  9285. + #ifdef RSA_EXTENSIONS
  9286. +     if (Doxygen::tocStyle == Doxygen::Original ||
  9287. +         Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9288. +     {
  9289. + #endif //RSA_EXTENSIONS
  9290.       htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"annotated"); 
  9291.       htmlHelp->incContentsDepth();
  9292. + #ifdef RSA_EXTENSIONS
  9293. +     }
  9294. +     else
  9295. +     {
  9296. +       htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"annotated"); 
  9297. +     }
  9298. + #endif
  9299.     }
  9300.     if (hasFtvHelp)
  9301.     {
  9302.       ftvHelp = FTVHelp::getInstance();
  9303. + #ifdef RSA_EXTENSIONS
  9304. +     if (Doxygen::tocStyle == Doxygen::Original ||
  9305. +         Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9306. +     {
  9307. + #endif //RSA_EXTENSIONS
  9308.       ftvHelp->addContentsItem(TRUE,0,"annotated",0,ftvHelpTitle); 
  9309.       ftvHelp->incContentsDepth();
  9310. + #ifdef RSA_EXTENSIONS
  9311. +     }
  9312. +     else
  9313. +     {
  9314. +       ftvHelp->addContentsItem(FALSE,0,"annotated",0,ftvHelpTitle); 
  9315. +     }
  9316. + #endif
  9317.     }
  9318.     parseText(ol,theTranslator->trCompoundListDescription());
  9319.     ol.endTextBlock();
  9320.     writeAnnotatedClassList(ol);
  9321. + #ifdef RSA_EXTENSIONS
  9322. +   if (Doxygen::tocStyle == Doxygen::Original ||
  9323. +       Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9324. +   {
  9325. + #endif //RSA_EXTENSIONS
  9326.     if (hasHtmlHelp)
  9327.     {
  9328.       htmlHelp->decContentsDepth();
  9329. ***************
  9330. *** 1443,1448 ****
  9331. --- 1885,1893 ----
  9332.     {
  9333.       ftvHelp->decContentsDepth();
  9334.     }
  9335. + #ifdef RSA_EXTENSIONS
  9336. +   }
  9337. + #endif
  9338.     
  9339.     endFile(ol);
  9340.     ol.popGeneratorState();
  9341. ***************
  9342. *** 1562,1567 ****
  9343. --- 2007,2045 ----
  9344.         while (md)
  9345.         {
  9346.           ClassDef *cd=md->getClassDef();
  9347. + #ifdef RSA_EXTENSIONS
  9348. +         bool hasTypedef = FALSE;
  9349. +         MemberDef *td;
  9350. +         if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
  9351. +             Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
  9352. +         {
  9353. +           td = cd->findTypedef();
  9354. +           if (td != 0)
  9355. +           {
  9356. +             hasTypedef = TRUE;
  9357. +           }
  9358. +         }
  9359. +         if (hasTypedef == TRUE)
  9360. +         {
  9361. +           if (
  9362. +               md->isLinkableInProject() &&
  9363. +               prevName!=td->name() && 
  9364. +               cd->isLinkableInProject() && cd->templateMaster()==0
  9365. +              )
  9366. +           {
  9367. +             if (count==0) 
  9368. +               ol.docify(": ");
  9369. +             else 
  9370. +               ol.docify(", ");
  9371. +             ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),md->anchor(),
  9372. +                               td->name());
  9373. +             count++;
  9374. +             prevName=td->name();
  9375. +           }
  9376. +         }
  9377. +         else
  9378. +         {
  9379. + #endif
  9380.           if (
  9381.               md->isLinkableInProject() &&
  9382.               prevName!=cd->displayName() && 
  9383. ***************
  9384. *** 1577,1582 ****
  9385. --- 2055,2063 ----
  9386.             count++;
  9387.             prevName=cd->displayName();
  9388.           }
  9389. + #ifdef RSA_EXTENSIONS
  9390. +         }
  9391. + #endif
  9392.           md=mn->prev();
  9393.         }
  9394.       }
  9395. ***************
  9396. *** 1755,1762 ****
  9397. --- 2236,2264 ----
  9398.             else 
  9399.               ol.docify(", ");
  9400.             QCString baseName=fd->name().copy();
  9401. + #ifdef RSA_EXTENSIONS
  9402. +           /* This fixes a doxygen bug. If the member is in a group, it is not
  9403. +            * actually documented in the file. The link must refer to the group
  9404. +            * instead. md->writeLink() does this check, but it displays
  9405. +            * the wrong text. So we cut and paste. The result is a little
  9406. +            * wierd -- we end up in the group file, but the link text was
  9407. +            * the original filename.
  9408. +            */
  9409. +           GroupDef *group = md->getGroupDef();
  9410. +           if (group != 0)
  9411. +           {
  9412. +             ol.writeObjectLink(group->getReference(),
  9413. +               group->getOutputFileBase(),md->anchor(),baseName);
  9414. +           }
  9415. +           else // local link
  9416. +           {
  9417. +             ol.writeObjectLink(fd->getReference(),
  9418. +                 fd->getOutputFileBase(),md->anchor(), baseName);
  9419. +           }
  9420. + #else //!RSA_EXTENSIONS
  9421.             ol.writeObjectLink(fd->getReference(),
  9422.                 fd->getOutputFileBase(),md->anchor(), baseName);
  9423. + #endif
  9424.             count++;
  9425.             prevName=fd->name();
  9426.           }
  9427. ***************
  9428. *** 2597,2614 ****
  9429. --- 3099,3134 ----
  9430.     if (hasHtmlHelp)
  9431.     {
  9432.       htmlHelp = HtmlHelp::getInstance();
  9433. + #ifdef RSA_EXTENSIONS
  9434. +     if (Doxygen::tocStyle == Doxygen::Original)
  9435. +     {
  9436. + #endif //RSA_EXTENSIONS
  9437.       htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"modules"); 
  9438.       htmlHelp->incContentsDepth();
  9439. + #ifdef RSA_EXTENSIONS
  9440. +     }
  9441. + #endif //RSA_EXTENSIONS
  9442.     }
  9443.     if (hasFtvHelp)
  9444.     {
  9445.       ftvHelp = FTVHelp::getInstance();
  9446. + #ifdef RSA_EXTENSIONS
  9447. +     if (Doxygen::tocStyle == Doxygen::Original)
  9448. +     {
  9449. + #endif //RSA_EXTENSIONS
  9450.       ftvHelp->addContentsItem(TRUE,0,"modules",0,ftvHelpTitle); 
  9451.       ftvHelp->incContentsDepth();
  9452. + #ifdef RSA_EXTENSIONS
  9453. +     }
  9454. + #endif //RSA_EXTENSIONS
  9455.     }
  9456.     parseText(ol,theTranslator->trModulesDescription());
  9457.     ol.endTextBlock();
  9458.     writeGroupHierarchy(ol);
  9459. + #ifdef RSA_EXTENSIONS
  9460. +   if (Doxygen::tocStyle == Doxygen::Original)
  9461. +   {
  9462. + #endif //RSA_EXTENSIONS
  9463.     if (hasHtmlHelp)
  9464.     {
  9465.       //writeGroupTree(ol);   // KPW - modified to write hierarchial HMTL Help
  9466. ***************
  9467. *** 2625,2630 ****
  9468. --- 3145,3153 ----
  9469.           ftvHelp->decContentsDepth();
  9470.       //}
  9471.     }
  9472. + #ifdef RSA_EXTENSIONS
  9473. +   }
  9474. + #endif //RSA_EXTENSIONS
  9475.     endFile(ol);
  9476.     ol.popGeneratorState();
  9477.   }
  9478. ***************
  9479. *** 2877,2879 ****
  9480. --- 3400,3719 ----
  9481.     ol.popGeneratorState();
  9482.   }
  9483.   
  9484. + #ifdef RSA_EXTENSIONS
  9485. + //----------------------------------------------------------------------------
  9486. + void writeAnnotatedFunctionList(OutputList &ol)
  9487. + {
  9488. +   if (documentedFunctions==0) return;
  9489. +   ol.pushGeneratorState();
  9490. +   ol.disableAllBut(OutputGenerator::Html);
  9491. +   startFile(ol,"annfuncs",0,"Annotated Function Index");
  9492. +   QCString title = "Function Quick Reference"/* theTranslator->trFunctionQuickReference() */;
  9493. +   QCString htmlHelpTitle = title;
  9494. +   QCString ftvHelpTitle =  title;
  9495. +   if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
  9496. +   startTitle(ol,0);
  9497. +   parseText(ol,title);
  9498. +   endTitle(ol,0,0);
  9499. +   ol.startTextBlock();
  9500. +   HtmlHelp *htmlHelp = 0;
  9501. +   FTVHelp  *ftvHelp = 0;
  9502. +   bool &generateHtml = Config_getBool("GENERATE_HTML") ;
  9503. +   bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
  9504. +   bool hasFtvHelp =  generateHtml && Config_getBool("GENERATE_TREEVIEW");
  9505. +   if (hasHtmlHelp)
  9506. +   {
  9507. +     htmlHelp = HtmlHelp::getInstance();
  9508. +     if (Doxygen::tocStyle == Doxygen::Spicy)
  9509. +     {
  9510. +       htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"annfuncs"); 
  9511. +     }
  9512. +     else
  9513. +     {
  9514. +       htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"annfuncs"); 
  9515. +       htmlHelp->incContentsDepth();
  9516. +     }
  9517. +   }
  9518. +   if (hasFtvHelp)
  9519. +   {
  9520. +     ftvHelp = FTVHelp::getInstance();
  9521. +     if (Doxygen::tocStyle == Doxygen::Spicy)
  9522. +     {
  9523. +       ftvHelp->addContentsItem(FALSE,0,"annfuncs",0,ftvHelpTitle); 
  9524. +     }
  9525. +     else
  9526. +     {
  9527. +       ftvHelp->addContentsItem(TRUE,0,"annfuncs",0,ftvHelpTitle); 
  9528. +       ftvHelp->incContentsDepth();
  9529. +     }
  9530. +   }
  9531. +   parseText(ol,"Here are the functions with brief descriptions:"/* theTranslator->trFunctionListDescription() */);
  9532. +   ol.endTextBlock();
  9533. +   ol.startIndexList();
  9534. +   MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);
  9535. +   MemberName *mn=0;
  9536. +   for (mnli.toFirst();(mn=mnli.current());++mnli)
  9537. +   {
  9538. +     MemberDef *md=mn->first();
  9539. +     bool found=FALSE;
  9540. +     while (md && !found)
  9541. +     {
  9542. +       if (md->isFunction() &&
  9543. +           md->getFileDef() &&
  9544. +           md->getFileDef()->isLinkableInProject() &&
  9545. +           md->isLinkableInProject())
  9546. +       {
  9547. +         found = TRUE;
  9548. +       }
  9549. +       else
  9550. +       {
  9551. +         md = mn->next();
  9552. +       }
  9553. +     }
  9554. +     if (found)
  9555. +     {
  9556. +       ol.startIndexKey();
  9557. +       md->writeLink(ol, 0, 0, md->getFileDef(), 0);
  9558. +       ol.endIndexKey();
  9559. +       bool hasBrief = !md->briefDescription().isEmpty();
  9560. +       ol.startIndexValue(hasBrief);
  9561. +       if (hasBrief)
  9562. +       {
  9563. +         parseDoc(ol,
  9564. +                  md->getDefFileName(), md->getDefLine(),
  9565. +                  md->name(),0,
  9566. +                  abbreviate(md->briefDescription(),md->name()));
  9567. +       }
  9568. +       ol.endIndexValue(md->getOutputFileBase(),hasBrief);
  9569. +       if (Doxygen::tocStyle == Doxygen::ExtraCrispy)
  9570. +       {
  9571. +         Definition *d = md;
  9572. +         if (md->getGroupDef())
  9573. +         {
  9574. +           d = md->getGroupDef();
  9575. +         }
  9576. +         if (hasHtmlHelp)
  9577. +         {
  9578. +           htmlHelp->addContentsItem(FALSE, md->name(),d->getOutputFileBase());
  9579. +         }
  9580. +         if (hasFtvHelp)
  9581. +         {
  9582. +           ftvHelp->addContentsItem(FALSE, d->getReference(),
  9583. +             d->getOutputFileBase(),md->anchor(),md->name());
  9584. +         }
  9585. +       }
  9586. +     }
  9587. +   }
  9588. +   ol.endIndexList();
  9589. +   if (Doxygen::tocStyle != Doxygen::Spicy)
  9590. +   {
  9591. +     if (hasHtmlHelp)
  9592. +     {
  9593. +       htmlHelp->decContentsDepth();
  9594. +     }
  9595. +     if(hasFtvHelp)
  9596. +     {
  9597. +       ftvHelp->decContentsDepth();
  9598. +     }
  9599. +   }
  9600. +   endFile(ol);
  9601. +   ol.popGeneratorState();
  9602. + }
  9603. + //----------------------------------------------------------------------------
  9604. + // write an alphabetical index of all global functions
  9605. + void writeAlphabeticalFunctionList(OutputList &ol)
  9606. + {
  9607. +   ol.startAlphabeticalIndexList(); 
  9608. +   // first count the number of headers
  9609. +   MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);
  9610. +   MemberName *mn=0;
  9611. +   MemberDef *md;
  9612. +   char startLetter=0;
  9613. +   int headerItems=0;
  9614. +   int totalItems = 0;            // number of items in the table
  9615. +   for (mnli.toFirst();(mn=mnli.current());++mnli)
  9616. +   {
  9617. +     md=mn->first();
  9618. +     bool found=FALSE;
  9619. +     while (md && !found)
  9620. +     {
  9621. +       if (md->isFunction() &&
  9622. +           md->getFileDef() &&
  9623. +           md->getFileDef()->isLinkableInProject() &&
  9624. +           md->isLinkableInProject())
  9625. +       {
  9626. +         found = TRUE;
  9627. +       }
  9628. +       else
  9629. +       {
  9630. +         md = mn->next();
  9631. +       }
  9632. +     }
  9633. +     if (found)
  9634. +     {
  9635. +       totalItems++;
  9636. +       int index = 0;
  9637. +       if (toupper(md->name().at(index))!=startLetter) // new begin letter => new header
  9638. +       {
  9639. +         startLetter=toupper(md->name().at(index));
  9640. +         headerItems++;
  9641. +         totalItems++;
  9642. +       }
  9643. +     }
  9644. +   }
  9645. +   // the number of columns in the table
  9646. +   const int columns = Config_getInt("COLS_IN_ALPHA_INDEX");
  9647. +   int i,j;
  9648. +   int rows = (totalItems + columns - 1)/columns;              // number of rows in the table
  9649. +   int itemsInLastRow = (totalItems + columns -1)%columns + 1; // number of items in the last row
  9650. +   //printf("headerItems=%d totalItems=%d columns=%d rows=%d itemsInLastRow=%d\n",
  9651. +   //    headerItems,totalItems,columns,rows,itemsInLastRow);
  9652. +   // create one function list for each column 
  9653. +   MemberList *colList = new MemberList[columns];
  9654. +   // fill the columns with the function list (row elements in each column,
  9655. +   // expect for the columns with number >= itemsInLastRow, which get on
  9656. +   // item less.
  9657. +   int col=0,row=0;
  9658. +   //int icount=0;
  9659. +   startLetter=0;
  9660. +   for (mnli.toFirst();(mn=mnli.current());++mnli)
  9661. +   {
  9662. +     md=mn->first();
  9663. +     bool found=FALSE;
  9664. +     while (md && !found)
  9665. +     {
  9666. +       if (md->isFunction() &&
  9667. +           md->getFileDef() &&
  9668. +           md->getFileDef()->isLinkableInProject() &&
  9669. +           md->isLinkableInProject())
  9670. +       {
  9671. +         found = TRUE;
  9672. +       }
  9673. +       else
  9674. +       {
  9675. +         md = mn->next();
  9676. +       }
  9677. +     }
  9678. +     if (found)
  9679. +     {
  9680. +       int index = 0;
  9681. +       if (toupper(md->name().at(index))!=startLetter)
  9682. +       {
  9683. +         // insert a new header using a dummy function pointer.
  9684. +         startLetter=toupper(md->name().at(index));
  9685. +         colList[col].append((MemberDef *)8); // insert dummy for the header
  9686. +         row++;
  9687. +         if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1)) 
  9688. +         { 
  9689. +           // if the header is the last item in the row, we add an extra
  9690. +           // row to make it easier to find the text of the header (this
  9691. +           // is then contained in the next cell)
  9692. +           colList[col].append(md); 
  9693. +           col++; 
  9694. +           row=0; 
  9695. +         }
  9696. +       }
  9697. +       // add the member definition to the correct column list
  9698. +       colList[col].append(md);
  9699. +       row++;
  9700. +       if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1)) { col++; row=0; }
  9701. +     }
  9702. +   }
  9703. +   // create iterators for each column
  9704. +   MemberListIterator **colIterators = new MemberListIterator*[columns];
  9705. +   for (i=0;i<columns;i++)
  9706. +   {
  9707. +     colIterators[i] = new MemberListIterator(colList[i]);
  9708. +   }
  9709. +   // generate table
  9710. +   for (i=0;i<rows;i++) // foreach table row
  9711. +   {
  9712. +     ol.nextTableRow();
  9713. +     // the last column may contain less items then the others
  9714. +     int colsInRow = (i<rows-1) ? columns : itemsInLastRow; 
  9715. +     //printf("row [%d]\n",i);
  9716. +     for (j=0;j<colsInRow;j++) // foreach table column
  9717. +     {
  9718. +       MemberDef *md = colIterators[j]->current();
  9719. +       //printf("columns [%d] cd=%p\n",j,cd);
  9720. +       if (md==(MemberDef *)8) // the pointer is really a header
  9721. +       {
  9722. +         md=++(*colIterators[j]); // get the next item
  9723. +         if (md)
  9724. +         {
  9725. +           //printf("head MemberDef=%p %s\n",md,md ? md->name().data() : "<none>");
  9726. +           int index = 0;
  9727. +           startLetter=toupper(md->name().at(index));
  9728. +           char s[2]; s[0]=startLetter; s[1]=0;
  9729. +           ol.writeIndexHeading(s);
  9730. +         }
  9731. +       }
  9732. +       else if (md) // a real definition, insert a link
  9733. +       {
  9734. +         md->writeLink(ol, 0, 0, md->getFileDef(), 0);
  9735. +         ol.writeNonBreakableSpace(3);
  9736. +         //printf("item MemberDef=%p %s\n",md,md ? md->name().data() : "<none>");
  9737. +         ++(*colIterators[j]);
  9738. +       }
  9739. +       ol.endTableColumn();
  9740. +       if (j<colsInRow-1) ol.nextTableColumn();
  9741. +     }
  9742. +     ol.endTableRow();
  9743. +   }
  9744. +   ol.endAlphabeticalIndexList();
  9745. +   // release the temporary memory
  9746. +   for (i=0;i<columns;i++)
  9747. +   {
  9748. +     delete colIterators[i];
  9749. +   }
  9750. +   delete[] colIterators;
  9751. +   delete[] colList;
  9752. + }
  9753. + //----------------------------------------------------------------------------
  9754. + void writeAlphabeticalFunctionIndex(OutputList &ol)
  9755. + {
  9756. +   if (documentedFunctions==0) return;
  9757. +   ol.pushGeneratorState();
  9758. +   ol.disableAllBut(OutputGenerator::Html);
  9759. +   startFile(ol,"funcidx",0,"Alphabetical Function Index");
  9760. +   startTitle(ol,0);
  9761. +   QCString title = "Function Index"; /* theTranslator->trFunctionIndex() */
  9762. +   parseText(ol,Config_getString("PROJECT_NAME")+" "+ title);
  9763. +   endTitle(ol,0,0);
  9764. +   writeAlphabeticalFunctionList(ol);
  9765. +   endFile(ol);
  9766. +   bool &generateHtml = Config_getBool("GENERATE_HTML") ;
  9767. +   bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
  9768. +   bool hasFtvHelp  = generateHtml && Config_getBool("GENERATE_TREEVIEW");
  9769. +   if (hasHtmlHelp)
  9770. +   {
  9771. +     HtmlHelp::getInstance()->addContentsItem(FALSE,title,"funcidx"); 
  9772. +   }
  9773. +   if (hasFtvHelp)
  9774. +   {
  9775. +     FTVHelp::getInstance()->addContentsItem(FALSE,0,"funcidx",0,title); 
  9776. +   }
  9777. +   ol.popGeneratorState();
  9778. + }
  9779. + #endif //RSA_EXTENSIONS
  9780. \ No newline at end of file
  9781. Index: src/index.h
  9782. ===================================================================
  9783. RCS file: /usr/local/cvs/tools/doxygen/src/index.h,v
  9784. retrieving revision 1.1.1.8
  9785. retrieving revision 1.6
  9786. diff -b -c -b -c -r1.1.1.8 -r1.6
  9787. *** src/index.h    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9788. --- src/index.h    27 Feb 2002 20:00:25 -0000    1.6
  9789. ***************
  9790. *** 1,6 ****
  9791.   /******************************************************************************
  9792.    *
  9793. !  * 
  9794.    *
  9795.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9796.    *
  9797. --- 1,6 ----
  9798.   /******************************************************************************
  9799.    *
  9800. !  * $Id$
  9801.    *
  9802.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9803.    *
  9804. ***************
  9805. *** 66,72 ****
  9806.   void writeGraphicalClassHierarchy(OutputList &ol);
  9807.   void writeGraphInfo(OutputList &ol);
  9808.   void writePackageIndex(OutputList &ol);
  9809.   void countDataStructures();
  9810.   
  9811.   extern int annotatedClasses;
  9812. --- 66,75 ----
  9813.   void writeGraphicalClassHierarchy(OutputList &ol);
  9814.   void writeGraphInfo(OutputList &ol);
  9815.   void writePackageIndex(OutputList &ol);
  9816. ! #ifdef RSA_EXTENSIONS
  9817. ! void writeAnnotatedFunctionList(OutputList &ol);
  9818. ! void writeAlphabeticalFunctionIndex(OutputList &ol);
  9819. ! #endif //RSA_EXTENSIONS
  9820.   void countDataStructures();
  9821.   
  9822.   extern int annotatedClasses;
  9823. Index: src/instdox.cpp
  9824. ===================================================================
  9825. RCS file: /usr/local/cvs/tools/doxygen/src/instdox.cpp,v
  9826. retrieving revision 1.1.1.8
  9827. retrieving revision 1.4
  9828. diff -b -c -b -c -r1.1.1.8 -r1.4
  9829. *** src/instdox.cpp    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9830. --- src/instdox.cpp    7 Feb 2002 23:29:22 -0000    1.4
  9831. ***************
  9832. *** 1,6 ****
  9833.   /******************************************************************************
  9834.    *
  9835. !  * 
  9836.    *
  9837.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9838.    *
  9839. --- 1,6 ----
  9840.   /******************************************************************************
  9841.    *
  9842. !  * $Id$
  9843.    *
  9844.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9845.    *
  9846. Index: src/instdox.h
  9847. ===================================================================
  9848. RCS file: /usr/local/cvs/tools/doxygen/src/instdox.h,v
  9849. retrieving revision 1.1.1.8
  9850. retrieving revision 1.4
  9851. diff -b -c -b -c -r1.1.1.8 -r1.4
  9852. *** src/instdox.h    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9853. --- src/instdox.h    7 Feb 2002 23:29:22 -0000    1.4
  9854. ***************
  9855. *** 1,6 ****
  9856.   /******************************************************************************
  9857.    *
  9858. !  * 
  9859.    *
  9860.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9861.    *
  9862. --- 1,6 ----
  9863.   /******************************************************************************
  9864.    *
  9865. !  * $Id$
  9866.    *
  9867.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9868.    *
  9869. Index: src/language.h
  9870. ===================================================================
  9871. RCS file: /usr/local/cvs/tools/doxygen/src/language.h,v
  9872. retrieving revision 1.1.1.8
  9873. retrieving revision 1.4
  9874. diff -b -c -b -c -r1.1.1.8 -r1.4
  9875. *** src/language.h    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9876. --- src/language.h    7 Feb 2002 23:29:22 -0000    1.4
  9877. ***************
  9878. *** 1,6 ****
  9879.   /******************************************************************************
  9880.    *
  9881. !  * 
  9882.    *
  9883.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9884.    *
  9885. --- 1,6 ----
  9886.   /******************************************************************************
  9887.    *
  9888. !  * $Id$
  9889.    *
  9890.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9891.    *
  9892. Index: src/latexgen.cpp
  9893. ===================================================================
  9894. RCS file: /usr/local/cvs/tools/doxygen/src/latexgen.cpp,v
  9895. retrieving revision 1.1.1.8
  9896. retrieving revision 1.5
  9897. diff -b -c -b -c -r1.1.1.8 -r1.5
  9898. *** src/latexgen.cpp    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9899. --- src/latexgen.cpp    7 Feb 2002 23:29:22 -0000    1.5
  9900. ***************
  9901. *** 1,6 ****
  9902.   /******************************************************************************
  9903.    *
  9904. !  * 
  9905.    *
  9906.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9907.    *
  9908. --- 1,6 ----
  9909.   /******************************************************************************
  9910.    *
  9911. !  * $Id$
  9912.    *
  9913.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9914.    *
  9915. Index: src/latexgen.h
  9916. ===================================================================
  9917. RCS file: /usr/local/cvs/tools/doxygen/src/latexgen.h,v
  9918. retrieving revision 1.1.1.8
  9919. retrieving revision 1.5
  9920. diff -b -c -b -c -r1.1.1.8 -r1.5
  9921. *** src/latexgen.h    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9922. --- src/latexgen.h    7 Feb 2002 23:29:22 -0000    1.5
  9923. ***************
  9924. *** 1,6 ****
  9925.   /******************************************************************************
  9926.    *
  9927. !  * 
  9928.    *
  9929.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9930.    *
  9931. --- 1,6 ----
  9932.   /******************************************************************************
  9933.    *
  9934. !  * $Id$
  9935.    *
  9936.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  9937.    *
  9938. Index: src/libdoxycfg.pro.in
  9939. ===================================================================
  9940. RCS file: /usr/local/cvs/tools/doxygen/src/libdoxycfg.pro.in,v
  9941. retrieving revision 1.1.1.8
  9942. retrieving revision 1.5
  9943. diff -b -c -b -c -r1.1.1.8 -r1.5
  9944. *** src/libdoxycfg.pro.in    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9945. --- src/libdoxycfg.pro.in    7 Feb 2002 23:29:22 -0000    1.5
  9946. ***************
  9947. *** 1,5 ****
  9948.   #
  9949. ! # 
  9950.   #
  9951.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  9952.   #
  9953. --- 1,5 ----
  9954.   #
  9955. ! # $Id$
  9956.   #
  9957.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  9958.   #
  9959. ***************
  9960. *** 18,23 ****
  9961. --- 18,25 ----
  9962.   CONFIG       =    console warn_on staticlib $extraopts
  9963.   HEADERS      =  config.h    
  9964.   SOURCES      =    config.cpp 
  9965. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  9966. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  9967.   win32:TMAKE_CXXFLAGS       += -DQT_NODLL
  9968.   INCLUDEPATH                += ../qtools
  9969.   win32:INCLUDEPATH          += .
  9970. Index: src/libdoxycfg.t
  9971. ===================================================================
  9972. RCS file: /usr/local/cvs/tools/doxygen/src/libdoxycfg.t,v
  9973. retrieving revision 1.1.1.8
  9974. retrieving revision 1.4
  9975. diff -b -c -b -c -r1.1.1.8 -r1.4
  9976. *** src/libdoxycfg.t    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9977. --- src/libdoxycfg.t    7 Feb 2002 23:29:22 -0000    1.4
  9978. ***************
  9979. *** 1,5 ****
  9980.   #
  9981. ! # 
  9982.   #
  9983.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  9984.   #
  9985. --- 1,5 ----
  9986.   #
  9987. ! # $Id$
  9988.   #
  9989.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  9990.   #
  9991. Index: src/libdoxygen.pro.in
  9992. ===================================================================
  9993. RCS file: /usr/local/cvs/tools/doxygen/src/libdoxygen.pro.in,v
  9994. retrieving revision 1.1.1.8
  9995. retrieving revision 1.7
  9996. diff -b -c -b -c -r1.1.1.8 -r1.7
  9997. *** src/libdoxygen.pro.in    7 Feb 2002 23:10:17 -0000    1.1.1.8
  9998. --- src/libdoxygen.pro.in    7 Feb 2002 23:29:22 -0000    1.7
  9999. ***************
  10000. *** 1,5 ****
  10001.   #
  10002. ! # 
  10003.   #
  10004.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  10005.   #
  10006. --- 1,5 ----
  10007.   #
  10008. ! # $Id$
  10009.   #
  10010.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  10011.   #
  10012. ***************
  10013. *** 148,153 ****
  10014. --- 148,155 ----
  10015.           version.cpp \
  10016.                   xmlgen.cpp 
  10017.   
  10018. + TMAKE_CFLAGS               += -DRSA_EXTENSIONS
  10019. + TMAKE_CXXFLAGS             += -DRSA_EXTENSIONS 
  10020.   win32:TMAKE_CXXFLAGS       += -DQT_NODLL 
  10021.   win32-msvc:TMAKE_CXXFLAGS  += -Zm200
  10022.   INCLUDEPATH                += ../qtools
  10023. Index: src/libdoxygen.t
  10024. ===================================================================
  10025. RCS file: /usr/local/cvs/tools/doxygen/src/libdoxygen.t,v
  10026. retrieving revision 1.1.1.8
  10027. retrieving revision 1.4
  10028. diff -b -c -b -c -r1.1.1.8 -r1.4
  10029. *** src/libdoxygen.t    7 Feb 2002 23:10:17 -0000    1.1.1.8
  10030. --- src/libdoxygen.t    7 Feb 2002 23:29:22 -0000    1.4
  10031. ***************
  10032. *** 1,5 ****
  10033.   #
  10034. - # 
  10035.   #
  10036.   # Copyright (C) 1997-2002 by Dimitri van Heesch.
  10037.   #
  10038. --- 1,4 ----
  10039. Index: src/logos.cpp
  10040. ===================================================================
  10041. RCS file: /usr/local/cvs/tools/doxygen/src/logos.cpp,v
  10042. retrieving revision 1.1.1.8
  10043. retrieving revision 1.4
  10044. diff -b -c -b -c -r1.1.1.8 -r1.4
  10045. *** src/logos.cpp    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10046. --- src/logos.cpp    7 Feb 2002 23:29:22 -0000    1.4
  10047. ***************
  10048. *** 1,6 ****
  10049.   /******************************************************************************
  10050.    *
  10051. !  * 
  10052.    *
  10053.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10054.    *
  10055. --- 1,6 ----
  10056.   /******************************************************************************
  10057.    *
  10058. !  * $Id$
  10059.    *
  10060.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10061.    *
  10062. Index: src/logos.h
  10063. ===================================================================
  10064. RCS file: /usr/local/cvs/tools/doxygen/src/logos.h,v
  10065. retrieving revision 1.1.1.8
  10066. retrieving revision 1.4
  10067. diff -b -c -b -c -r1.1.1.8 -r1.4
  10068. *** src/logos.h    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10069. --- src/logos.h    7 Feb 2002 23:29:22 -0000    1.4
  10070. ***************
  10071. *** 1,6 ****
  10072.   /******************************************************************************
  10073.    *
  10074. !  * 
  10075.    *
  10076.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10077.    *
  10078. --- 1,6 ----
  10079.   /******************************************************************************
  10080.    *
  10081. !  * $Id$
  10082.    *
  10083.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10084.    *
  10085. Index: src/main.cpp
  10086. ===================================================================
  10087. RCS file: /usr/local/cvs/tools/doxygen/src/main.cpp,v
  10088. retrieving revision 1.1.1.8
  10089. retrieving revision 1.4
  10090. diff -b -c -b -c -r1.1.1.8 -r1.4
  10091. *** src/main.cpp    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10092. --- src/main.cpp    7 Feb 2002 23:29:22 -0000    1.4
  10093. ***************
  10094. *** 1,6 ****
  10095.   /******************************************************************************
  10096.    *
  10097. !  * 
  10098.    *
  10099.    *
  10100.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10101. --- 1,6 ----
  10102.   /******************************************************************************
  10103.    *
  10104. !  * $Id$
  10105.    *
  10106.    *
  10107.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10108. Index: src/mangen.cpp
  10109. ===================================================================
  10110. RCS file: /usr/local/cvs/tools/doxygen/src/mangen.cpp,v
  10111. retrieving revision 1.1.1.8
  10112. retrieving revision 1.5
  10113. diff -b -c -b -c -r1.1.1.8 -r1.5
  10114. *** src/mangen.cpp    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10115. --- src/mangen.cpp    7 Feb 2002 23:29:22 -0000    1.5
  10116. ***************
  10117. *** 1,6 ****
  10118.   /******************************************************************************
  10119.    *
  10120. !  * 
  10121.    *
  10122.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10123.    *
  10124. --- 1,6 ----
  10125.   /******************************************************************************
  10126.    *
  10127. !  * $Id$
  10128.    *
  10129.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10130.    *
  10131. Index: src/mangen.h
  10132. ===================================================================
  10133. RCS file: /usr/local/cvs/tools/doxygen/src/mangen.h,v
  10134. retrieving revision 1.1.1.8
  10135. retrieving revision 1.5
  10136. diff -b -c -b -c -r1.1.1.8 -r1.5
  10137. *** src/mangen.h    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10138. --- src/mangen.h    7 Feb 2002 23:29:26 -0000    1.5
  10139. ***************
  10140. *** 1,6 ****
  10141.   /******************************************************************************
  10142.    *
  10143. !  * 
  10144.    *
  10145.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10146.    *
  10147. --- 1,6 ----
  10148.   /******************************************************************************
  10149.    *
  10150. !  * $Id$
  10151.    *
  10152.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10153.    *
  10154. Index: src/memberdef.cpp
  10155. ===================================================================
  10156. RCS file: /usr/local/cvs/tools/doxygen/src/memberdef.cpp,v
  10157. retrieving revision 1.1.1.7
  10158. retrieving revision 1.14
  10159. diff -b -c -b -c -r1.1.1.7 -r1.14
  10160. *** src/memberdef.cpp    7 Feb 2002 23:10:18 -0000    1.1.1.7
  10161. --- src/memberdef.cpp    8 Mar 2002 03:46:53 -0000    1.14
  10162. ***************
  10163. *** 84,90 ****
  10164.     ol.startParameterList(); 
  10165.     ol.enableAll();
  10166.     ol.disable(OutputGenerator::Html);
  10167. !   ol.docify("("); // start argument list
  10168.     ol.endMemberDocName();
  10169.     ol.popGeneratorState();
  10170.     //printf("===> name=%s isDefine=%d\n",md->name().data(),md->isDefine());
  10171. --- 84,94 ----
  10172.     ol.startParameterList(); 
  10173.     ol.enableAll();
  10174.     ol.disable(OutputGenerator::Html);
  10175. ! #ifdef RSA_EXTENSIONS
  10176. !   ol.docify("( ");
  10177. ! #else /* !RSA_EXTENSIONS */
  10178. !   ol.docify("(");
  10179. ! #endif /* RSA_EXTENSIONS */
  10180.     ol.endMemberDocName();
  10181.     ol.popGeneratorState();
  10182.     //printf("===> name=%s isDefine=%d\n",md->name().data(),md->isDefine());
  10183. ***************
  10184. *** 189,195 ****
  10185.     ol.pushGeneratorState();
  10186.     ol.disable(OutputGenerator::Html);
  10187.     //if (!first) ol.writeString(" ");
  10188. !   ol.docify(")"); // end argument list
  10189.     ol.enableAll();
  10190.     ol.disableAllBut(OutputGenerator::Html);
  10191.     if (!md->isDefine()) 
  10192. --- 193,203 ----
  10193.     ol.pushGeneratorState();
  10194.     ol.disable(OutputGenerator::Html);
  10195.     //if (!first) ol.writeString(" ");
  10196. ! #ifdef RSA_EXTENSIONS
  10197. !   ol.docify(") "); 
  10198. ! #else /* !RSA_EXTENSIONS */
  10199. !   ol.docify(")"); 
  10200. ! #endif /* RSA_EXTENSIONS */
  10201.     ol.enableAll();
  10202.     ol.disableAllBut(OutputGenerator::Html);
  10203.     if (!md->isDefine()) 
  10204. ***************
  10205. *** 234,239 ****
  10206. --- 242,278 ----
  10207.     ol.docify("> ");
  10208.   }
  10209.   
  10210. + #ifdef RSA_EXTENSIONS
  10211. + bool MemberDef::isHidden() const
  10212. + {
  10213. +   char *ilConfVar;
  10214. +   char *elConfVar;
  10215. +   // determine the appropriate config variable names
  10216. +   switch (mtype)
  10217. +   {
  10218. +   case Define:
  10219. +     ilConfVar = "DEFINE_INCLUDE_PATTERNS";
  10220. +     elConfVar = "DEFINE_EXCLUDE_PATTERNS";
  10221. +     break;
  10222. +   case Function:
  10223. +     ilConfVar = "FUNCTION_INCLUDE_PATTERNS";
  10224. +     elConfVar = "FUNCTION_EXCLUDE_PATTERNS";
  10225. +     break;
  10226. +   case Typedef:
  10227. +     ilConfVar = "TYPEDEF_INCLUDE_PATTERNS";
  10228. +     elConfVar = "TYPEDEF_EXCLUDE_PATTERNS";
  10229. +     break;
  10230. +   default:
  10231. +     ilConfVar = "ENTRY_INCLUDE_PATTERNS";
  10232. +     elConfVar = "ENTRY_EXCLUDE_PATTERNS";
  10233. +     break;
  10234. +   }
  10235. +   return isEntryHidden(name(), ilConfVar, elConfVar, FALSE);
  10236. + }
  10237. + #endif // RSA_EXTENSIONS
  10238.   //-----------------------------------------------------------------------------
  10239.   
  10240.   /*! Creates a new member definition.
  10241. ***************
  10242. *** 549,554 ****
  10243. --- 588,599 ----
  10244.    */
  10245.   bool MemberDef::isBriefSectionVisible() const
  10246.   {
  10247. + #ifdef RSA_EXTENSIONS
  10248. +     // only include members not explicitly hidden
  10249. +     bool visibleIfNotHidden = !isHidden();
  10250. + #endif // RSA_EXTENSIONS
  10251.       // only include static members with file/namespace scope if 
  10252.       // explicitly enabled in the config file
  10253.       bool visibleIfStatic = !(getClassDef()==0 && 
  10254. ***************
  10255. *** 580,586 ****
  10256. --- 625,638 ----
  10257.       
  10258.       bool visible = visibleIfStatic && visibleIfDocumented && 
  10259.                      visibleIfEnabled && visibleIfPrivate && !annScope;
  10260. + #ifdef RSA_EXTENSIONS
  10261. +     visible = visible && visibleIfNotHidden;
  10262. + #endif // RSA_EXTENSIONS
  10263.       //printf("MemberDef::isBriefSectionVisible() %d\n",visible);
  10264. +     //printf("isBriefSectionVisible: %s - type=%d visible=%d\n",
  10265. +     //                        name().data(),mtype,visible);
  10266.       return visible;
  10267.   }
  10268.   
  10269. ***************
  10270. *** 659,665 ****
  10271. --- 711,725 ----
  10272.     if (!detailsVisible && !annMemb)
  10273.     {
  10274.       QCString doxyName=name().copy();
  10275. + #ifdef RSA_EXTENSIONS
  10276. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == FALSE ||
  10277. +         Config_getBool("HIDE_SCOPE_NAMES") == FALSE)
  10278. +     {
  10279. +       if (!cname.isEmpty()) doxyName.prepend(cname+"::");
  10280. +     }
  10281. + #else //!RSA_EXTENSIONS
  10282.       if (!cname.isEmpty()) doxyName.prepend(cname+"::");
  10283. + #endif // RSA_EXTENSIONS
  10284.       ol.startDoxyAnchor(cfname,cname,anchor(),doxyName);
  10285.   
  10286.       ol.addIndexItem(name(),cname);
  10287. ***************
  10288. *** 692,697 ****
  10289. --- 752,772 ----
  10290.     }
  10291.   
  10292.     QCString ltype(type);
  10293. + #ifdef RSA_EXTENSIONS
  10294. +   /* Try using the right half of the complete member definition up to the 
  10295. +      member name */
  10296. +   QCString ldef = definition();
  10297. +   int namePos = name().isEmpty()? -1 : ldef.find(name());
  10298. +   if (namePos != -1)
  10299. +   {
  10300. +     ltype = ldef.left(namePos).stripWhiteSpace();
  10301. +     linkifyText(TextGeneratorOLImpl(ol),cname,name(),ltype,TRUE); 
  10302. +   }
  10303. +   else
  10304. +   {
  10305. +     /* Use the original method of piecing together the member
  10306. +        type and name parts */
  10307. + #endif //RSA_EXTENSIONS
  10308.     if (mtype==Typedef) ltype.prepend("typedef ");
  10309.     // strip `static' keyword from ltype
  10310.     if (ltype.left(7)=="static ") ltype=ltype.right(ltype.length()-7);
  10311. ***************
  10312. *** 742,747 ****
  10313. --- 817,825 ----
  10314.     {
  10315.       linkifyText(TextGeneratorOLImpl(ol),cname,name(),ltype,TRUE); 
  10316.     }
  10317. + #ifdef RSA_EXTENSIONS
  10318. +   }
  10319. + #endif //RSA_EXTENSIONS
  10320.     bool htmlOn = ol.isEnabled(OutputGenerator::Html);
  10321.     if (htmlOn && Config_getBool("HTML_ALIGN_MEMBERS") && !ltype.isEmpty())
  10322.     {
  10323. ***************
  10324. *** 919,925 ****
  10325. --- 997,1009 ----
  10326.     //
  10327.     bool inAnonymousScope = !briefDescription().isEmpty() && annUsed;
  10328.   
  10329. + #ifdef RSA_EXTENSIONS
  10330. +   // also check that member is not explicitly hidden by config file
  10331. +   return ((!isHidden() && docFilter && staticFilter && privateFilter) ||
  10332. +     inAnonymousScope);
  10333. + #else // RSA_EXTENSIONS
  10334.     return ((docFilter && staticFilter && privateFilter) || inAnonymousScope);
  10335. + #endif // RSA_EXTENSIONS
  10336.   }
  10337.   
  10338.   bool MemberDef::isDetailedSectionVisible(bool inGroup) const          
  10339. ***************
  10340. *** 927,932 ****
  10341. --- 1011,1021 ----
  10342.     bool groupFilter = getGroupDef()==0 || inGroup; 
  10343.   
  10344.     bool visible = isDetailedSectionLinkable() && groupFilter && !isReference();
  10345. + #ifdef RSA_EXTENSIONS
  10346. +   // ignore explicitly hidden members
  10347. +   visible = visible && !isHidden();
  10348. + #endif // RSA_EXTENSIONS
  10349.     //printf("MemberDef::isDetailedSectionVisible() %d\n",visible);
  10350.     return visible;
  10351.   }
  10352. ***************
  10353. *** 960,967 ****
  10354. --- 1049,1064 ----
  10355.   
  10356.       // get member name
  10357.       QCString doxyName=name().copy();
  10358. + #ifdef RSA_EXTENSIONS
  10359. +     if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == FALSE ||
  10360. +         Config_getBool("HIDE_SCOPE_NAMES") == FALSE)
  10361. +     {
  10362. +       if (scopeName) doxyName.prepend((QCString)scopeName+"::");
  10363. +     }
  10364. + #else //!RSA_EXTENSIONS
  10365.       // prepend scope if there is any. TODO: make this optional for C only docs
  10366.       if (scopeName) doxyName.prepend((QCString)scopeName+"::");
  10367. + #endif // RSA_EXTENSIONS
  10368.   
  10369.       QCString ldef = definition();
  10370.       //printf("member `%s' def=`%s'\n",name().data(),ldef.data());
  10371. ***************
  10372. *** 1205,1211 ****
  10373. --- 1302,1313 ----
  10374.          )  
  10375.       { 
  10376.         parseDoc(ol,m_defFileName,m_defLine,scopeName,this,brief);
  10377. + #ifdef RSA_EXTENSIONS
  10378. +       // (Paragraph removed--space needed)
  10379. +       ol.writeString(" "); 
  10380. + #else /* !RSA_EXTENSIONS */
  10381.         ol.newParagraph(); 
  10382. + #endif /* RSA_EXTENSIONS */
  10383.       }
  10384.   
  10385.       /* write detailed description */
  10386. ***************
  10387. *** 1515,1520 ****
  10388. --- 1617,1629 ----
  10389.     }
  10390.     else
  10391.     {
  10392. + #ifdef RSA_EXTENSIONS
  10393. +     // don't link to hidden members
  10394. +     if (isHidden())
  10395. +     {
  10396. +         return FALSE;
  10397. +     }
  10398. + #endif
  10399.       return !name().isEmpty() && name().at(0)!='@' &&
  10400.         (hasDocumentation() && !isReference()) && 
  10401.         (prot!=Private || Config_getBool("EXTRACT_PRIVATE") || 
  10402. Index: src/memberdef.h
  10403. ===================================================================
  10404. RCS file: /usr/local/cvs/tools/doxygen/src/memberdef.h,v
  10405. retrieving revision 1.1.1.6
  10406. retrieving revision 1.3
  10407. diff -b -c -b -c -r1.1.1.6 -r1.3
  10408. *** src/memberdef.h    7 Feb 2002 23:10:18 -0000    1.1.1.6
  10409. --- src/memberdef.h    7 Feb 2002 23:29:26 -0000    1.3
  10410. ***************
  10411. *** 318,323 ****
  10412. --- 318,327 ----
  10413.       // disable copying of member defs
  10414.       MemberDef(const MemberDef &);
  10415.       MemberDef &operator=(const MemberDef &);
  10416. + #ifdef RSA_EXTENSIONS
  10417. +     bool isHidden() const;
  10418. + #endif
  10419.   };
  10420.   
  10421.   #endif
  10422. Index: src/membergroup.cpp
  10423. ===================================================================
  10424. RCS file: /usr/local/cvs/tools/doxygen/src/membergroup.cpp,v
  10425. retrieving revision 1.1.1.8
  10426. retrieving revision 1.4
  10427. diff -b -c -b -c -r1.1.1.8 -r1.4
  10428. *** src/membergroup.cpp    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10429. --- src/membergroup.cpp    7 Feb 2002 23:29:26 -0000    1.4
  10430. ***************
  10431. *** 1,6 ****
  10432.   /******************************************************************************
  10433.    *
  10434. !  * 
  10435.    *
  10436.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10437.    *
  10438. --- 1,6 ----
  10439.   /******************************************************************************
  10440.    *
  10441. !  * $Id$
  10442.    *
  10443.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10444.    *
  10445. Index: src/membergroup.h
  10446. ===================================================================
  10447. RCS file: /usr/local/cvs/tools/doxygen/src/membergroup.h,v
  10448. retrieving revision 1.1.1.8
  10449. retrieving revision 1.6
  10450. diff -b -c -b -c -r1.1.1.8 -r1.6
  10451. *** src/membergroup.h    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10452. --- src/membergroup.h    7 Feb 2002 23:29:26 -0000    1.6
  10453. ***************
  10454. *** 1,6 ****
  10455.   /******************************************************************************
  10456.    *
  10457. !  * 
  10458.    *
  10459.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10460.    *
  10461. --- 1,6 ----
  10462.   /******************************************************************************
  10463.    *
  10464. !  * $Id$
  10465.    *
  10466.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10467.    *
  10468. Index: src/memberlist.cpp
  10469. ===================================================================
  10470. RCS file: /usr/local/cvs/tools/doxygen/src/memberlist.cpp,v
  10471. retrieving revision 1.1.1.8
  10472. retrieving revision 1.5
  10473. diff -b -c -b -c -r1.1.1.8 -r1.5
  10474. *** src/memberlist.cpp    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10475. --- src/memberlist.cpp    7 Feb 2002 23:29:26 -0000    1.5
  10476. ***************
  10477. *** 1,6 ****
  10478.   /******************************************************************************
  10479.    *
  10480. !  * 
  10481.    *
  10482.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10483.    *
  10484. --- 1,6 ----
  10485.   /******************************************************************************
  10486.    *
  10487. !  * $Id$
  10488.    *
  10489.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10490.    *
  10491. Index: src/memberlist.h
  10492. ===================================================================
  10493. RCS file: /usr/local/cvs/tools/doxygen/src/memberlist.h,v
  10494. retrieving revision 1.1.1.8
  10495. retrieving revision 1.4
  10496. diff -b -c -b -c -r1.1.1.8 -r1.4
  10497. *** src/memberlist.h    7 Feb 2002 23:10:18 -0000    1.1.1.8
  10498. --- src/memberlist.h    7 Feb 2002 23:29:26 -0000    1.4
  10499. ***************
  10500. *** 1,6 ****
  10501.   /******************************************************************************
  10502.    *
  10503. !  * 
  10504.    *
  10505.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10506.    *
  10507. --- 1,6 ----
  10508.   /******************************************************************************
  10509.    *
  10510. !  * $Id$
  10511.    *
  10512.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10513.    *
  10514. Index: src/membername.cpp
  10515. ===================================================================
  10516. RCS file: /usr/local/cvs/tools/doxygen/src/membername.cpp,v
  10517. retrieving revision 1.1.1.8
  10518. retrieving revision 1.4
  10519. diff -b -c -b -c -r1.1.1.8 -r1.4
  10520. *** src/membername.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10521. --- src/membername.cpp    7 Feb 2002 23:29:26 -0000    1.4
  10522. ***************
  10523. *** 1,6 ****
  10524.   /******************************************************************************
  10525.    *
  10526. !  * 
  10527.    *
  10528.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10529.    *
  10530. --- 1,6 ----
  10531.   /******************************************************************************
  10532.    *
  10533. !  * $Id$
  10534.    *
  10535.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10536.    *
  10537. Index: src/membername.h
  10538. ===================================================================
  10539. RCS file: /usr/local/cvs/tools/doxygen/src/membername.h,v
  10540. retrieving revision 1.1.1.8
  10541. retrieving revision 1.4
  10542. diff -b -c -b -c -r1.1.1.8 -r1.4
  10543. *** src/membername.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10544. --- src/membername.h    7 Feb 2002 23:29:26 -0000    1.4
  10545. ***************
  10546. *** 1,6 ****
  10547.   /******************************************************************************
  10548.    *
  10549. !  * 
  10550.    *
  10551.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10552.    *
  10553. --- 1,6 ----
  10554.   /******************************************************************************
  10555.    *
  10556. !  * $Id$
  10557.    *
  10558.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10559.    *
  10560. Index: src/message.cpp
  10561. ===================================================================
  10562. RCS file: /usr/local/cvs/tools/doxygen/src/message.cpp,v
  10563. retrieving revision 1.1.1.8
  10564. retrieving revision 1.4
  10565. diff -b -c -b -c -r1.1.1.8 -r1.4
  10566. *** src/message.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10567. --- src/message.cpp    7 Feb 2002 23:29:26 -0000    1.4
  10568. ***************
  10569. *** 1,6 ****
  10570.   /******************************************************************************
  10571.    *
  10572. !  * 
  10573.    *
  10574.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10575.    *
  10576. --- 1,6 ----
  10577.   /******************************************************************************
  10578.    *
  10579. !  * $Id$
  10580.    *
  10581.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10582.    *
  10583. Index: src/message.h
  10584. ===================================================================
  10585. RCS file: /usr/local/cvs/tools/doxygen/src/message.h,v
  10586. retrieving revision 1.1.1.8
  10587. retrieving revision 1.4
  10588. diff -b -c -b -c -r1.1.1.8 -r1.4
  10589. *** src/message.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10590. --- src/message.h    7 Feb 2002 23:29:26 -0000    1.4
  10591. ***************
  10592. *** 1,6 ****
  10593.   /******************************************************************************
  10594.    *
  10595. !  * 
  10596.    *
  10597.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10598.    *
  10599. --- 1,6 ----
  10600.   /******************************************************************************
  10601.    *
  10602. !  * $Id$
  10603.    *
  10604.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10605.    *
  10606. Index: src/namespacedef.cpp
  10607. ===================================================================
  10608. RCS file: /usr/local/cvs/tools/doxygen/src/namespacedef.cpp,v
  10609. retrieving revision 1.1.1.8
  10610. retrieving revision 1.6
  10611. diff -b -c -b -c -r1.1.1.8 -r1.6
  10612. *** src/namespacedef.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10613. --- src/namespacedef.cpp    7 Feb 2002 23:29:26 -0000    1.6
  10614. ***************
  10615. *** 1,6 ****
  10616.   /******************************************************************************
  10617.    *
  10618. !  * 
  10619.    *
  10620.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10621.    *
  10622. --- 1,6 ----
  10623.   /******************************************************************************
  10624.    *
  10625. !  * $Id$
  10626.    *
  10627.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10628.    *
  10629. Index: src/namespacedef.h
  10630. ===================================================================
  10631. RCS file: /usr/local/cvs/tools/doxygen/src/namespacedef.h,v
  10632. retrieving revision 1.1.1.8
  10633. retrieving revision 1.5
  10634. diff -b -c -b -c -r1.1.1.8 -r1.5
  10635. *** src/namespacedef.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10636. --- src/namespacedef.h    7 Feb 2002 23:29:26 -0000    1.5
  10637. ***************
  10638. *** 1,6 ****
  10639.   /******************************************************************************
  10640.    *
  10641. !  * 
  10642.    *
  10643.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10644.    *
  10645. --- 1,6 ----
  10646.   /******************************************************************************
  10647.    *
  10648. !  * $Id$
  10649.    *
  10650.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10651.    *
  10652. Index: src/outputgen.cpp
  10653. ===================================================================
  10654. RCS file: /usr/local/cvs/tools/doxygen/src/outputgen.cpp,v
  10655. retrieving revision 1.1.1.8
  10656. retrieving revision 1.4
  10657. diff -b -c -b -c -r1.1.1.8 -r1.4
  10658. *** src/outputgen.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10659. --- src/outputgen.cpp    7 Feb 2002 23:29:26 -0000    1.4
  10660. ***************
  10661. *** 1,6 ****
  10662.   /******************************************************************************
  10663.    *
  10664. !  * 
  10665.    *
  10666.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10667.    *
  10668. --- 1,6 ----
  10669.   /******************************************************************************
  10670.    *
  10671. !  * $Id$
  10672.    *
  10673.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10674.    *
  10675. Index: src/outputgen.h
  10676. ===================================================================
  10677. RCS file: /usr/local/cvs/tools/doxygen/src/outputgen.h,v
  10678. retrieving revision 1.1.1.8
  10679. retrieving revision 1.6
  10680. diff -b -c -b -c -r1.1.1.8 -r1.6
  10681. *** src/outputgen.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10682. --- src/outputgen.h    7 Feb 2002 23:29:26 -0000    1.6
  10683. ***************
  10684. *** 1,6 ****
  10685.   /******************************************************************************
  10686.    *
  10687. !  * 
  10688.    *
  10689.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10690.    *
  10691. --- 1,6 ----
  10692.   /******************************************************************************
  10693.    *
  10694. !  * $Id$
  10695.    *
  10696.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10697.    *
  10698. Index: src/outputlist.cpp
  10699. ===================================================================
  10700. RCS file: /usr/local/cvs/tools/doxygen/src/outputlist.cpp,v
  10701. retrieving revision 1.1.1.8
  10702. retrieving revision 1.5
  10703. diff -b -c -b -c -r1.1.1.8 -r1.5
  10704. *** src/outputlist.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10705. --- src/outputlist.cpp    7 Feb 2002 23:29:26 -0000    1.5
  10706. ***************
  10707. *** 1,6 ****
  10708.   /******************************************************************************
  10709.    *
  10710. !  * 
  10711.    *
  10712.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10713.    *
  10714. --- 1,6 ----
  10715.   /******************************************************************************
  10716.    *
  10717. !  * $Id$
  10718.    *
  10719.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10720.    *
  10721. Index: src/outputlist.h
  10722. ===================================================================
  10723. RCS file: /usr/local/cvs/tools/doxygen/src/outputlist.h,v
  10724. retrieving revision 1.1.1.8
  10725. retrieving revision 1.6
  10726. diff -b -c -b -c -r1.1.1.8 -r1.6
  10727. *** src/outputlist.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10728. --- src/outputlist.h    7 Feb 2002 23:29:26 -0000    1.6
  10729. ***************
  10730. *** 1,6 ****
  10731.   /******************************************************************************
  10732.    *
  10733. !  * 
  10734.    *
  10735.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10736.    *
  10737. --- 1,6 ----
  10738.   /******************************************************************************
  10739.    *
  10740. !  * $Id$
  10741.    *
  10742.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10743.    *
  10744. Index: src/packagedef.cpp
  10745. ===================================================================
  10746. RCS file: /usr/local/cvs/tools/doxygen/src/packagedef.cpp,v
  10747. retrieving revision 1.1.1.8
  10748. retrieving revision 1.5
  10749. diff -b -c -b -c -r1.1.1.8 -r1.5
  10750. *** src/packagedef.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10751. --- src/packagedef.cpp    7 Feb 2002 23:29:26 -0000    1.5
  10752. ***************
  10753. *** 1,6 ****
  10754.   /******************************************************************************
  10755.    *
  10756. !  * 
  10757.    *
  10758.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10759.    *
  10760. --- 1,6 ----
  10761.   /******************************************************************************
  10762.    *
  10763. !  * $Id$
  10764.    *
  10765.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10766.    *
  10767. Index: src/packagedef.h
  10768. ===================================================================
  10769. RCS file: /usr/local/cvs/tools/doxygen/src/packagedef.h,v
  10770. retrieving revision 1.1.1.8
  10771. retrieving revision 1.4
  10772. diff -b -c -b -c -r1.1.1.8 -r1.4
  10773. *** src/packagedef.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10774. --- src/packagedef.h    7 Feb 2002 23:29:26 -0000    1.4
  10775. ***************
  10776. *** 1,6 ****
  10777.   /******************************************************************************
  10778.    *
  10779. !  * 
  10780.    *
  10781.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10782.    *
  10783. --- 1,6 ----
  10784.   /******************************************************************************
  10785.    *
  10786. !  * $Id$
  10787.    *
  10788.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10789.    *
  10790. Index: src/page.h
  10791. ===================================================================
  10792. RCS file: /usr/local/cvs/tools/doxygen/src/page.h,v
  10793. retrieving revision 1.1.1.8
  10794. retrieving revision 1.4
  10795. diff -b -c -b -c -r1.1.1.8 -r1.4
  10796. *** src/page.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10797. --- src/page.h    7 Feb 2002 23:29:26 -0000    1.4
  10798. ***************
  10799. *** 1,6 ****
  10800.   /******************************************************************************
  10801.    *
  10802. !  * 
  10803.    *
  10804.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10805.    *
  10806. --- 1,6 ----
  10807.   /******************************************************************************
  10808.    *
  10809. !  * $Id$
  10810.    *
  10811.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10812.    *
  10813. Index: src/pre.h
  10814. ===================================================================
  10815. RCS file: /usr/local/cvs/tools/doxygen/src/pre.h,v
  10816. retrieving revision 1.1.1.8
  10817. retrieving revision 1.4
  10818. diff -b -c -b -c -r1.1.1.8 -r1.4
  10819. *** src/pre.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10820. --- src/pre.h    7 Feb 2002 23:29:26 -0000    1.4
  10821. ***************
  10822. *** 1,6 ****
  10823.   /******************************************************************************
  10824.    *
  10825. !  * 
  10826.    *
  10827.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10828.    *
  10829. --- 1,6 ----
  10830.   /******************************************************************************
  10831.    *
  10832. !  * $Id$
  10833.    *
  10834.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10835.    *
  10836. Index: src/qtbc.h
  10837. ===================================================================
  10838. RCS file: /usr/local/cvs/tools/doxygen/src/qtbc.h,v
  10839. retrieving revision 1.1.1.8
  10840. retrieving revision 1.4
  10841. diff -b -c -b -c -r1.1.1.8 -r1.4
  10842. *** src/qtbc.h    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10843. --- src/qtbc.h    7 Feb 2002 23:29:26 -0000    1.4
  10844. ***************
  10845. *** 1,6 ****
  10846.   /******************************************************************************
  10847.    *
  10848. !  * 
  10849.    *
  10850.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10851.    *
  10852. --- 1,6 ----
  10853.   /******************************************************************************
  10854.    *
  10855. !  * $Id$
  10856.    *
  10857.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10858.    *
  10859. Index: src/reflist.cpp
  10860. ===================================================================
  10861. RCS file: /usr/local/cvs/tools/doxygen/src/reflist.cpp,v
  10862. retrieving revision 1.1.1.8
  10863. retrieving revision 1.4
  10864. diff -b -c -b -c -r1.1.1.8 -r1.4
  10865. *** src/reflist.cpp    7 Feb 2002 23:10:19 -0000    1.1.1.8
  10866. --- src/reflist.cpp    7 Feb 2002 23:29:26 -0000    1.4
  10867. ***************
  10868. *** 1,6 ****
  10869.   /******************************************************************************
  10870.    *
  10871. !  * 
  10872.    *
  10873.    *
  10874.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10875. --- 1,6 ----
  10876.   /******************************************************************************
  10877.    *
  10878. !  * $Id$
  10879.    *
  10880.    *
  10881.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10882. Index: src/reflist.h
  10883. ===================================================================
  10884. RCS file: /usr/local/cvs/tools/doxygen/src/reflist.h,v
  10885. retrieving revision 1.1.1.8
  10886. retrieving revision 1.4
  10887. diff -b -c -b -c -r1.1.1.8 -r1.4
  10888. *** src/reflist.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  10889. --- src/reflist.h    7 Feb 2002 23:29:26 -0000    1.4
  10890. ***************
  10891. *** 1,6 ****
  10892.   /******************************************************************************
  10893.    *
  10894. !  * 
  10895.    *
  10896.    *
  10897.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10898. --- 1,6 ----
  10899.   /******************************************************************************
  10900.    *
  10901. !  * $Id$
  10902.    *
  10903.    *
  10904.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10905. Index: src/rtfgen.cpp
  10906. ===================================================================
  10907. RCS file: /usr/local/cvs/tools/doxygen/src/rtfgen.cpp,v
  10908. retrieving revision 1.1.1.8
  10909. retrieving revision 1.4
  10910. diff -b -c -b -c -r1.1.1.8 -r1.4
  10911. *** src/rtfgen.cpp    7 Feb 2002 23:10:20 -0000    1.1.1.8
  10912. --- src/rtfgen.cpp    7 Feb 2002 23:29:26 -0000    1.4
  10913. ***************
  10914. *** 1,6 ****
  10915.   /******************************************************************************
  10916.    *
  10917. !  * 
  10918.    *
  10919.    * Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
  10920.    *
  10921. --- 1,6 ----
  10922.   /******************************************************************************
  10923.    *
  10924. !  * $Id$
  10925.    *
  10926.    * Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
  10927.    *
  10928. Index: src/rtfgen.h
  10929. ===================================================================
  10930. RCS file: /usr/local/cvs/tools/doxygen/src/rtfgen.h,v
  10931. retrieving revision 1.1.1.8
  10932. retrieving revision 1.5
  10933. diff -b -c -b -c -r1.1.1.8 -r1.5
  10934. *** src/rtfgen.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  10935. --- src/rtfgen.h    7 Feb 2002 23:29:26 -0000    1.5
  10936. ***************
  10937. *** 1,6 ****
  10938.   /******************************************************************************
  10939.    *
  10940. !  * 
  10941.    *
  10942.    * Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
  10943.    *
  10944. --- 1,6 ----
  10945.   /******************************************************************************
  10946.    *
  10947. !  * $Id$
  10948.    *
  10949.    * Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
  10950.    *
  10951. Index: src/scanner.h
  10952. ===================================================================
  10953. RCS file: /usr/local/cvs/tools/doxygen/src/scanner.h,v
  10954. retrieving revision 1.1.1.8
  10955. retrieving revision 1.4
  10956. diff -b -c -b -c -r1.1.1.8 -r1.4
  10957. *** src/scanner.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  10958. --- src/scanner.h    7 Feb 2002 23:29:26 -0000    1.4
  10959. ***************
  10960. *** 1,6 ****
  10961.   /******************************************************************************
  10962.    *
  10963. !  * 
  10964.    *
  10965.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10966.    *
  10967. --- 1,6 ----
  10968.   /******************************************************************************
  10969.    *
  10970. !  * $Id$
  10971.    *
  10972.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  10973.    *
  10974. Index: src/scanner.l
  10975. ===================================================================
  10976. RCS file: /usr/local/cvs/tools/doxygen/src/scanner.l,v
  10977. retrieving revision 1.1.1.8
  10978. retrieving revision 1.7
  10979. diff -b -c -b -c -r1.1.1.8 -r1.7
  10980. *** src/scanner.l    7 Feb 2002 23:10:20 -0000    1.1.1.8
  10981. --- src/scanner.l    5 Mar 2002 01:22:26 -0000    1.7
  10982. ***************
  10983. *** 154,159 ****
  10984. --- 154,162 ----
  10985.   static QCString         memberGroupRelates;
  10986.   static QCString         memberGroupInside;
  10987.   
  10988. + #ifdef RSA_EXTENSIONS
  10989. + static int              lastInvariantDocContext;
  10990. + #endif 
  10991.   
  10992.   //-----------------------------------------------------------------------------
  10993.   
  10994. ***************
  10995. *** 587,592 ****
  10996. --- 590,600 ----
  10997.   %x    PackageName
  10998.   %x    GetCallType
  10999.   
  11000. + /* #ifdef RSA_EXTENSIONS */
  11001. + %x    DocInvariant
  11002. + %x    DocInvariantLine
  11003. + /* #endif */
  11004.   %%
  11005.   
  11006.   <*>\x06[^\x06]*\x06            { // new file
  11007. ***************
  11008. *** 3997,4002 ****
  11009. --- 4005,4062 ----
  11010.                           current->doc+="\\internal"; 
  11011.                         }
  11012.                       }
  11013. + <LineDoc,AfterDocLine>{CMD}("invariant"|"pre"|"post")    { 
  11014. +                                           if (!Config_getBool("INVARIANT_DOCS"))
  11015. +                                           {
  11016. +                         lastInvariantDocContext = YY_START;
  11017. +                                             BEGIN( DocInvariantLine );
  11018. +                                           }
  11019. +                                           else
  11020. +                                           {
  11021. +                         current->doc+="\\";
  11022. +                         current->doc+=yytext+1; 
  11023. +                       }
  11024. +                     }
  11025. + <Doc,JavaDoc,ExampleDoc,PageDoc,ClassDoc,AfterDoc>{CMD}("invariant"|"pre"|"post") { 
  11026. +                                           if (!Config_getBool("INVARIANT_DOCS"))
  11027. +                                           {
  11028. +                         lastInvariantDocContext = YY_START;
  11029. +                                             BEGIN( DocInvariant );
  11030. +                                           }
  11031. +                                           else
  11032. +                                           { 
  11033. +                         current->doc+="\\";
  11034. +                         current->doc+=yytext+1; 
  11035. +                       }
  11036. +                     }
  11037. + <DocInvariant>{SECTIONCMD}        {
  11038. +                     yyless(0);
  11039. +                       BEGIN( lastInvariantDocContext );
  11040. +                     }
  11041. + <DocInvariant>.                
  11042. + <DocInvariant>\n            { yyLineNr++; }
  11043. + <DocInvariant>"/*"|"//"            
  11044. + <DocInvariant>"*/"            {
  11045. +                       unput('/');
  11046. +                       unput('*');
  11047. +                         BEGIN( lastInvariantDocContext );
  11048. +                       }
  11049. + <DocInvariantLine>.                
  11050. + <DocInvariantLine>\n            {
  11051. +                         yyLineNr++;
  11052. +                       unput('\n');
  11053. +                         BEGIN( lastInvariantDocContext );
  11054. +                       }
  11055.   <DocInternal>.                
  11056.   <DocInternal>\n                { yyLineNr++; }
  11057.   <DocInternal>"/*"|"//"            
  11058. Index: src/searchindex.cpp
  11059. ===================================================================
  11060. RCS file: /usr/local/cvs/tools/doxygen/src/searchindex.cpp,v
  11061. retrieving revision 1.1.1.8
  11062. retrieving revision 1.4
  11063. diff -b -c -b -c -r1.1.1.8 -r1.4
  11064. *** src/searchindex.cpp    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11065. --- src/searchindex.cpp    7 Feb 2002 23:29:26 -0000    1.4
  11066. ***************
  11067. *** 1,6 ****
  11068.   /******************************************************************************
  11069.    *
  11070. !  * 
  11071.    *
  11072.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11073.    *
  11074. --- 1,6 ----
  11075.   /******************************************************************************
  11076.    *
  11077. !  * $Id$
  11078.    *
  11079.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11080.    *
  11081. Index: src/searchindex.h
  11082. ===================================================================
  11083. RCS file: /usr/local/cvs/tools/doxygen/src/searchindex.h,v
  11084. retrieving revision 1.1.1.8
  11085. retrieving revision 1.4
  11086. diff -b -c -b -c -r1.1.1.8 -r1.4
  11087. *** src/searchindex.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11088. --- src/searchindex.h    7 Feb 2002 23:29:26 -0000    1.4
  11089. ***************
  11090. *** 1,6 ****
  11091.   /******************************************************************************
  11092.    *
  11093. !  * 
  11094.    *
  11095.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11096.    *
  11097. --- 1,6 ----
  11098.   /******************************************************************************
  11099.    *
  11100. !  * $Id$
  11101.    *
  11102.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11103.    *
  11104. Index: src/section.h
  11105. ===================================================================
  11106. RCS file: /usr/local/cvs/tools/doxygen/src/section.h,v
  11107. retrieving revision 1.1.1.8
  11108. retrieving revision 1.4
  11109. diff -b -c -b -c -r1.1.1.8 -r1.4
  11110. *** src/section.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11111. --- src/section.h    7 Feb 2002 23:29:26 -0000    1.4
  11112. ***************
  11113. *** 1,6 ****
  11114.   /******************************************************************************
  11115.    *
  11116. !  * 
  11117.    *
  11118.    *
  11119.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11120. --- 1,6 ----
  11121.   /******************************************************************************
  11122.    *
  11123. !  * $Id$
  11124.    *
  11125.    *
  11126.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11127. Index: src/sortdict.h
  11128. ===================================================================
  11129. RCS file: /usr/local/cvs/tools/doxygen/src/sortdict.h,v
  11130. retrieving revision 1.1.1.8
  11131. retrieving revision 1.5
  11132. diff -b -c -b -c -r1.1.1.8 -r1.5
  11133. *** src/sortdict.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11134. --- src/sortdict.h    7 Feb 2002 23:29:27 -0000    1.5
  11135. ***************
  11136. *** 1,6 ****
  11137.   /******************************************************************************
  11138.    *
  11139. !  * 
  11140.    *
  11141.    *
  11142.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11143. --- 1,6 ----
  11144.   /******************************************************************************
  11145.    *
  11146. !  * $Id$
  11147.    *
  11148.    *
  11149.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11150. Index: src/suffixtree.cpp
  11151. ===================================================================
  11152. RCS file: /usr/local/cvs/tools/doxygen/src/suffixtree.cpp,v
  11153. retrieving revision 1.1.1.8
  11154. retrieving revision 1.4
  11155. diff -b -c -b -c -r1.1.1.8 -r1.4
  11156. *** src/suffixtree.cpp    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11157. --- src/suffixtree.cpp    7 Feb 2002 23:29:27 -0000    1.4
  11158. ***************
  11159. *** 1,6 ****
  11160.   /******************************************************************************
  11161.    *
  11162. !  * 
  11163.    *
  11164.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11165.    *
  11166. --- 1,6 ----
  11167.   /******************************************************************************
  11168.    *
  11169. !  * $Id$
  11170.    *
  11171.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11172.    *
  11173. Index: src/suffixtree.h
  11174. ===================================================================
  11175. RCS file: /usr/local/cvs/tools/doxygen/src/suffixtree.h,v
  11176. retrieving revision 1.1.1.8
  11177. retrieving revision 1.4
  11178. diff -b -c -b -c -r1.1.1.8 -r1.4
  11179. *** src/suffixtree.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11180. --- src/suffixtree.h    7 Feb 2002 23:29:27 -0000    1.4
  11181. ***************
  11182. *** 1,6 ****
  11183.   /******************************************************************************
  11184.    *
  11185. !  * 
  11186.    *
  11187.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11188.    *
  11189. --- 1,6 ----
  11190.   /******************************************************************************
  11191.    *
  11192. !  * $Id$
  11193.    *
  11194.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11195.    *
  11196. Index: src/tagreader.cpp
  11197. ===================================================================
  11198. RCS file: /usr/local/cvs/tools/doxygen/src/tagreader.cpp,v
  11199. retrieving revision 1.1.1.8
  11200. retrieving revision 1.5
  11201. diff -b -c -b -c -r1.1.1.8 -r1.5
  11202. *** src/tagreader.cpp    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11203. --- src/tagreader.cpp    7 Feb 2002 23:29:27 -0000    1.5
  11204. ***************
  11205. *** 1,6 ****
  11206.   /******************************************************************************
  11207.    *
  11208. !  * 
  11209.    *
  11210.    *
  11211.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11212. --- 1,6 ----
  11213.   /******************************************************************************
  11214.    *
  11215. !  * $Id$
  11216.    *
  11217.    *
  11218.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11219. Index: src/tagreader.h
  11220. ===================================================================
  11221. RCS file: /usr/local/cvs/tools/doxygen/src/tagreader.h,v
  11222. retrieving revision 1.1.1.8
  11223. retrieving revision 1.4
  11224. diff -b -c -b -c -r1.1.1.8 -r1.4
  11225. *** src/tagreader.h    7 Feb 2002 23:10:20 -0000    1.1.1.8
  11226. --- src/tagreader.h    7 Feb 2002 23:29:27 -0000    1.4
  11227. ***************
  11228. *** 1,6 ****
  11229.   /******************************************************************************
  11230.    *
  11231. !  * 
  11232.    *
  11233.    *
  11234.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11235. --- 1,6 ----
  11236.   /******************************************************************************
  11237.    *
  11238. !  * $Id$
  11239.    *
  11240.    *
  11241.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11242. Index: src/translator_cn.h
  11243. ===================================================================
  11244. RCS file: /usr/local/cvs/tools/doxygen/src/translator_cn.h,v
  11245. retrieving revision 1.1.1.8
  11246. retrieving revision 1.4
  11247. diff -b -c -b -c -r1.1.1.8 -r1.4
  11248. *** src/translator_cn.h    7 Feb 2002 23:10:21 -0000    1.1.1.8
  11249. --- src/translator_cn.h    7 Feb 2002 23:29:27 -0000    1.4
  11250. ***************
  11251. *** 1,6 ****
  11252.   /******************************************************************************
  11253.    *
  11254. !  * 
  11255.    *
  11256.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11257.    *
  11258. --- 1,6 ----
  11259.   /******************************************************************************
  11260.    *
  11261. !  * $Id$
  11262.    *
  11263.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11264.    *
  11265. Index: src/translator_en.h
  11266. ===================================================================
  11267. RCS file: /usr/local/cvs/tools/doxygen/src/translator_en.h,v
  11268. retrieving revision 1.1.1.5
  11269. retrieving revision 1.5
  11270. diff -b -c -b -c -r1.1.1.5 -r1.5
  11271. *** src/translator_en.h    7 Feb 2002 23:10:21 -0000    1.1.1.5
  11272. --- src/translator_en.h    28 Feb 2002 10:11:55 -0000    1.5
  11273. ***************
  11274. *** 166,172 ****
  11275. --- 166,176 ----
  11276.        *  compounds or files (see the \\group command).
  11277.        */
  11278.       virtual QCString trModules()
  11279. + #ifdef RSA_EXTENSIONS
  11280. +     { return "Sections"; }
  11281. + #else //!RSA_EXTENSIONS
  11282.       { return "Modules"; }
  11283. + #endif //RSA_EXTENSIONS
  11284.       
  11285.       /*! This is put above each page as a link to the class hierarchy */
  11286.       virtual QCString trClassHierarchy()
  11287. ***************
  11288. *** 187,193 ****
  11289. --- 191,201 ----
  11290.       
  11291.       /*! This is put above each page as a link to the list of documented files */
  11292.       virtual QCString trFileList()
  11293. + #ifdef RSA_EXTENSIONS
  11294. +     { return "Header Files"; }
  11295. + #else //RSA_EXTENSIONS
  11296.       { return "File List"; }
  11297. + #endif //RSA_EXTENSIONS
  11298.   
  11299.       /*! This is put above each page as a link to the list of all verbatim headers */
  11300.       virtual QCString trHeaderFiles()
  11301. ***************
  11302. *** 339,345 ****
  11303. --- 347,357 ----
  11304.   
  11305.       /*! This is an introduction to the page with the list of class/file groups */
  11306.       virtual QCString trModulesDescription()
  11307. + #ifdef RSA_EXTENSIONS
  11308. +     { return "Here is a list of all sections:"; }
  11309. + #else //!RSA_EXTENSIONS
  11310.       { return "Here is a list of all modules:"; }
  11311. + #endif //RSA_EXTENSIONS
  11312.   
  11313.       /*! This sentences is used in the annotated class/file lists if no brief
  11314.        * description is given. 
  11315. ***************
  11316. *** 358,364 ****
  11317. --- 370,380 ----
  11318.        * index of all groups.
  11319.        */
  11320.       virtual QCString trModuleIndex()
  11321. + #ifdef RSA_EXTENSIONS
  11322. +     { return "Reference Section Index"; }
  11323. + #else //!RSA_EXTENSIONS
  11324.       { return "Module Index"; }
  11325. + #endif //RSA_EXTENSIONS
  11326.   
  11327.       /*! This is used in LaTeX as the title of the chapter with the 
  11328.        * class hierarchy.
  11329. ***************
  11330. *** 391,397 ****
  11331. --- 407,417 ----
  11332.        *  the documentation of all groups.
  11333.        */
  11334.       virtual QCString trModuleDocumentation()
  11335. + #ifdef RSA_EXTENSIONS
  11336. +     { return "Reference Section Documentation"; }
  11337. + #else //!RSA_EXTENSIONS
  11338.       { return "Module Documentation"; }
  11339. + #endif //RSA_EXTENSIONS
  11340.   
  11341.       /*! This is used in LaTeX as the title of the chapter containing
  11342.        *  the documentation of all classes, structs and unions.
  11343. Index: src/translator_fi.h
  11344. ===================================================================
  11345. RCS file: /usr/local/cvs/tools/doxygen/src/translator_fi.h,v
  11346. retrieving revision 1.1.1.8
  11347. retrieving revision 1.5
  11348. diff -b -c -b -c -r1.1.1.8 -r1.5
  11349. *** src/translator_fi.h    7 Feb 2002 23:10:21 -0000    1.1.1.8
  11350. --- src/translator_fi.h    7 Feb 2002 23:29:27 -0000    1.5
  11351. ***************
  11352. *** 1,6 ****
  11353.   /******************************************************************************
  11354.    *
  11355. !  * 
  11356.    *
  11357.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11358.    *
  11359. --- 1,6 ----
  11360.   /******************************************************************************
  11361.    *
  11362. !  * $Id$
  11363.    *
  11364.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11365.    *
  11366. Index: src/translator_fr.h
  11367. ===================================================================
  11368. RCS file: /usr/local/cvs/tools/doxygen/src/translator_fr.h,v
  11369. retrieving revision 1.1.1.8
  11370. retrieving revision 1.5
  11371. diff -b -c -b -c -r1.1.1.8 -r1.5
  11372. *** src/translator_fr.h    7 Feb 2002 23:10:21 -0000    1.1.1.8
  11373. --- src/translator_fr.h    7 Feb 2002 23:29:27 -0000    1.5
  11374. ***************
  11375. *** 1,6 ****
  11376.   /******************************************************************************
  11377.    *
  11378. !  * 
  11379.    *
  11380.    * Copyright (C) 1997-2001 by Dimitri van Heesch.
  11381.    *
  11382. --- 1,6 ----
  11383.   /******************************************************************************
  11384.    *
  11385. !  * $Id$
  11386.    *
  11387.    * Copyright (C) 1997-2001 by Dimitri van Heesch.
  11388.    *
  11389. Index: src/translator_hu.h
  11390. ===================================================================
  11391. RCS file: /usr/local/cvs/tools/doxygen/src/translator_hu.h,v
  11392. retrieving revision 1.1.1.8
  11393. retrieving revision 1.4
  11394. diff -b -c -b -c -r1.1.1.8 -r1.4
  11395. *** src/translator_hu.h    7 Feb 2002 23:10:22 -0000    1.1.1.8
  11396. --- src/translator_hu.h    7 Feb 2002 23:29:27 -0000    1.4
  11397. ***************
  11398. *** 1,6 ****
  11399.   /******************************************************************************
  11400.    *
  11401. !  * 
  11402.    *
  11403.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11404.    *
  11405. --- 1,6 ----
  11406.   /******************************************************************************
  11407.    *
  11408. !  * $Id$
  11409.    *
  11410.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11411.    *
  11412. Index: src/translator_jp.h
  11413. ===================================================================
  11414. RCS file: /usr/local/cvs/tools/doxygen/src/translator_jp.h,v
  11415. retrieving revision 1.1.1.8
  11416. retrieving revision 1.6
  11417. diff -b -c -b -c -r1.1.1.8 -r1.6
  11418. *** src/translator_jp.h    7 Feb 2002 23:10:22 -0000    1.1.1.8
  11419. --- src/translator_jp.h    7 Feb 2002 23:29:27 -0000    1.6
  11420. ***************
  11421. *** 1,6 ****
  11422.   /******************************************************************************
  11423. !  *
  11424. !  * 
  11425.    *
  11426.    * Copyright (C) 1997-2000 by Dimitri van Heesch.
  11427.    *
  11428. --- 1,5 ----
  11429.   /******************************************************************************
  11430. !  * $Id$
  11431.    *
  11432.    * Copyright (C) 1997-2000 by Dimitri van Heesch.
  11433.    *
  11434. ***************
  11435. *** 28,33 ****
  11436. --- 27,34 ----
  11437.   
  11438.   #ifndef TRANSLATOR_JP_H
  11439.   #define TRANSLATOR_JP_H
  11440. + #include "translator_adapter.h"
  11441.   
  11442.   class TranslatorJapanese : public TranslatorAdapter_1_2_13
  11443.   {
  11444. Index: src/translator_nl.h
  11445. ===================================================================
  11446. RCS file: /usr/local/cvs/tools/doxygen/src/translator_nl.h,v
  11447. retrieving revision 1.1.1.8
  11448. retrieving revision 1.5
  11449. diff -b -c -b -c -r1.1.1.8 -r1.5
  11450. *** src/translator_nl.h    7 Feb 2002 23:10:22 -0000    1.1.1.8
  11451. --- src/translator_nl.h    7 Feb 2002 23:29:27 -0000    1.5
  11452. ***************
  11453. *** 1,6 ****
  11454.   /******************************************************************************
  11455.    *
  11456. !  * 
  11457.    *
  11458.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11459.    *
  11460. --- 1,6 ----
  11461.   /******************************************************************************
  11462.    *
  11463. !  * $Id$
  11464.    *
  11465.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11466.    *
  11467. Index: src/translator_no.h
  11468. ===================================================================
  11469. RCS file: /usr/local/cvs/tools/doxygen/src/translator_no.h,v
  11470. retrieving revision 1.1.1.8
  11471. retrieving revision 1.4
  11472. diff -b -c -b -c -r1.1.1.8 -r1.4
  11473. *** src/translator_no.h    7 Feb 2002 23:10:22 -0000    1.1.1.8
  11474. --- src/translator_no.h    7 Feb 2002 23:29:27 -0000    1.4
  11475. ***************
  11476. *** 1,6 ****
  11477.   /******************************************************************************
  11478.    *
  11479. !  * 
  11480.    *
  11481.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11482.    *
  11483. --- 1,6 ----
  11484.   /******************************************************************************
  11485.    *
  11486. !  * $Id$
  11487.    *
  11488.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11489.    *
  11490. Index: src/translator_pl.h
  11491. ===================================================================
  11492. RCS file: /usr/local/cvs/tools/doxygen/src/translator_pl.h,v
  11493. retrieving revision 1.1.1.8
  11494. retrieving revision 1.4
  11495. diff -b -c -b -c -r1.1.1.8 -r1.4
  11496. *** src/translator_pl.h    7 Feb 2002 23:10:23 -0000    1.1.1.8
  11497. --- src/translator_pl.h    7 Feb 2002 23:29:27 -0000    1.4
  11498. ***************
  11499. *** 1,6 ****
  11500.   /******************************************************************************
  11501.    *
  11502. !  * 
  11503.    *
  11504.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11505.    *
  11506. --- 1,6 ----
  11507.   /******************************************************************************
  11508.    *
  11509. !  * $Id$
  11510.    *
  11511.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11512.    *
  11513. Index: src/translator_pt.h
  11514. ===================================================================
  11515. RCS file: /usr/local/cvs/tools/doxygen/src/translator_pt.h,v
  11516. retrieving revision 1.1.1.8
  11517. retrieving revision 1.6
  11518. diff -b -c -b -c -r1.1.1.8 -r1.6
  11519. Index: src/translator_ro.h
  11520. ===================================================================
  11521. RCS file: /usr/local/cvs/tools/doxygen/src/translator_ro.h,v
  11522. retrieving revision 1.1.1.8
  11523. retrieving revision 1.4
  11524. diff -b -c -b -c -r1.1.1.8 -r1.4
  11525. *** src/translator_ro.h    7 Feb 2002 23:10:23 -0000    1.1.1.8
  11526. --- src/translator_ro.h    7 Feb 2002 23:29:27 -0000    1.4
  11527. ***************
  11528. *** 1,6 ****
  11529.   /******************************************************************************
  11530.    *
  11531. !  * 
  11532.    *
  11533.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11534.    *
  11535. --- 1,6 ----
  11536.   /******************************************************************************
  11537.    *
  11538. !  * $Id$
  11539.    *
  11540.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11541.    *
  11542. Index: src/translator_se.h
  11543. ===================================================================
  11544. RCS file: /usr/local/cvs/tools/doxygen/src/translator_se.h,v
  11545. retrieving revision 1.1.1.8
  11546. retrieving revision 1.5
  11547. diff -b -c -b -c -r1.1.1.8 -r1.5
  11548. *** src/translator_se.h    7 Feb 2002 23:10:23 -0000    1.1.1.8
  11549. --- src/translator_se.h    7 Feb 2002 23:29:27 -0000    1.5
  11550. ***************
  11551. *** 1,6 ****
  11552.   /******************************************************************************
  11553.    *
  11554. !  * 
  11555.    *
  11556.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11557.    *
  11558. --- 1,6 ----
  11559.   /******************************************************************************
  11560.    *
  11561. !  * $Id$
  11562.    *
  11563.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11564.    *
  11565. Index: src/translator_si.h
  11566. ===================================================================
  11567. RCS file: /usr/local/cvs/tools/doxygen/src/translator_si.h,v
  11568. retrieving revision 1.1.1.8
  11569. retrieving revision 1.5
  11570. diff -b -c -b -c -r1.1.1.8 -r1.5
  11571. *** src/translator_si.h    7 Feb 2002 23:10:23 -0000    1.1.1.8
  11572. --- src/translator_si.h    7 Feb 2002 23:29:27 -0000    1.5
  11573. ***************
  11574. *** 1,6 ****
  11575.   /******************************************************************************
  11576.    *
  11577. !  * 
  11578.    *
  11579.    * Copyright (C) 1997-2000 by Dimitri van Heesch.
  11580.    *
  11581. --- 1,6 ----
  11582.   /******************************************************************************
  11583.    *
  11584. !  * $Id$
  11585.    *
  11586.    * Copyright (C) 1997-2000 by Dimitri van Heesch.
  11587.    *
  11588. Index: src/util.cpp
  11589. ===================================================================
  11590. RCS file: /usr/local/cvs/tools/doxygen/src/util.cpp,v
  11591. retrieving revision 1.1.1.8
  11592. retrieving revision 1.15
  11593. diff -b -c -b -c -r1.1.1.8 -r1.15
  11594. *** src/util.cpp    7 Feb 2002 23:10:24 -0000    1.1.1.8
  11595. --- src/util.cpp    23 Mar 2002 00:53:22 -0000    1.15
  11596. ***************
  11597. *** 1,6 ****
  11598.   /*****************************************************************************
  11599.    *
  11600. !  * 
  11601.    *
  11602.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11603.    *
  11604. --- 1,6 ----
  11605.   /*****************************************************************************
  11606.    *
  11607. !  * $Id$
  11608.    *
  11609.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11610.    *
  11611. ***************
  11612. *** 880,890 ****
  11613.       {
  11614.         QCString anchor;
  11615.         if (groupId==-1)
  11616.           anchor.sprintf("%c%d",id,count++);
  11617.         else
  11618.           anchor.sprintf("%c%d_%d",id,groupId,count++);
  11619.         if (cd) anchor.prepend(escapeCharsInString(cd->name(),FALSE));
  11620. !       //printf("Member %s anchor %s\n",md->name().data(),anchor.data());
  11621.         md->setAnchor(anchor);
  11622.       }
  11623.     }
  11624. --- 880,895 ----
  11625.       {
  11626.         QCString anchor;
  11627.         if (groupId==-1)
  11628. + #ifdef RSA_EXTENSIONS
  11629. +         // create anchor with function name
  11630. +     anchor=id+md->name(); 
  11631. + #else /* !RSA_EXTENSIONS */
  11632.           anchor.sprintf("%c%d",id,count++);
  11633. + #endif /* RSA_EXTENSIONS */
  11634.         else
  11635.       anchor.sprintf("%c%d_%d",id,groupId,count++);
  11636.         if (cd) anchor.prepend(escapeCharsInString(cd->name(),FALSE));
  11637. !       //printf("Member %s anchor %s\n",md->name(),anchor.data());
  11638.         md->setAnchor(anchor);
  11639.       }
  11640.     }
  11641. ***************
  11642. *** 2812,2817 ****
  11643. --- 2817,2852 ----
  11644.     result = substitute(result,"$doxygenversion",versionString);
  11645.     result = substitute(result,"$projectname",Config_getString("PROJECT_NAME"));
  11646.     result = substitute(result,"$projectnumber",Config_getString("PROJECT_NUMBER"));
  11647. + #ifdef RSA_EXTENSIONS
  11648. +   /* added in some additional variables which can be used in the header 
  11649. +    * and footer
  11650. +    */
  11651. +   result = substitute(result,"$productname",Config_getString("PRODUCT_NAME"));
  11652. +   result = substitute(result,"$producttag",Config_getString("PRODUCT_TAG"));
  11653. +   result = substitute(result,"$productpartnumber",
  11654. +                                 Config_getString("PRODUCT_PARTNUMBER"));
  11655. +   result = substitute(result,"$productdocversion",
  11656. +                                 Config_getString("PRODUCT_DOCVERSION"));
  11657. +   /* to enable 'generic' header and footers with per-docset custom style
  11658. +    * sheets we need to be able to change the name of the style sheet in
  11659. +    * the header file
  11660. +    */
  11661. +   if (Config_getString("HTML_STYLESHEET").isEmpty())
  11662. +     result = substitute(result,"$stylesheet","doxygen.css");
  11663. +   else
  11664. +     result = substitute(result,"$stylesheet",
  11665. +                     Config_getString("HTML_STYLESHEET"));
  11666. +   result = substitute(result,"$productlogo",
  11667. +                                 Config_getString("PRODUCT_LOGO"));
  11668. +   result = substitute(result,"$productcopyright",
  11669. +                                 Config_getString("PRODUCT_COPYRIGHT"));
  11670. + #endif /* RSA_EXTENSIONS */
  11671.     return result;
  11672.   }
  11673.       
  11674. ***************
  11675. *** 3621,3624 ****
  11676. --- 3656,3695 ----
  11677.     }
  11678.   }
  11679.   
  11680. + #ifdef RSA_EXTENSIONS
  11681. + bool isEntryHidden(const char *entryName, const char *ilConfVar, 
  11682. +                    const char *elConfVar, bool isFile)
  11683. + {
  11684. +   QStrList &il = Config_getList(ilConfVar);
  11685. +   QStrList &el = Config_getList(elConfVar); 
  11686. +   bool isCaseSensitive = TRUE;
  11687. + #if defined(_WIN32) // windows
  11688. +   if (isFile)
  11689. +   {
  11690. +     isCaseSensitive = FALSE;
  11691. +   }
  11692. + #endif
  11693. +   /* Scan a list of patterns for entries to be included. */
  11694. +   char *s = il.first();
  11695. +   bool isHidden = TRUE;
  11696. +   while (s && isHidden)
  11697. +   {
  11698. +     QRegExp re(s, isCaseSensitive, TRUE);
  11699. +     isHidden = (re.match(entryName) == -1);
  11700. +     s = il.next();
  11701. +   }
  11702.   
  11703. +   /* Scan a list of patterns for entries to be excluded. */
  11704. +   s = el.first();
  11705. +   while (s && !isHidden)
  11706. +   {
  11707. +       QRegExp re(s, isCaseSensitive, TRUE);
  11708. +       isHidden = (re.match(entryName) != -1);
  11709. +       s = el.next();
  11710. +   }
  11711. +   return isHidden;
  11712. + }
  11713. + #endif
  11714. Index: src/util.h
  11715. ===================================================================
  11716. RCS file: /usr/local/cvs/tools/doxygen/src/util.h,v
  11717. retrieving revision 1.1.1.8
  11718. retrieving revision 1.7
  11719. diff -b -c -b -c -r1.1.1.8 -r1.7
  11720. *** src/util.h    7 Feb 2002 23:10:24 -0000    1.1.1.8
  11721. --- src/util.h    7 Feb 2002 23:29:27 -0000    1.7
  11722. ***************
  11723. *** 1,6 ****
  11724.   /******************************************************************************
  11725.    *
  11726. !  * 
  11727.    *
  11728.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11729.    *
  11730. --- 1,6 ----
  11731.   /******************************************************************************
  11732.    *
  11733. !  * $Id$
  11734.    *
  11735.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11736.    *
  11737. ***************
  11738. *** 176,181 ****
  11739. --- 176,187 ----
  11740.                              TagInfo *tagInfo=0
  11741.                             );
  11742.   QCString escapeCharsInString(const char *name,bool allowDots);
  11743. + #ifdef RSA_EXTENSIONS
  11744. + bool isEntryHidden(const char *entryName, const char *ilConfVar, 
  11745. +                    const char *elConfVar, bool isFile);
  11746. + #endif
  11747.   
  11748.   #endif
  11749.   
  11750. Index: src/version.h
  11751. ===================================================================
  11752. RCS file: /usr/local/cvs/tools/doxygen/src/version.h,v
  11753. retrieving revision 1.1.1.8
  11754. retrieving revision 1.4
  11755. diff -b -c -b -c -r1.1.1.8 -r1.4
  11756. *** src/version.h    7 Feb 2002 23:10:24 -0000    1.1.1.8
  11757. --- src/version.h    7 Feb 2002 23:29:27 -0000    1.4
  11758. ***************
  11759. *** 1,6 ****
  11760.   /******************************************************************************
  11761.    *
  11762. !  * 
  11763.    *
  11764.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11765.    *
  11766. --- 1,6 ----
  11767.   /******************************************************************************
  11768.    *
  11769. !  * $Id$
  11770.    *
  11771.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11772.    *
  11773. Index: src/xmlgen.cpp
  11774. ===================================================================
  11775. RCS file: /usr/local/cvs/tools/doxygen/src/xmlgen.cpp,v
  11776. retrieving revision 1.1.1.8
  11777. retrieving revision 1.6
  11778. diff -b -c -b -c -r1.1.1.8 -r1.6
  11779. *** src/xmlgen.cpp    7 Feb 2002 23:10:24 -0000    1.1.1.8
  11780. --- src/xmlgen.cpp    7 Feb 2002 23:29:28 -0000    1.6
  11781. ***************
  11782. *** 1,6 ****
  11783.   /******************************************************************************
  11784.    *
  11785. !  * 
  11786.    *
  11787.    *
  11788.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11789. --- 1,6 ----
  11790.   /******************************************************************************
  11791.    *
  11792. !  * $Id$
  11793.    *
  11794.    *
  11795.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11796. Index: src/xmlgen.h
  11797. ===================================================================
  11798. RCS file: /usr/local/cvs/tools/doxygen/src/xmlgen.h,v
  11799. retrieving revision 1.1.1.8
  11800. retrieving revision 1.4
  11801. diff -b -c -b -c -r1.1.1.8 -r1.4
  11802. *** src/xmlgen.h    7 Feb 2002 23:10:24 -0000    1.1.1.8
  11803. --- src/xmlgen.h    7 Feb 2002 23:29:28 -0000    1.4
  11804. ***************
  11805. *** 1,6 ****
  11806.   /******************************************************************************
  11807.    *
  11808. !  * 
  11809.    *
  11810.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11811.    *
  11812. --- 1,6 ----
  11813.   /******************************************************************************
  11814.    *
  11815. !  * $Id$
  11816.    *
  11817.    * Copyright (C) 1997-2002 by Dimitri van Heesch.
  11818.    *
  11819.