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