-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add string replace function for C generator #908
Conversation
Looks good to me |
char* baseNameMod=malloc(strlen({{baseName}})+2); //baseNameMod free not yet implemented | ||
snprintf(baseNameMod,strlen(baseName)+3,"%s%s%s","{",{{baseName}},"}"); | ||
{{#paramName}} | ||
{{#isLong}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add Integer handling later with another PR/commit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please stick to the conventions used in the other files? e.g. camel Case, space between +-*/ operations, space between coma, no underscore in variable names, clear variable names ("in" is not very clear), space after and before "=", "-=" and "+=", also please remove the goto
Also the code looks very complicated, is there any way to simplify this?
I will make the changes required for camelcase and spaces. The code you mentioned about goto and in, is replaced completely. Please check the commit @ |
Thank you @zhemant Please make smaller commits in the future, it is really hard to see all the changes when one commit has hundreds of lines in changes and makes multiple different changes. |
About code format/style, we can later leverage |
I did use "uncrustify in the past, but if you prefer ClangFormat then we can use that as well. Uncrustify: http://uncrustify.sourceforge.net/ |
@PowerOfCreation we can support both and let the user choose which one they want to use. |
The elm issue reported by Travis is not related to this PR. |
* add c generator (1st commit) * udpate c model template * more fixes * Add string replace function for C generator (#908) * Add string replace function for C generator * Fixed replacement for variable only * Fixed problem for different datatypes of paramName * store return value of modified path * set str_replace variable to be same as original variable. * [C] Fixed coding style issues * add uncrustify support * update petstore sampmles * add Locale.ROOT * added test-api-client.c to include test cases for strReplace function * added header and body mustache and made changes to ClibcurlClientCodegen.java accordingly * [C] renamed functions in apiKey.c.mustache according to apiKey.h.mustache * [C] changes in import statement * renamed apiKey.h to keyValuePair.h and made necessary changes in the codes * changed apiKey.c according to keyValuePair.h * fixed import statement in model * added code for generating struct in model-header.mustache * added typedef struct for model-headers * updated sample/client/petstore/C * fix locale * [C] Function addition and modification of major structs (#1020) * added readme file * fixed parameters in api headers functions * made changes to add readme file and typemapping of array to list * fixed header import statement in apiheader files * modified struct of model type in model header * updated sample * modified README file * updated sample * parse from json function added * modified struct and create function * added include for model * modified parsefromjson function * modified struct and create function for more datatypes * added mapping for date-time and modified model import return statement * modified function parameters * modified include statement * fix function in api body * updated sample * clean up files * regenerate c petstore * fix error message when setting uncrustify * add version to uncrustify usage * added uncrustify rules in mustache (#1021) * added uncrustify rules in mustache * updated sample * updated same with crustify * updated sample with uncrusitfy 0.67 * modified readme about uncrustify requirements * fixed mistakes in readme mustache and sample readme * fix file import, unformat c petstore * fix import in test files * fix model with complexType * fix free string, format the code using uncrustify * modified sample * Modified sample to check * return type issue figured,more to do to fix it * minor fixes to make complete code compile * Compiling sample code. Store has issue with map. * comment out test file generation which is not req. * commented operation name * fixed various issues responsible for code not compiling * test mustache temporary for testing * updated sample add,del,getbyid works, formparam yet to do * few minor changes and added fuction to add different header and content type in apiClient * added code to upload image * added function to test upload image * fixes for fileupload and various other small things * fixed issue due to xml produces * updated sample:working sample add,del,find,uploading:tocheck , * added free functions for variable where memory is allocated * rename imagecontainer struct to filestruct * fix issues with if functions for all list types * fixed issue with primitive return type in header file * updated sample w/ free functions * update c samples * remove corrupted file * update samples * test cases for APIs * added function to generate test cases from new mustache * mustache files for manual written test cases * added default content type to application/json * fixed issue with primitive return type * fixed issue with bool type * added file apiKey.c * updated sample tested * update c environment variable (#1090) * add mapping for map (#1103) * minor update * revert list paramter check to NULL * modified return type for primitive(map - list_t)in mustache * removed apiClient_free as it was two times * updated sample * fixed issue of path parameter when string less than parameter len * fixed issue for form paramters upload * added checks to avoid seg faults * updated sample * added check for null value in form parameter * modified size of mallocs to dynamic * updated sample * Add C Petstore to Travis CI (#1136) * setup CI for C petstore * update bash script permission * unit petapi test * fixed memory leak in strReplace and apiClient Functions * modified return value for status generation * added enum defination and functions to convert and back from string * added function for enum and made changes to free memory at necessary places * added datatype handling for enum * fixes regarding memory allocation and free * updated mustache of test files * updated sample * renamed manually written test files * manual test file for pet * cleaned common api test file for time being * renamed test files * added renamed test files to build test bash * added file null pointer check * modified uncrusitfy rules * minor update to c templates (#1161) * [C] Fixed enum function declaration (#1178) * fixed enum function declaration in model headers * fixed enum declaration in header files for sample * disable curl verbose mode and add response code variable * added response code variable in apiClient struct * modified apiClient header and source file * added response and removed commented code api-body mustache * removed commented code from model-body mustache * removed unnecessary print statements from test mustache * updated sample * fixed spaces issue * Better format in C templates (#1224) * better format in the c template * minor format fix * [C] changed base url from static to dynamic (#1225) * changed basePath from static to dynamic * removed unnecessary header declaration * updated sample * [C] added curl version check in CMakeList.txt (#1248) * added curl version check in CMakeList.txt * Updated README for latest curl version * [C] Major changes to keyValuePair function (#1282) * removed static declaration * changed static declaration * added difference for string and non string * added more code for different function for string and non string * fix issue with param name * change value in keyPairValue to void * fixed issue of difference in function name cases * added support for non char parameters in api * fix issue of map return data * modified manual-StoreAPI map return data handling * fix minor mistake * added support for map and changed code to support value of keyvaluepair as char and other * updated sample * fixed api header declarations * change map declaration in header * resolved issues realted to map data handling * fix minor issues * add N at start if enum variable starts with number * override toParamName method * changed paramters to paramName from baseName * change variables in apibody from baseName to paramName * Skip test file generation (#1459) * skip test file generation * skip overwriting CMakeLists.txt
* add c generator (1st commit) * udpate c model template * more fixes * Add string replace function for C generator (OpenAPITools#908) * Add string replace function for C generator * Fixed replacement for variable only * Fixed problem for different datatypes of paramName * store return value of modified path * set str_replace variable to be same as original variable. * [C] Fixed coding style issues * add uncrustify support * update petstore sampmles * add Locale.ROOT * added test-api-client.c to include test cases for strReplace function * added header and body mustache and made changes to ClibcurlClientCodegen.java accordingly * [C] renamed functions in apiKey.c.mustache according to apiKey.h.mustache * [C] changes in import statement * renamed apiKey.h to keyValuePair.h and made necessary changes in the codes * changed apiKey.c according to keyValuePair.h * fixed import statement in model * added code for generating struct in model-header.mustache * added typedef struct for model-headers * updated sample/client/petstore/C * fix locale * [C] Function addition and modification of major structs (OpenAPITools#1020) * added readme file * fixed parameters in api headers functions * made changes to add readme file and typemapping of array to list * fixed header import statement in apiheader files * modified struct of model type in model header * updated sample * modified README file * updated sample * parse from json function added * modified struct and create function * added include for model * modified parsefromjson function * modified struct and create function for more datatypes * added mapping for date-time and modified model import return statement * modified function parameters * modified include statement * fix function in api body * updated sample * clean up files * regenerate c petstore * fix error message when setting uncrustify * add version to uncrustify usage * added uncrustify rules in mustache (OpenAPITools#1021) * added uncrustify rules in mustache * updated sample * updated same with crustify * updated sample with uncrusitfy 0.67 * modified readme about uncrustify requirements * fixed mistakes in readme mustache and sample readme * fix file import, unformat c petstore * fix import in test files * fix model with complexType * fix free string, format the code using uncrustify * modified sample * Modified sample to check * return type issue figured,more to do to fix it * minor fixes to make complete code compile * Compiling sample code. Store has issue with map. * comment out test file generation which is not req. * commented operation name * fixed various issues responsible for code not compiling * test mustache temporary for testing * updated sample add,del,getbyid works, formparam yet to do * few minor changes and added fuction to add different header and content type in apiClient * added code to upload image * added function to test upload image * fixes for fileupload and various other small things * fixed issue due to xml produces * updated sample:working sample add,del,find,uploading:tocheck , * added free functions for variable where memory is allocated * rename imagecontainer struct to filestruct * fix issues with if functions for all list types * fixed issue with primitive return type in header file * updated sample w/ free functions * update c samples * remove corrupted file * update samples * test cases for APIs * added function to generate test cases from new mustache * mustache files for manual written test cases * added default content type to application/json * fixed issue with primitive return type * fixed issue with bool type * added file apiKey.c * updated sample tested * update c environment variable (OpenAPITools#1090) * add mapping for map (OpenAPITools#1103) * minor update * revert list paramter check to NULL * modified return type for primitive(map - list_t)in mustache * removed apiClient_free as it was two times * updated sample * fixed issue of path parameter when string less than parameter len * fixed issue for form paramters upload * added checks to avoid seg faults * updated sample * added check for null value in form parameter * modified size of mallocs to dynamic * updated sample * Add C Petstore to Travis CI (OpenAPITools#1136) * setup CI for C petstore * update bash script permission * unit petapi test * fixed memory leak in strReplace and apiClient Functions * modified return value for status generation * added enum defination and functions to convert and back from string * added function for enum and made changes to free memory at necessary places * added datatype handling for enum * fixes regarding memory allocation and free * updated mustache of test files * updated sample * renamed manually written test files * manual test file for pet * cleaned common api test file for time being * renamed test files * added renamed test files to build test bash * added file null pointer check * modified uncrusitfy rules * minor update to c templates (OpenAPITools#1161) * [C] Fixed enum function declaration (OpenAPITools#1178) * fixed enum function declaration in model headers * fixed enum declaration in header files for sample * disable curl verbose mode and add response code variable * added response code variable in apiClient struct * modified apiClient header and source file * added response and removed commented code api-body mustache * removed commented code from model-body mustache * removed unnecessary print statements from test mustache * updated sample * fixed spaces issue * Better format in C templates (OpenAPITools#1224) * better format in the c template * minor format fix * [C] changed base url from static to dynamic (OpenAPITools#1225) * changed basePath from static to dynamic * removed unnecessary header declaration * updated sample * [C] added curl version check in CMakeList.txt (OpenAPITools#1248) * added curl version check in CMakeList.txt * Updated README for latest curl version * [C] Major changes to keyValuePair function (OpenAPITools#1282) * removed static declaration * changed static declaration * added difference for string and non string * added more code for different function for string and non string * fix issue with param name * change value in keyPairValue to void * fixed issue of difference in function name cases * added support for non char parameters in api * fix issue of map return data * modified manual-StoreAPI map return data handling * fix minor mistake * added support for map and changed code to support value of keyvaluepair as char and other * updated sample * fixed api header declarations * change map declaration in header * resolved issues realted to map data handling * fix minor issues * add N at start if enum variable starts with number * override toParamName method * changed paramters to paramName from baseName * change variables in apibody from baseName to paramName * Skip test file generation (OpenAPITools#1459) * skip test file generation * skip overwriting CMakeLists.txt
PR checklist
./bin/
to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.sh
and./bin/security/{LANG}-petstore.sh
if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\
.master
,3.3.x
,4.0.x
. Default:master
.Description of the PR
I have written a replace function to replace basename with parameter name in C Generator