Git Product home page Git Product logo

Comments (3)

derf avatar derf commented on July 19, 2024

I can't reproduce the segfault, but I do get the error messages. Looks like another case of weird memory management in feh/getopt... I'll see what I can do about it.

from feh.

livibetter avatar livibetter commented on July 19, 2024

I think I found the problem... and the fix is so simple:

diff --git a/src/options.c b/src/options.c
index b5a95dd..052f8a8 100644
--- a/src/options.c
+++ b/src/options.c
@@ -794,7 +794,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)
                add_file_to_filelist_recursively(".", FILELIST_FIRST);

        /* So that we can safely be called again */
-       optind = 1;
+       optind = 0;
        return;
 }

from manpage:

A program that scans multiple argument vectors, or [snip], or changes the value of POSIXLY_CORRECT between scans, must reinitialize getopt() by resetting optind to 0, rather than the traditional value of 1. (Resetting to 0 forces the invocation of an internal initialization routine that rechecks POSIXLY_CORRECT and checks for GNU extensions in optstring.)

A small suggestion, "--debug" should be a special case, when loading theme options, there are some D() used, but they will never print anything out since "--debug" at least have to wait until theme options are processed. There should be a quick check on debug option at very early stage.

from feh.

derf avatar derf commented on July 19, 2024

Ooh. Yeah, that's looking good. Looks like I missed that while reading the documentation...
Thanks!

As for --debug: Right now it's useless for debugging getopt stuff, yeah. But I don't want yet another special case, I think I'll create a compile time switch for that (make debug=2 or similar). That way, you can really debug everything.

from feh.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.