| Deutsch English Français Italiano |
|
<87o74ti4vb.fsf@bsb.me.uk> 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: Ben Bacarisse <ben@bsb.me.uk> Newsgroups: comp.lang.c Subject: Re: Command line globber/tokenizer library for C? Date: Thu, 12 Sep 2024 10:43:52 +0100 Organization: A noiseless patient Spider Lines: 62 Message-ID: <87o74ti4vb.fsf@bsb.me.uk> References: <lkbjchFebk9U1@mid.individual.net> <vbsmlb$3o6n2$1@raubtier-asyl.eternal-september.org> <lke71fFqdjcU1@mid.individual.net> <87cyl9zx14.fsf@nosuchdomain.example.com> <lkf456Fuf84U1@mid.individual.net> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Thu, 12 Sep 2024 11:43:53 +0200 (CEST) Injection-Info: dont-email.me; posting-host="9b7858c5e222e20447475885d34c68cc"; logging-data="208722"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+qWN1kMk+Ueebb70nQ5NKWpSXnI+IM3I4=" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:DrOToldn9w9DrXcKIiWzHL6t7+A= sha1:9YoXRuaNm1HrtZOHBldK7DiMJe8= X-BSB-Auth: 1.bcd0f4405c9ecc20e9d6.20240912104352BST.87o74ti4vb.fsf@bsb.me.uk Bytes: 3897 ted@loft.tnolan.com (Ted Nolan <tednolan>) writes: > In article <87cyl9zx14.fsf@nosuchdomain.example.com>, > Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >>ted@loft.tnolan.com (Ted Nolan <tednolan>) writes: >>> In article <vbsmlb$3o6n2$1@raubtier-asyl.eternal-september.org>, >>> Bonita Montero <Bonita.Montero@gmail.com> wrote: >>>>Am 11.09.2024 um 16:59 schrieb Kenny McCormack: >>>>> In article <vbs1om$3jkch$1@raubtier-asyl.eternal-september.org>, >>>>> Bonita Montero <Bonita.Montero@gmail.com> wrote: >>>>>> Do you think it would make sense to switch the language ? >>>> >>>>> Do you think it would make sense to pay attention to the "Newsgroups" line >>>>> in your header before clicking "Send"? >>>> >>>>I just wanted to suggest a simpler language. >>>>Compare that with a manual implementation of the same in C. >>> >>> Thanks, I appreciate that, but it does have to be C. >> >>We could help you more effectively if we understood your requirements. >> >>Why exactly does it have to be C? >> >>What system or systems do you need to support? (I asked this before and >>you didn't answer.) >> >>If you only care about Windows, for example, that's going to affect what >>solutions we can offer; likewise if you only care about POSIX-based >>systems, or only about Linux-based systems. >> >>It might also be useful to know more about the context. If this is for >>some specific application, what is that application intended to do, and >>why does it need to do tokenization and globbing? >> > > This would be for work, so I am limited in what I can say about it, but > it has to be in C because it is would be a C callout from a GT.M mumps > process. GT.M stores the command line tail (everything it doesn't need > to get a program running) in the special variable $ZCMDLINE which can > be passed to a callout. I would like to parse that string as the > shell does a command line. Basically, if it isn't a C library that > is commonly available through Linux package managers I probably can't > use it. In the end this is a "nice to have" and I have a q&d approach > that I will probably use. If it were down to me I'd do the word splitting "by hand" and use POSIX glob(3) to do the file expansion. For the word splitting, the key would be to know where these strings come from and what is really needed. That would enable you to pick a syntax that makes sense for your particular use-case. For example, if the string are typed by people, I wouldn't use the typical shell quoting. I would not want anyone (other than technical Unix users) to have to type 'He said "you can'"'""t" You might get away with a very simple word splitting algorithm. -- Ben.