[vdr] [PATCH] vdr-xine 0.7.6: kill a few compiler warnings
Darren Salt
linux at youmustbejoking.demon.co.uk
Thu Jan 12 01:54:16 CET 2006
This patch prevents some printf format string warnings when building vdr-xine
0.7.6 with these extra flags:
-Wall -Wnonnull -Wformat=2 -Wextra
(There are potential problems if the fifo directory's name contains % and
mkdir or mknod fails. This patch eliminates them.)
--
| Darren Salt | nr. Ashington, | d youmustbejoking,demon,co,uk
| Debian, | Northumberland | s zap,tartarus,org
| RISC OS | Toon Army | @
| Retrocomputing: a PC card in a Risc PC
You are a singer who has to take any note above A with your eyebrows.
-------------- next part --------------
diff -urNad vdr-plugin-xine-0.7.6~/xineLib.c vdr-plugin-xine-0.7.6/xineLib.c
--- vdr-plugin-xine-0.7.6~/xineLib.c 2006-01-12 01:21:23.599614013 +0000
+++ vdr-plugin-xine-0.7.6/xineLib.c 2006-01-12 01:21:47.774014821 +0000
@@ -1912,8 +1912,8 @@
}
else
{
- ::fprintf(stderr, ("vdr-xine: error: couldn't open '" + noSignalFileName + "'!\n").c_str());
- esyslog(("vdr-xine: error: couldn't open '" + noSignalFileName + "'!\n").c_str());
+ ::fprintf(stderr, "vdr-xine: error: couldn't open '%s'!\n", noSignalFileName.c_str());
+ esyslog("vdr-xine: error: couldn't open '%s'!\n", noSignalFileName.c_str());
}
assert(remote);
@@ -1953,69 +1953,32 @@
const mode_t origUmask = ::umask(0);
- if (::mkdir(m_fifoDir.c_str(), 0755) < 0)
- {
- perror(("vdr-xine: error: couldn't create directory '" + m_fifoDir + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create directory '" + m_fifoDir + "'").c_str());
-
- ::umask(origUmask);
- return false;
- }
-
- if (::mknod(m_fifoNameExtControl.c_str(), 0666 | S_IFIFO, 0) < 0)
- {
- perror(("vdr-xine: error: couldn't create fifo '" + m_fifoNameExtControl + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create fifo '" + m_fifoNameExtControl + "'").c_str());
-
- ::umask(origUmask);
- return false;
- }
-
- if (::mknod(m_fifoNameExtResult.c_str(), 0644 | S_IFIFO, 0) < 0)
- {
- perror(("vdr-xine: error: couldn't create fifo '" + m_fifoNameExtResult + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create fifo '" + m_fifoNameExtResult + "'").c_str());
-
- ::umask(origUmask);
- return false;
- }
-
- if (::mknod(m_fifoNameControl.c_str(), 0644 | S_IFIFO, 0) < 0)
- {
- perror(("vdr-xine: error: couldn't create fifo '" + m_fifoNameControl + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create fifo '" + m_fifoNameControl + "'").c_str());
-
- ::umask(origUmask);
- return false;
- }
-
- if (::mknod(m_fifoNameResult.c_str(), 0666 | S_IFIFO, 0) < 0)
- {
- perror(("vdr-xine: error: couldn't create fifo '" + m_fifoNameResult + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create fifo '" + m_fifoNameResult + "'").c_str());
-
- ::umask(origUmask);
- return false;
- }
+#define MkFifo(String, Mask) \
+ do { if (::mknod((String).c_str(), (Mask) | S_IFIFO, 0) < 0) \
+ { \
+ string msg = "vdr-xine: error: couldn't create fifo '" + (String) + "'"; \
+ perror(msg.c_str()); \
+ esyslog("%s", msg.c_str()); \
+ ::umask(origUmask); \
+ return false; \
+ } } while (0)
- if (::mknod(m_fifoNameRemote.c_str(), 0666 | S_IFIFO, 0) < 0)
+ if (::mkdir(m_fifoDir.c_str(), 0755) < 0)
{
- perror(("vdr-xine: error: couldn't create fifo '" + m_fifoNameRemote + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create fifo '" + m_fifoNameRemote + "'").c_str());
-
+ string msg = "vdr-xine: error: couldn't create directory '" + m_fifoDir + "'";
+ perror(msg.c_str());
+ esyslog("%s", msg.c_str());
::umask(origUmask);
return false;
}
- if (::mknod(m_fifoNameStream.c_str(), 0644 | S_IFIFO, 0) < 0)
- {
- perror(("vdr-xine: error: couldn't create fifo '" + m_fifoNameStream + "'").c_str());
- esyslog(("vdr-xine: error: couldn't create fifo '" + m_fifoNameStream + "'").c_str());
+ MkFifo(m_fifoNameExtControl, 0666);
+ MkFifo(m_fifoNameExtResult, 0644);
+ MkFifo(m_fifoNameControl, 0644);
+ MkFifo(m_fifoNameResult, 0666);
+ MkFifo(m_fifoNameRemote, 0666);
+ MkFifo(m_fifoNameStream, 0644);
- ::umask(origUmask);
- return false;
- }
-
::umask(origUmask);
if (!Start())
More information about the vdr
mailing list