From zhubinbin.china at gmail.com Thu Mar 5 05:02:33 2009 From: zhubinbin.china at gmail.com (binbin zhu) Date: Thu, 5 Mar 2009 21:02:33 +0800 Subject: [splint-discuss] how to disable splint warning on specified header file Message-ID: Hi, I am trying to use splint check my project source files and did not want it raising warning on some header files, How should I do? From vijayendra.suman at gmail.com Thu Mar 5 05:50:09 2009 From: vijayendra.suman at gmail.com (Vijayendra Suman) Date: Thu, 5 Mar 2009 19:20:09 +0530 Subject: [splint-discuss] how to disable splint warning on specified header file In-Reply-To: References: Message-ID: <581ef6d60903050550j350fa842ke6c24201f6e465a@mail.gmail.com> Hi You can totally skip check of header files by adding "+never-include" in your splint command line or if you have your splintrc, add the same in it. For more details you can also look in http://www.splint.org/manual/manual.pdf Thanks Vijayendra Suman On Thu, Mar 5, 2009 at 6:32 PM, binbin zhu wrote: > Hi, > > I am trying to use splint check my project source files and did not > want it raising warning on some header files, How should I do? > _______________________________________________ > splint-discuss mailing list > splint-discuss at mail.cs.virginia.edu > http://www.cs.virginia.edu/mailman/listinfo/splint-discuss > -- https://mail.google.com/mail/?ui=2&view=bsp&ver=1qygpcgurkovy Regards Vijayendra Suman -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.cs.virginia.edu/pipermail/splint-discuss/attachments/20090305/f1fba60f/attachment.html From jhanley at dgtlrift.com Tue Mar 17 06:13:44 2009 From: jhanley at dgtlrift.com (jhanley at dgtlrift.com) Date: Tue, 17 Mar 2009 08:13:44 -0600 Subject: [splint-discuss] Variable argument type checking Message-ID: <20090317081344.lj04g3u4m8kcskog@box146.bluehost.com> Is there a way to inform splint of the possible types of variable arguments that should be expected to a function in a way like printflike. A specific example: int do_something( int action, ... /* args */ ); /* legal ways to call do_something: (void)do_something( 0 ); (void)do_something( 1, const char * ); (void)do_something( 2, const this_struct_type * ); (void)do_something( 3, const that_struct_type * ); (void)do_something( 4 ); (void)do_something( 5, const this_struct_type *, const that_struct_type * ); */ From Boris.Hollas at de.bosch.com Tue Mar 17 06:32:45 2009 From: Boris.Hollas at de.bosch.com (Hollas Boris (CR/AEY1)) Date: Tue, 17 Mar 2009 15:32:45 +0100 Subject: [splint-discuss] Variable argument type checking Message-ID: Have you tried using an enum instead of int? E.g. enum legal_values {0,1,2,3,4,5}; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.cs.virginia.edu/pipermail/splint-discuss/attachments/20090317/9306ee21/attachment.html From jhanley at dgtlrift.com Tue Mar 17 06:43:13 2009 From: jhanley at dgtlrift.com (jhanley at dgtlrift.com) Date: Tue, 17 Mar 2009 08:43:13 -0600 Subject: [splint-discuss] Variable argument type checking In-Reply-To: References: Message-ID: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> Quoting "Hollas Boris (CR/AEY1)" : > Have you tried using an enum instead of int? E.g. > > enum legal_values {0,1,2,3,4,5}; > > > > int do_something( int action, ... /* args */ ); > > /* legal ways to call do_something: > > (void)do_something( 0 ); > > (void)do_something( 1, const char * ); > > (void)do_something( 2, const this_struct_type * ); > > (void)do_something( 3, const that_struct_type * ); > > (void)do_something( 4 ); > > (void)do_something( 5, const this_struct_type *, const > > that_struct_type * ); I guess my example was a little vague. What I mean to explain is that the above be in some header file and that when argument one is a value of 0 or 4, there are no other arguments, when it is a value of 1 the next should be of type const char *, when it is a value of 2 the next argument should be of type const this_struct_type *, etc. What I was hoping for was the ability to annotate to splint as to the legal ways this function can be called so it can inform the user of the function if there are any calls that don't match the argument pattern described. From Michael.Wojcik at MicroFocus.com Tue Mar 17 07:17:53 2009 From: Michael.Wojcik at MicroFocus.com (Michael Wojcik) Date: Tue, 17 Mar 2009 08:17:53 -0700 Subject: [splint-discuss] Variable argument type checking In-Reply-To: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> References: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> Message-ID: <11352F9641010A418AD5057945A3A6590118BD13@MTV-EXCHANGE.microfocus.com> > From: splint-discuss-bounces at cs.virginia.edu [mailto:splint-discuss- > bounces at cs.virginia.edu] On Behalf Of jhanley at dgtlrift.com > Sent: Tuesday, 17 March, 2009 10:43 > > I guess my example was a little vague. What I mean to explain is that > the above be in some header file and that when argument one is a value > of 0 or 4, there are no other arguments, when it is a value of 1 the > next should be of type const char *, when it is a value of 2 the next > argument should be of type const this_struct_type *, etc. What I was > hoping for was the ability to annotate to splint as to the legal ways > this function can be called so it can inform the user of the function > if there are any calls that don't match the argument pattern described. That would be a rather complex annotation language. For it to handle all the possible semantics of variadic functions, it'd have to be as powerful as C. Splint does have an extension mechanism that's as powerful as C: you download the Splint source, modify it to do what you want, and recompile it. Short of that, no, you can't teach Splint how your variadic functions work. -- Michael Wojcik Principal Software Systems Developer, Micro Focus From ok at cs.otago.ac.nz Tue Mar 17 15:05:08 2009 From: ok at cs.otago.ac.nz (Richard O'Keefe) Date: Wed, 18 Mar 2009 12:05:08 +1300 Subject: [splint-discuss] Variable argument type checking In-Reply-To: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> References: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> Message-ID: <3A3F2B32-7C40-4E8A-B3BD-EB744050DD30@cs.otago.ac.nz> On 18 Mar 2009, at 3:43 am, wrote: > Quoting "Hollas Boris (CR/AEY1)" : > >> Have you tried using an enum instead of int? E.g. >> >> enum legal_values {0,1,2,3,4,5}; >> >> > >>> int do_something( int action, ... /* args */ ); >>> /* legal ways to call do_something: >>> (void)do_something( 0 ); >>> (void)do_something( 1, const char * ); >>> (void)do_something( 2, const this_struct_type * ); >>> (void)do_something( 3, const that_struct_type * ); >>> (void)do_something( 4 ); >>> (void)do_something( 5, const this_struct_type *, const > >> that_struct_type * ); > I don't know the context in which this is used. Clearly, however, there are going to be very few occasions where the caller does not know what to pass. Here's my suggestion. #ifdef S_SPLINT_S /*0*/ int foo(void); /*1*/ int bar(char const *); /*2*/ int ugh(this_struct_type const *); /*3*/ int ick(that_struct_type const *); /*4*/ int ack(void); /*5*/ int zoo(this_struct_type const *, that_struct_type const *); #else #define foo() do_something(0) #define bar(x) do_something(1, (x)) #define ugh(x) do_something(2, (x)) #define ick(y) do_something(3, (y)) #define ack() do_something(4) #define zoo(x,y) do_something(5, (x), (y)) #endif Replace calls to do_something by calls to the macros. Put the Splint annotations on the prototypes. Now you don't *need* Splint to find other calls to do_something(), a simple 'grep' will do. From ok at cs.otago.ac.nz Tue Mar 17 15:05:08 2009 From: ok at cs.otago.ac.nz (Richard O'Keefe) Date: Wed, 18 Mar 2009 12:05:08 +1300 Subject: [splint-discuss] Variable argument type checking In-Reply-To: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> References: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> Message-ID: <3A3F2B32-7C40-4E8A-B3BD-EB744050DD30@cs.otago.ac.nz> On 18 Mar 2009, at 3:43 am, wrote: > Quoting "Hollas Boris (CR/AEY1)" : > >> Have you tried using an enum instead of int? E.g. >> >> enum legal_values {0,1,2,3,4,5}; >> >> > >>> int do_something( int action, ... /* args */ ); >>> /* legal ways to call do_something: >>> (void)do_something( 0 ); >>> (void)do_something( 1, const char * ); >>> (void)do_something( 2, const this_struct_type * ); >>> (void)do_something( 3, const that_struct_type * ); >>> (void)do_something( 4 ); >>> (void)do_something( 5, const this_struct_type *, const > >> that_struct_type * ); > I don't know the context in which this is used. Clearly, however, there are going to be very few occasions where the caller does not know what to pass. Here's my suggestion. #ifdef S_SPLINT_S /*0*/ int foo(void); /*1*/ int bar(char const *); /*2*/ int ugh(this_struct_type const *); /*3*/ int ick(that_struct_type const *); /*4*/ int ack(void); /*5*/ int zoo(this_struct_type const *, that_struct_type const *); #else #define foo() do_something(0) #define bar(x) do_something(1, (x)) #define ugh(x) do_something(2, (x)) #define ick(y) do_something(3, (y)) #define ack() do_something(4) #define zoo(x,y) do_something(5, (x), (y)) #endif Replace calls to do_something by calls to the macros. Put the Splint annotations on the prototypes. Now you don't *need* Splint to find other calls to do_something(), a simple 'grep' will do. From roland.illig at gmx.de Tue Mar 17 23:05:10 2009 From: roland.illig at gmx.de (Roland Illig) Date: Wed, 18 Mar 2009 08:05:10 +0100 Subject: [splint-discuss] Variable argument type checking In-Reply-To: <3A3F2B32-7C40-4E8A-B3BD-EB744050DD30@cs.otago.ac.nz> References: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> <3A3F2B32-7C40-4E8A-B3BD-EB744050DD30@cs.otago.ac.nz> Message-ID: <49C09D26.9020006@gmx.de> Richard O'Keefe schrieb: > I don't know the context in which this is used. > Clearly, however, there are going to be very few > occasions where the caller does not know what to pass. The ioctl(2) function on Unix-like systems is the primary example of this calling style. int ioctl(int filedes, int request, ...); The request argument can be from thousands of predefined constants, which also differ among the operating systems. So it is not easy to list all cases in a platform-neutral program like Splint. Roland From ok at cs.otago.ac.nz Wed Mar 18 20:08:16 2009 From: ok at cs.otago.ac.nz (Richard O'Keefe) Date: Thu, 19 Mar 2009 17:08:16 +1300 Subject: [splint-discuss] Variable argument type checking In-Reply-To: <49C09D26.9020006@gmx.de> References: <20090317084313.ubkm61gvk04oc4wo@box146.bluehost.com> <3A3F2B32-7C40-4E8A-B3BD-EB744050DD30@cs.otago.ac.nz> <49C09D26.9020006@gmx.de> Message-ID: <0CB453DC-883C-4FFA-BE07-559A9213C69F@cs.otago.ac.nz> On 18 Mar 2009, at 8:05 pm, Roland Illig wrote: > Richard O'Keefe schrieb: >> I don't know the context in which this is used. >> Clearly, however, there are going to be very few >> occasions where the caller does not know what to pass. > > The ioctl(2) function on Unix-like systems is the primary example of > this calling style. > > int ioctl(int filedes, int request, ...); which is a perfect example of what I said: the *caller* knows what to pass. You just don't find arbitrary expressions for the request. The request is always (in practice) a fixed name. > > > The request argument can be from thousands of predefined constants, > which also differ among the operating systems. In fact this is precisely why you cannot annotate ioctl(), and why creating your own wrapper function for each use is the *right* thing to do. > So it is not easy to list > all cases in a platform-neutral program like Splint. Nobody was suggesting that it could or should. But each *program* can list *all the cases it uses*, and in fact this is something you want to do *anyway* in order to get a little bit of type checking out of your C compiler. It's a good rule of thumb that a C program should never have a "bare" call to ioctl() except in the body of a "wrapper" function or macro. The *printf and *scanf family, of course, have their own special rules that Splint knows about, but it would be nice if it new about the new C99 format stuff. From splint at fun-tech.se Sat Mar 21 03:38:14 2009 From: splint at fun-tech.se (Johan) Date: Sat, 21 Mar 2009 12:38:14 +0100 Subject: [splint-discuss] Parse Error on variable declaration in the middle of a function. Message-ID: <49C4D1A6.10206@fun-tech.se> Hi I get a Parse error on variable declaration in the middle of a function. I started a question about this on this site: http://stackoverflow.com/questions/669023/how-can-i-make-splint-ignore-where-i-declare-my-variables And somebody believed that this could be a error in splint, since this was correct c99 code. (I hope it is correct c99, gcc approves anyway). A short version of the error: #include int main() { printf("Hello splint test\n"); int i; for(i=5;i>0;i--) { printf("%2d...\n",i); } return 0; } And splint returns this: splint +gnuextensions main.c Splint 3.1.1 --- 03 Nov 2006 Command Line: Setting +gnuextensions redundant with current value main.c:8:8: Parse Error. (For help on parse errors, see splint -help parseerrors.) Platform used is Ubuntu 8.04 with gvim as editor. Is this a splint bug or did I miss something? Thanks Johan Note: sorry if this mail comes twice, I accidentally sent it from the wrong address the first time. But I think that that mail got trapped in a filter, but if it is not and it hits the list I apologies in advance. || -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.cs.virginia.edu/pipermail/splint-discuss/attachments/20090321/edff9991/attachment.html From n3npq at mac.com Sat Mar 21 05:42:52 2009 From: n3npq at mac.com (Jeff Johnson) Date: Sat, 21 Mar 2009 09:42:52 -0400 Subject: [splint-discuss] Parse Error on variable declaration in the middle of a function. In-Reply-To: <49C4D1A6.10206@fun-tech.se> References: <49C4D1A6.10206@fun-tech.se> Message-ID: <1F3918DF-241A-45E7-82CB-405FC771A63E@mac.com> Random variable declarations within code is C99, not C. splint is a C, not a C99, parser. 73 de Jeff On Mar 21, 2009, at 7:38 AM, Johan wrote: > Hi > > I get a Parse error on variable declaration in the middle of a > function. > > I started a question about this on this site: > http://stackoverflow.com/questions/669023/how-can-i-make-splint-ignore-where-i-declare-my-variables > And somebody believed that this could be a error in splint, since > this was correct c99 code. > (I hope it is correct c99, gcc approves anyway). > > A short version of the error: > > #include > int main() > { > printf("Hello splint test\n"); > > int i; > for(i=5;i>0;i--) > { > printf("%2d...\n",i); > } > > return 0; > } > > And splint returns this: > > splint +gnuextensions main.c > Splint 3.1.1 --- 03 Nov 2006 > > Command Line: Setting +gnuextensions redundant with current value > main.c:8:8: Parse Error. (For help on parse errors, see splint -help > parseerrors.) > > > Platform used is Ubuntu 8.04 with gvim as editor. > > Is this a splint bug or did I miss something? > > Thanks > Johan > > Note: sorry if this mail comes twice, I accidentally sent it from > the wrong address the first time. > But I think that that mail got trapped in a filter, but if it is not > and it hits the list I apologies in advance. > > _______________________________________________ > splint-discuss mailing list > splint-discuss at mail.cs.virginia.edu > http://www.cs.virginia.edu/mailman/listinfo/splint-discuss -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.cs.virginia.edu/pipermail/splint-discuss/attachments/20090321/5108a1af/attachment-0001.html From roland.illig at gmx.de Sat Mar 21 06:40:13 2009 From: roland.illig at gmx.de (Roland Illig) Date: Sat, 21 Mar 2009 15:40:13 +0100 Subject: [splint-discuss] Parse Error on variable declaration in the middle of a function. In-Reply-To: <49C4D1A6.10206@fun-tech.se> References: <49C4D1A6.10206@fun-tech.se> Message-ID: <49C4FC4D.7070305@gmx.de> Johan schrieb: > #include > int main() > { > printf("Hello splint test\n"); > > int i; This is indeed valid C99. The point is that Splint can only parse C90, which does not allow variable declarations after a statement. Roland From Michael.Wojcik at MicroFocus.com Sat Mar 21 06:49:05 2009 From: Michael.Wojcik at MicroFocus.com (Michael Wojcik) Date: Sat, 21 Mar 2009 07:49:05 -0700 Subject: [splint-discuss] Parse Error on variable declaration in the middleof a function. In-Reply-To: <49C4D1A6.10206@fun-tech.se> References: <49C4D1A6.10206@fun-tech.se> Message-ID: <11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> > From: splint-discuss-bounces at cs.virginia.edu [mailto:splint-discuss-bounces at cs.virginia.edu] On Behalf Of Johan > Sent: Saturday, 21 March, 2009 07:38 > I get a Parse error on variable declaration in the middle of a function. Splint is mostly a C90 implementation, and in C90 declarations can only appear at the beginning of a block. Support for some parts of C99 have been added, but this one is (apparently) not one of them, at least in the version you have. Patches to Splint to allow variable declarations elsewhere in a block have been posted to this list at least as far back as 2006; you can check the archives. (Your declaration of main is also incomplete, by the way; it should be "int main(void)". Incomplete declarations are poor practice and should not be used in new code, except for the - very rare - case of source that needs to be compiled as both C and C++.) -- Michael Wojcik Principal Software Systems Developer, Micro Focus From n3npq at mac.com Sat Mar 21 07:13:31 2009 From: n3npq at mac.com (Jeff Johnson) Date: Sat, 21 Mar 2009 11:13:31 -0400 Subject: [splint-discuss] Parse Error on variable declaration in the middleof a function. In-Reply-To: <11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> References: <49C4D1A6.10206@fun-tech.se> <11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> Message-ID: <69AA16E7-2CA4-4656-93C7-50532A0FCEEE@mac.com> On Mar 21, 2009, at 10:49 AM, Michael Wojcik wrote: > > Patches to Splint to allow variable declarations elsewhere in a block > have been posted to this list at least as far back as 2006; you can > check the archives. > Are the patches complete wrto C99 or ad hoc? I've done *way* too many C99 -> C conversions in order to continue using splint ... 73 de Jeff From splint at fun-tech.se Sat Mar 21 07:20:03 2009 From: splint at fun-tech.se (Johan) Date: Sat, 21 Mar 2009 16:20:03 +0100 Subject: [splint-discuss] Parse Error on variable declaration in the middleof a function. In-Reply-To: <11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> References: <49C4D1A6.10206@fun-tech.se> <11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> Message-ID: <49C505A3.5020504@fun-tech.se> Michael Wojcik wrote: > Splint is mostly a C90 implementation, and in C90 declarations can only > appear at the beginning of a block. Support for some parts of C99 have > been added, but this one is (apparently) not one of them, at least in > the version you have. > > Patches to Splint to allow variable declarations elsewhere in a block > have been posted to this list at least as far back as 2006; you can > check the archives. > > I guess that this means that it is a known issue and there is no point in adding a bug report on this one. But is there any plan to maybe add flags (-c90, -c99) to select set of rule to use? Or something similar? Thanks Johan From Michael.Wojcik at MicroFocus.com Sun Mar 22 09:57:02 2009 From: Michael.Wojcik at MicroFocus.com (Michael Wojcik) Date: Sun, 22 Mar 2009 10:57:02 -0700 Subject: [splint-discuss] Parse Error on variable declaration in the middleof a function. In-Reply-To: <69AA16E7-2CA4-4656-93C7-50532A0FCEEE@mac.com> References: <49C4D1A6.10206@fun-tech.se><11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> <69AA16E7-2CA4-4656-93C7-50532A0FCEEE@mac.com> Message-ID: <11352F9641010A418AD5057945A3A6590118BD3F@MTV-EXCHANGE.microfocus.com> > From: splint-discuss-bounces at cs.virginia.edu [mailto:splint-discuss- > bounces at cs.virginia.edu] On Behalf Of Jeff Johnson > Sent: Saturday, 21 March, 2009 11:14 > > On Mar 21, 2009, at 10:49 AM, Michael Wojcik wrote: > > > > Patches to Splint to allow variable declarations elsewhere in a block > > have been posted to this list at least as far back as 2006; you can > > check the archives. > > Are the patches complete wrto C99 or ad hoc? I believe the ones I've seen described on the list are partial patches to implement specific C99 features. But I haven't looked into any of the patches. It'll be a long time before C99 is available on all the platforms where my C sources are compiled. (And I have no desire to use many of the C99 features anyway.) -- Michael Wojcik Principal Software Systems Developer, Micro Focus From Michael.Wojcik at MicroFocus.com Sun Mar 22 09:53:51 2009 From: Michael.Wojcik at MicroFocus.com (Michael Wojcik) Date: Sun, 22 Mar 2009 10:53:51 -0700 Subject: [splint-discuss] Parse Error on variable declaration in the middleof a function. In-Reply-To: <49C505A3.5020504@fun-tech.se> References: <49C4D1A6.10206@fun-tech.se><11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com> <49C505A3.5020504@fun-tech.se> Message-ID: <11352F9641010A418AD5057945A3A6590118BD42@MTV-EXCHANGE.microfocus.com> > From: splint-discuss-bounces at cs.virginia.edu [mailto:splint-discuss- > bounces at cs.virginia.edu] On Behalf Of Johan > Sent: Saturday, 21 March, 2009 11:20 > > Michael Wojcik wrote: > > Splint is mostly a C90 implementation, and in C90 declarations can > > only appear at the beginning of a block. Support for some parts of C99 > > have been added, but this one is (apparently) not one of them, at > > least in the version you have. > > > > Patches to Splint to allow variable declarations elsewhere in a block > > have been posted to this list at least as far back as 2006; you can > > check the archives. > > I guess that this means that it is a known issue and there is no point > in adding a bug report on this one. In any event, it's not a bug; adding full C99 support would be an enhancement. > But is there any plan to maybe add flags (-c90, -c99) to select set of > rule to use? I have no idea. I don't even know what the status of Splint development is today. You'd have to track down the maintainer, if there currently is one. -- Michael Wojcik Principal Software Systems Developer, Micro Focus From JHolland at FASTSOFT.COM Mon Mar 23 09:32:20 2009 From: JHolland at FASTSOFT.COM (Jake Holland) Date: Mon, 23 Mar 2009 10:32:20 -0700 Subject: [splint-discuss] Parse Error on variable declaration inthe middleof a function. In-Reply-To: <11352F9641010A418AD5057945A3A6590118BD42@MTV-EXCHANGE.microfocus.com> References: <49C4D1A6.10206@fun-tech.se><11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com><49C505A3.5020504@fun-tech.se> <11352F9641010A418AD5057945A3A6590118BD42@MTV-EXCHANGE.microfocus.com> Message-ID: This email has a patch attached for OP's problem: http://www.cs.virginia.edu/pipermail/splint-discuss/2008-July/001190.htm l Michael Wojcik wrote: > I have no idea. I don't even know what the status of Splint development > is today. You'd have to track down the maintainer, if there currently is > one. FWIW, I haven't found any evidence of a living splint maintainer, with the couple of emails I've sent to the addresses I could find. I'd maybe volunteer if I weren't so busy. From splint at fun-tech.se Mon Mar 23 10:37:24 2009 From: splint at fun-tech.se (Johan) Date: Mon, 23 Mar 2009 19:37:24 +0100 Subject: [splint-discuss] Parse Error on variable declaration inthe middleof a function. In-Reply-To: References: <49C4D1A6.10206@fun-tech.se><11352F9641010A418AD5057945A3A6590118BD3C@MTV-EXCHANGE.microfocus.com><49C505A3.5020504@fun-tech.se> <11352F9641010A418AD5057945A3A6590118BD42@MTV-EXCHANGE.microfocus.com> Message-ID: <49C7D6E4.7030709@fun-tech.se> Jake Holland wrote: > FWIW, I haven't found any evidence of a living splint maintainer, Have you found any that was not living ;-) Cheers Johan