From bfcdc4969510997fe81debf52982641febfa1bdf Mon Sep 17 00:00:00 2001 From: Brian Koropoff Date: Tue, 15 Mar 2011 15:35:14 +0800 Subject: [SHELL] Port to Solaris - Solaris lacks paths.h and the various _PATH_* #defines. Check for them in configure.ac and fall back on the usual suspects when they are missing. - Older Solaris lacks isblank(), and versions that have it use a macro. Check for the declaration in configure.ac and fall back on a naive version when missing. - Older Solaris does not support %jd (intmax_t) in format strings, but it does support the PRIdMAX macro from inttypes.h. Do a configure check for PRIdMAX and use it in the code. If it doesn't exist, define it to "lld" when sizeof(long long) equals sizeof(intmax_t) as this is more likely to work on older systems. Otherwise, use "jd" and hope for the best. - Older Solaris lacks stdint.h, but inttypes.h provides the same types and works on all platforms I've tried dash on, so just use it instead. - Older Solaris doesn't like it when vsnprintf() is passed a NULL buffer (in violation of the POSIX spec, of course). Pass a 1-byte dummy buffer instead. - Solaris lacks tempfile and mktemp programs. Fall back on a "good-enough" custom function in mkbuiltins. Signed-off-by: Brian Koropoff Signed-off-by: Herbert Xu --- src/output.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/output.c') diff --git a/src/output.c b/src/output.c index 2f9b5c4..f62e7ea 100644 --- a/src/output.c +++ b/src/output.c @@ -378,6 +378,20 @@ xvsnprintf(char *outbuf, size_t length, const char *fmt, va_list ap) { int ret; +#ifdef __sun + /* + * vsnprintf() on older versions of Solaris returns -1 when + * passed a length of 0. To avoid this, use a dummy + * 1-character buffer instead. + */ + char dummy[1]; + + if (length == 0) { + outbuf = dummy; + length = sizeof(dummy); + } +#endif + INTOFF; ret = vsnprintf(outbuf, length, fmt, ap); INTON; -- cgit 1.4.1 b6dda2d&showmsg=1&follow=1'>root/import.sh (unfollow)
Commit message (Collapse)Author
2017-07-24Autopickup ringsJune McEnroe
2017-07-24Name dogJune McEnroe
2017-07-23Add nethackrcJune McEnroe
2017-07-23Remove useless setuid in briJune McEnroe
Don't you think it would be better if the setuid bit only gave you permission to do it and didn't do it for you?
2017-07-23Clean up hnel a tiny bitJune McEnroe
2017-07-21Set window size in hnelJune McEnroe
2017-07-21Add hnelJune McEnroe
2017-07-19chmod 600 in dtchJune McEnroe