[ 
https://issues.apache.org/jira/browse/THRIFT-4941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16928008#comment-16928008
 ] 

Jens Geyer commented on THRIFT-4941:
------------------------------------


I tried this, and it works for me. My testcase:

 

 * delete gen-cpp folder

 * call {{thrift -gen cpp ThriftTest.thrift}}

 * open a file in the newly generated gen-cpp folder and modify it manually

 * now run {{thrift -gen cpp ThriftTest.thrift}} again

 * check the file if the manual edits are still there => NO.

 

That looks pretty much as it should. What am I doing wrong?

> thrift compiler will not auto update gen-cpp directory
> ------------------------------------------------------
>
>                 Key: THRIFT-4941
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4941
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler
>    Affects Versions: 0.13.0
>         Environment: 
>            Reporter: pengzhouhu
>            Priority: Major
>             Fix For: 0.13.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
>     thrift compiler will not auto update the files in the gen-cpp directory.
>      when we call  t_generator::generate_program() and init_generator() in 
> compiler\cpp\src\thrift\generate\t_generator.cc ,  
>      'MKDIR' macro will ignore EEXIST, and throw on any other error, this 
> will not give any reponse print on terminal. we used to  update and generate 
> the .h .cpp files in the whole directory.
>      1. delete the old folder and create new one, generate the file again.
>      2. throw errno directly and exit the terminal.  
>    
>      what`s your opinion about this?
>      
>     code details:
> {code:java}
> // ignore EEXIST, throw on any other error
> #ifdef _WIN32
> #define MKDIR(x) { int r = _mkdir(x); if (r == -1 && errno != EEXIST) { throw 
> (std::string(x) + ": ") + strerror(errno); } }
> #else
> #define MKDIR(x) { int r = mkdir(x, S_IRWXU | S_IRWXG | S_IRWXO); if (r == -1 
> && errno != EEXIST) { throw (std::string(x) + ": ") + strerror(errno); } }
> #endif
> {code}
> Thanks.
> Zhouhu.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to