summaryrefslogtreecommitdiff
path: root/helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'helpers.c')
-rw-r--r--helpers.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/helpers.c b/helpers.c
index 729a173..e366e17 100644
--- a/helpers.c
+++ b/helpers.c
@@ -23,27 +23,23 @@ void OsdMsg(eMessageType Type, const char *Msg)
#endif
}
-void OSDErrorNumMsg(int err, const char* szDef)
-{
- char szErr[128];
- int nErr = err;
- szErr[sizeof(szErr)-1] = '\0';
- if(0 != strerror_r(nErr,szErr,sizeof(szErr)-1)) {
- szErr[0] = '\0';
- }
- esyslog(szErr[0] != '\0'?szErr:szDef);
- OsdMsg(mtError, szErr[0] != '\0'?szErr:szDef);
-}
+char *get_strerror(int n)
+{
+ char *s;
+ size_t size = 128;
+ s = (char*)malloc(size);
+ if (s == NULL)
+ return NULL;
+ strerror_r(n, s, size);
+ return s;
+}
-void SysLogErrorNumMsg(int err, const char* szDef)
+void OSDErrorNumMsg(int err, const char* szDef)
{
- char szErr[128];
- int nErr = err;
- szErr[sizeof(szErr)-1] = '\0';
- if(0 != strerror_r(nErr,szErr,sizeof(szErr)-1)) {
- szErr[0] = '\0';
- }
- esyslog(szErr[0] != '\0'?szErr:szDef);
+ char* szErr = get_strerror(err);
+ esyslog("dvdswitch: %s :%s", szDef, szErr ? szErr : "");
+ OsdMsg(mtError, szErr ? szErr : szDef);
+ if(szErr) free(szErr);
}
void ChangeChars(char *name, char *chars)