Comments (8)
Thanks for letting me know the differences between BSD license versions and the compatibility between them and GPLv2. I will check the getopt implementation from FreeBSD and see if it is possible to replace the current implementation.
from argtable3.
thanks))))))
from argtable3.
@merlokk, I've re-organized the project, which now has the original source files, not the generated amalgamation distribution. You can try two ways to use your preferred getopt
:
- Add
#define ARG_REPLACE_GETOPT 0
, so that compiler will skip the embeddedgetopt
and use the systemgetopt
. - Replace the
getopt
files in thesrc
directory, and make sure the build environment can use your own version to build the library.
from argtable3.
On my system, #define ARG_REPLACE_GETOPT 0
breaks argtable since getopt_long.c
calls a getopt_internal
function which is not available (though getopt
and getopt_long
are).
from argtable3.
@Kerl13 , this mechanism is meant to use your own getopt
implementation. If your own getopt
has some issues, I'm afraid that you need to figure out how to resolve it. Maybe you can use getopt
implementations from other system, instead of using the one in your system.
from argtable3.
Thank you for your answer,
Sorry I think my comment was not very clear.
I meant that when I disable ARG_REPLACE_GETOPT
, then argtable
calls a getopt_internal
function (in src/getopt_long.c
) that is not defined anymore withing argtable
so it expects this function to be defined in my system getopt
.
This is what looks suspicious to me: I would assume my system getopt
library to expose a getopt
and a getopt_long
function but not a getopt_internal
function. Why is argtable
calling this function and not getopt
or getopt_long
directly?
But I might be completely missing the point… If you tell me that when I disable ARG_REPLACE_GETOPT
I am expected to provide a getopt_internal
replacement function I'm okay with this answer :)
from argtable3.
By the way I had argtable using my system getopt
successfully by just removing the src/getopt.h
and src/getopt_long.c
files from the tools/build
script so this is nice!
from argtable3.
@Kerl13 I think you did find a problem in this ARG_REPLACE_GETOPT
mechanism... I'm glad that you've found a solution, which is better than this ARG_REPLACE_GETOPT
trick. I will check this issue and I may use your solution to replace the current one. Thanks!
from argtable3.
Related Issues (20)
- Why _static for static libaries HOT 3
- Add doc/examples to explain how to implement sub-commands
- Enhance CMake scripts to take advantage of vcpkg's manifest mechanism HOT 2
- clang vs gcc attributes HOT 3
- Static analyser: NULL pointer passing. HOT 3
- Use CodeQL to scan security vulnerabilities
- Table entries with empty glossary strings may displayed. HOT 2
- What is the recommended way to get all the args that have not been matched HOT 2
- index out of bound HOT 1
- arg_print_formatted_ds does not reset column count when reaching newline HOT 2
- Minus symbol stripped from negative numbers HOT 2
- Missing include install path in CMake config export HOT 2
- CMake not including header on static build HOT 1
- `-Wpedantic` should be used conditonally on GCC version HOT 7
- Add project to meson WrapDB HOT 6
- Expose arg_basename function as part of the API HOT 2
- Documentation requeset HOT 1
- Multi-command example has compiler warnings caused by missing the "const" qualifier
- A question mark can't be used as a short option. HOT 1
- Erroneous substring matching of long options. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from argtable3.