News:

As usual while waiting for the next release - don't forget to check the nightly builds in the forum.

Main Menu

The 12 January 2010 build (6080) is out.

Started by killerbot, January 12, 2010, 07:14:38 PM

Previous topic - Next topic

ollydbg

Quote from: aozima on January 14, 2010, 04:30:55 AM
yes!
the ENABLE is lost!
but the DISABLE is OK!

I dont't know how to ....
I will check this bug. by enable #define PARSERTHREAD_DEBUG_OUTPUT 1.
By the way, I found that you also comes from China, and nice to meet you and your personal site
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

ollydbg

Ok, this bug can be fixed soon. For example:

In the DoParse() function

 else if (token==ParserConsts::kw_typedef)
       {
           if (m_Options.handleTypedefs)
               HandleTypedef();
           else
               SkipToOneOfChars(ParserConsts::semicolonclbrace, true);
           m_Str.Clear();
       }


Then in your code

typedef enum {DISABLE = 0, DISABLE2 = 0, ENABLE = !DISABLE} FunctionalState;

a = DISABLE; // is work
a = ena;

When the Tokenizer meet the first "=" in your statement, it just SKIP to the "}".
That's the reason.

So, I think we can add this  before we handling typedef.

m_Tokenizer.SetState(tsSkipNone);


I will do more testing.

If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

ollydbg

#17
Oh, my God, I found a bug in the Tokenizer::SkipUnWanted.

   // skip the following = or ?
   if(m_State&tsSkipEqual)
   {
       if(c == _T('='))
       {
           if (!SkipToOneOfChars(_T(";}"), true))
               return false;
       }
   }


should be:
   // skip the following = or ?
   if(m_State&tsSkipEqual)
   {
       if(c == _T('='))
       {
           if (!SkipToOneOfChars(_T(",;}"), true))
               return false;
       }
   }


Sorry! That's my fault.

Edit:
So, the problem Re: The 12 January 2010 build (6080) is out. can be solved.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

aozima

Thinks! ollydbg..  is OK now!!!! :lol: :lol:
Sorry for my poor english.

Borr

I have IBPP (http://www.ibpp.org/) and CB. And I want CB to autocomplete names of members of IBPP classes. I have create external tag database for IBPP includes, attached this tags and re-tagged the current cpp-file but autocomplete not works well.


IBPP::/*CodeCompletion work*/Transaction tr = IBPP::/*CodeCompletion*/TransactionFactory();
IBPP::/*CodeCompletion*/Database db = IBPP::/*CodeCompletion*/DatabaseFactory();
IBPP::/*CodeCompletion*/Statement st = IBPP::/*CodeCompletion*/StatementFactory(db, tr);
tr->/*CodeCompletion NOT work*/

ollydbg

Quote from: Borr on January 14, 2010, 07:22:42 AM
I have IBPP (http://www.ibpp.org/) and CB. And I want CB to autocomplete names of members of IBPP classes. I have create external tag database for IBPP includes, attached this tags and re-tagged the current cpp-file but autocomplete not works well.

Hi, sorry I can't fully catch your idea.
Did you use an external tag file?? How do you use them?

What does these code means???

IBPP::/*CodeCompletion work*/Transaction tr = IBPP::/*CodeCompletion*/TransactionFactory();
IBPP::/*CodeCompletion*/Database db = IBPP::/*CodeCompletion*/DatabaseFactory();
IBPP::/*CodeCompletion*/Statement st = IBPP::/*CodeCompletion*/StatementFactory(db, tr);
tr->/*CodeCompletion NOT work*/

??
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Borr

Quote from: ollydbg on January 14, 2010, 07:31:27 AM
Hi, sorry I can't fully catch your idea.
Did you use an external tag file?? How do you use them?

No do not use. I just need codecompletion with IBPP class in C::B

Quote from: ollydbg on January 14, 2010, 07:31:27 AM
What does these code means???

IBPP::/*CodeCompletion work*/Transaction tr = IBPP::/*CodeCompletion*/TransactionFactory();
IBPP::/*CodeCompletion*/Database db = IBPP::/*CodeCompletion*/DatabaseFactory();
IBPP::/*CodeCompletion*/Statement st = IBPP::/*CodeCompletion*/StatementFactory(db, tr);
tr->/*CodeCompletion NOT work*/

??

This code mean that codecompletion not work in 4-th line tr->

koso

And does it works when using operator "." ... i.e. "tr."?

Borr


blueshake

work fine here.
see the screen shot.


[attachment deleted by admin]
Keep low and hear the sadness of little dog.
I fall in love with a girl,but I don't dare to tell her.What should I do?

Borr


blueshake

Quote from: Borr on January 14, 2010, 10:18:41 AM
this not all the list should be more


That is all,because operator overload (such as operator+)will be ignored.
Keep low and hear the sadness of little dog.
I fall in love with a girl,but I don't dare to tell her.What should I do?

Borr

see image - work in codelite

[attachment deleted by admin]

blueshake

I see now.what are you talking is template parse.it is not implemented yet.
Keep low and hear the sadness of little dog.
I fall in love with a girl,but I don't dare to tell her.What should I do?

binom25

Firstly, I want to say "Thank you for Codeblocks".
Secondly, I've downloaded this version and noticed a problem in editor. I don't know where exactly the problem is, but when I'm doing copy and paste a large block code, editor works a bit slowly(it hangs) than early version of Codeblocks. I use Codeblocks in Windows XP 32 bits.