Deutsch   English   Français   Italiano  
<v3vhl0$25r3d$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Janis Papanagnou <janis_papanagnou+ng@hotmail.com>
Newsgroups: comp.lang.c
Subject: Re: Running an editor from ANSI C
Date: Fri, 7 Jun 2024 19:56:47 +0200
Organization: A noiseless patient Spider
Lines: 44
Message-ID: <v3vhl0$25r3d$1@dont-email.me>
References: <v3pge7$uf2i$1@dont-email.me> <v3r2pl$16mtl$1@dont-email.me>
 <v3r7v8$1b57j$1@dont-email.me> <v3rek5$1c4i5$1@dont-email.me>
 <v3rrtm$1e6g8$1@dont-email.me> <v3ru84$1eafb$1@dont-email.me>
 <87o78dzw1a.fsf@nosuchdomain.example.com> <v3te2i$1ms1q$1@dont-email.me>
 <87frtpznoa.fsf@nosuchdomain.example.com> <v3uimm$20jte$3@dont-email.me>
 <871q59yty1.fsf@nosuchdomain.example.com> <v3v03l$22nnp$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 07 Jun 2024 19:56:49 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="d0c5267e754d56cba0404b0da7ae55b5";
	logging-data="2288749"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+HIUs8EDlOeDBpenRrImrv"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
 Thunderbird/45.8.0
Cancel-Lock: sha1:qLeY0uYfXG3E2Zh1CWXB4bqhv5Q=
X-Enigmail-Draft-Status: N1110
In-Reply-To: <v3v03l$22nnp$3@dont-email.me>
Bytes: 2705

On 07.06.2024 14:57, Malcolm McLean wrote:
> On 07/06/2024 10:37, Keith Thompson wrote:
>> Malcolm McLean <malcolm.arthur.mclean@gmail.com> writes:
>>>
>>> Ah thank you. But then main has to take an extra parameter. Now  will
>>> the shell still be absolutely robust, and completely portable, and run
>>> just anywhere?
>>
>> What?  Why would main need an extra parameter?
>>
> Hre's the main function for the shell.
> 
> int main(int argc, char **argv)
> {
[...]
> }
> 
> Now to get the $EDITOR variable I will have to modify this function.
> 
> int main(int argc, char **argv, char **envp)
> 
> Now what are the implications of doing that? [...]

I'm certainly not the most qualified person to answer that, so
just two comments...
Declaring the extra parameter doesn't spoil the code, does it?
(If you don't use it you don't need to specify it. If you have
declared it you can use it or not.)
Personally my first reflex would be to use a dedicated function
to obtain a specific environment variable, specifically getenv();
I thought it wouldn't require the 'envp' to work?

For me it works

  #include <stdlib.h>
  #include <stdio.h>
  void main (int argc, char * argv[])
  {
      printf ("%s\t%s\n", argv[1], getenv(argv[1]));
  }


Janis