EDITOR: subsidiary program 'emacs -nw' not found [duplicate]

Multi tool use
Multi tool use












0
















This question already has an answer here:




  • Export EDITOR with a flag

    1 answer




I have set up



$ echo $EDITOR
emacs -nw


I was wondering why it is not found here, and how I can solve the problem? Thanks.



$ sdiff -o sdiff.out f1 f2
1 2 3 | 2 3 4
%e1
sdiff: subsidiary program 'emacs -nw' not found


I don't know why an option in $EDITOR is a problem, and where it is required in sdiff source code? I guess it is here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n459



prog = getenv ("EDITOR");
if (prog)
editor_program = prog;


and here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1035



execvp (editor_program, (char **) argv);


or http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1018 and http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1024. I am not sure what the program is doing.



For comparison, the following works perfectly fine:



$ eval "$EDITOR"









share|improve this question















marked as duplicate by Jeff Schaller, Thomas, Stephen Kitt, G-Man, Isaac Nov 18 '18 at 21:53


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.























    0
















    This question already has an answer here:




    • Export EDITOR with a flag

      1 answer




    I have set up



    $ echo $EDITOR
    emacs -nw


    I was wondering why it is not found here, and how I can solve the problem? Thanks.



    $ sdiff -o sdiff.out f1 f2
    1 2 3 | 2 3 4
    %e1
    sdiff: subsidiary program 'emacs -nw' not found


    I don't know why an option in $EDITOR is a problem, and where it is required in sdiff source code? I guess it is here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n459



    prog = getenv ("EDITOR");
    if (prog)
    editor_program = prog;


    and here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1035



    execvp (editor_program, (char **) argv);


    or http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1018 and http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1024. I am not sure what the program is doing.



    For comparison, the following works perfectly fine:



    $ eval "$EDITOR"









    share|improve this question















    marked as duplicate by Jeff Schaller, Thomas, Stephen Kitt, G-Man, Isaac Nov 18 '18 at 21:53


    This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.





















      0












      0








      0









      This question already has an answer here:




      • Export EDITOR with a flag

        1 answer




      I have set up



      $ echo $EDITOR
      emacs -nw


      I was wondering why it is not found here, and how I can solve the problem? Thanks.



      $ sdiff -o sdiff.out f1 f2
      1 2 3 | 2 3 4
      %e1
      sdiff: subsidiary program 'emacs -nw' not found


      I don't know why an option in $EDITOR is a problem, and where it is required in sdiff source code? I guess it is here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n459



      prog = getenv ("EDITOR");
      if (prog)
      editor_program = prog;


      and here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1035



      execvp (editor_program, (char **) argv);


      or http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1018 and http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1024. I am not sure what the program is doing.



      For comparison, the following works perfectly fine:



      $ eval "$EDITOR"









      share|improve this question

















      This question already has an answer here:




      • Export EDITOR with a flag

        1 answer




      I have set up



      $ echo $EDITOR
      emacs -nw


      I was wondering why it is not found here, and how I can solve the problem? Thanks.



      $ sdiff -o sdiff.out f1 f2
      1 2 3 | 2 3 4
      %e1
      sdiff: subsidiary program 'emacs -nw' not found


      I don't know why an option in $EDITOR is a problem, and where it is required in sdiff source code? I guess it is here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n459



      prog = getenv ("EDITOR");
      if (prog)
      editor_program = prog;


      and here http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1035



      execvp (editor_program, (char **) argv);


      or http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1018 and http://git.savannah.gnu.org/cgit/diffutils.git/tree/src/sdiff.c#n1024. I am not sure what the program is doing.



      For comparison, the following works perfectly fine:



      $ eval "$EDITOR"




      This question already has an answer here:




      • Export EDITOR with a flag

        1 answer








      emacs editors diffutils sdiff






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 18 '18 at 14:21







      Tim

















      asked Nov 18 '18 at 13:26









      TimTim

      26.4k75251461




      26.4k75251461




      marked as duplicate by Jeff Schaller, Thomas, Stephen Kitt, G-Man, Isaac Nov 18 '18 at 21:53


      This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









      marked as duplicate by Jeff Schaller, Thomas, Stephen Kitt, G-Man, Isaac Nov 18 '18 at 21:53


      This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
























          1 Answer
          1






          active

          oldest

          votes


















          4














          It's apparent that sdiff attempted to execute a program named exactly emacs -nw, which didn't exist. Your intention was for sdiff to call emacs with an option -nw followed by the file(s).



          The behavior is confirmed by looking at the sdiff source code, where sdiff populates the preferred editor --directly-- into argv[0], which puts the <space><dash>nw together with the emacs. You could also confirm that sdiff is generally working correctly by setting EDITOR=emacs and observing that it opens emacs.



          If you need the option when opening emacs, then my suggestion would be to create a wrapper script:



          $ cat emacs.sh
          #!/bin/sh

          vi "$@"


          Just kidding, of course. You'd use:



          $ cat emacs.sh
          #!/bin/sh

          emacs -nw "$@"


          ... and then set EDITOR=/path/to/that/emacs.sh






          share|improve this answer





















          • 1





            Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

            – filbranden
            Nov 18 '18 at 16:24











          • Small suggestion to use exec when invoking emacs from the script.

            – filbranden
            Nov 18 '18 at 16:25






          • 1





            Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

            – Jeff Schaller
            Nov 18 '18 at 16:32


















          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4














          It's apparent that sdiff attempted to execute a program named exactly emacs -nw, which didn't exist. Your intention was for sdiff to call emacs with an option -nw followed by the file(s).



          The behavior is confirmed by looking at the sdiff source code, where sdiff populates the preferred editor --directly-- into argv[0], which puts the <space><dash>nw together with the emacs. You could also confirm that sdiff is generally working correctly by setting EDITOR=emacs and observing that it opens emacs.



          If you need the option when opening emacs, then my suggestion would be to create a wrapper script:



          $ cat emacs.sh
          #!/bin/sh

          vi "$@"


          Just kidding, of course. You'd use:



          $ cat emacs.sh
          #!/bin/sh

          emacs -nw "$@"


          ... and then set EDITOR=/path/to/that/emacs.sh






          share|improve this answer





















          • 1





            Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

            – filbranden
            Nov 18 '18 at 16:24











          • Small suggestion to use exec when invoking emacs from the script.

            – filbranden
            Nov 18 '18 at 16:25






          • 1





            Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

            – Jeff Schaller
            Nov 18 '18 at 16:32
















          4














          It's apparent that sdiff attempted to execute a program named exactly emacs -nw, which didn't exist. Your intention was for sdiff to call emacs with an option -nw followed by the file(s).



          The behavior is confirmed by looking at the sdiff source code, where sdiff populates the preferred editor --directly-- into argv[0], which puts the <space><dash>nw together with the emacs. You could also confirm that sdiff is generally working correctly by setting EDITOR=emacs and observing that it opens emacs.



          If you need the option when opening emacs, then my suggestion would be to create a wrapper script:



          $ cat emacs.sh
          #!/bin/sh

          vi "$@"


          Just kidding, of course. You'd use:



          $ cat emacs.sh
          #!/bin/sh

          emacs -nw "$@"


          ... and then set EDITOR=/path/to/that/emacs.sh






          share|improve this answer





















          • 1





            Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

            – filbranden
            Nov 18 '18 at 16:24











          • Small suggestion to use exec when invoking emacs from the script.

            – filbranden
            Nov 18 '18 at 16:25






          • 1





            Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

            – Jeff Schaller
            Nov 18 '18 at 16:32














          4












          4








          4







          It's apparent that sdiff attempted to execute a program named exactly emacs -nw, which didn't exist. Your intention was for sdiff to call emacs with an option -nw followed by the file(s).



          The behavior is confirmed by looking at the sdiff source code, where sdiff populates the preferred editor --directly-- into argv[0], which puts the <space><dash>nw together with the emacs. You could also confirm that sdiff is generally working correctly by setting EDITOR=emacs and observing that it opens emacs.



          If you need the option when opening emacs, then my suggestion would be to create a wrapper script:



          $ cat emacs.sh
          #!/bin/sh

          vi "$@"


          Just kidding, of course. You'd use:



          $ cat emacs.sh
          #!/bin/sh

          emacs -nw "$@"


          ... and then set EDITOR=/path/to/that/emacs.sh






          share|improve this answer















          It's apparent that sdiff attempted to execute a program named exactly emacs -nw, which didn't exist. Your intention was for sdiff to call emacs with an option -nw followed by the file(s).



          The behavior is confirmed by looking at the sdiff source code, where sdiff populates the preferred editor --directly-- into argv[0], which puts the <space><dash>nw together with the emacs. You could also confirm that sdiff is generally working correctly by setting EDITOR=emacs and observing that it opens emacs.



          If you need the option when opening emacs, then my suggestion would be to create a wrapper script:



          $ cat emacs.sh
          #!/bin/sh

          vi "$@"


          Just kidding, of course. You'd use:



          $ cat emacs.sh
          #!/bin/sh

          emacs -nw "$@"


          ... and then set EDITOR=/path/to/that/emacs.sh







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 18 '18 at 16:22









          filbranden

          7,80021038




          7,80021038










          answered Nov 18 '18 at 13:56









          Jeff SchallerJeff Schaller

          39.9k1054126




          39.9k1054126








          • 1





            Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

            – filbranden
            Nov 18 '18 at 16:24











          • Small suggestion to use exec when invoking emacs from the script.

            – filbranden
            Nov 18 '18 at 16:25






          • 1





            Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

            – Jeff Schaller
            Nov 18 '18 at 16:32














          • 1





            Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

            – filbranden
            Nov 18 '18 at 16:24











          • Small suggestion to use exec when invoking emacs from the script.

            – filbranden
            Nov 18 '18 at 16:25






          • 1





            Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

            – Jeff Schaller
            Nov 18 '18 at 16:32








          1




          1





          Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

          – filbranden
          Nov 18 '18 at 16:24





          Did you hack my machine??? The former is exactly what emacs.sh has on it!!! 😂😂😂

          – filbranden
          Nov 18 '18 at 16:24













          Small suggestion to use exec when invoking emacs from the script.

          – filbranden
          Nov 18 '18 at 16:25





          Small suggestion to use exec when invoking emacs from the script.

          – filbranden
          Nov 18 '18 at 16:25




          1




          1





          Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

          – Jeff Schaller
          Nov 18 '18 at 16:32





          Indeed, using exec would be a microscopic improvement; one that I noticed only after finding the proposed duplicate. Thanks for the edit!

          – Jeff Schaller
          Nov 18 '18 at 16:32



          iVfvknoElvk45wV,hQ4F3WPLWG3WvDdQsjhhFu wOqxv8MswQO718TeAI mwzicBNlTAEGL9O,zT
          2z,eqeUKHlpsN,fwiyUDQobz1vfXKX4Tx,xz30scOQOs dVd

          Popular posts from this blog

          How to pass form data using jquery Ajax to insert data in database?

          Guess what letter conforming each word

          Run scheduled task as local user group (not BUILTIN)