Hi Emacs
hacker,
I try ebrowse recently
and I find in some cases it doesn't parse the class members correctly.
Here is an example (The
source files are attached: MyBtnDlg.CPP and MyBtnDlg.h):
It parses member of
CAboutDlg incorrectly:
----------------------------------------------------------------------------
class
CAboutDlg:
<--------->
AddButton
<---------> AddToCell
<--------->
AddToCell
<---------> BEGIN_MESSAGE_MAP
<--------->
BEGIN_MESSAGE_MAP <--------->
CAboutDlg
<---------> DECLARE_MESSAGE_MAP
<---------> DelButton
<--------->
DelFromCell
<---------> DoDataExchange
<--------->
HideAll
<---------> OnActivate
<--------->
OnButton4
<---------> OnButtonExtShort
<--------->
OnButtonMinAll
<---------> OnButtonShowAll
<--------->
OnButtonalignme
<---------> OnButtonminme
<--------->
OnButtonshowalign <--------->
OnButtonshowalign2
<--------->
OnCHECKCellMode
<---------> OnCHECKHideDeact
<--------->
OnCHECKPutty
<---------> OnCreate
<--------->
OnDestroy
<---------> OnHotKey
<--------->
OnLButtonDblClk
<---------> OnLButtonDown
<--------->
OnLButtonUp
<---------> OnMBtnDown
<--------->
OnMENUITEMAddButton <--------->
OnMENUITEMAlignButtons
<--------->
OnMENUITEMAlignWin <--------->
OnMENUITEMChangeName
<--------->
OnMENUITEMRemove
<---------> OnMENUITEMShowBehind
<--------->
OnMenuitemAdjustWinPos <--------->
OnMyButtonUp
<--------->
OnPaint
<---------> OnQueryDragIcon
<--------->
OnRADIOAlignStyle1 <--------->
OnRADIOAlignStyle2
<--------->
OnRADIOAlignStyle3 <--------->
OnRButtonDown
<--------->
OnSelchangeTABCell <--------->
OnSelchangeTABList
<--------->
OnSize
<---------> OnSysCommand
<--------->
OnTaskBarCreated
<---------> OnTrayNotify
<--------->
PreTranslateMessage <--------->
RegisterWindowMessage
<---------> ShowAll
class CDialog:
----------------------------------------------------------------------------
You can check the source file MyBtnDlg.cpp.
Actually these member functions do not belong to class CAboutDlg. They
belong to class CMyBtnDlg.
It seem ebrowse is misled by a Windows MFC
marco in CMyBtnDlg.cpp (in line 23): (it is a very general marco in MFC
program)
DECLARE_MESSAGE_MAP()
};
It seem ebrowse is expecting a ";" after the
")".
If I add a ';" here, then ebrowse can parse
the file correctly. Or if I delete this line, ebrowse can parse the file
corrrectly too.
Shall we make some changes to let ebrowse
may robust?
Regards,
Brian