annotate mp_strings.c @ 34115:3d7ee643b110

Port to Wine. This makes MPlayer and the GUI compile and run as a Wine executable, which is mainly to allow Windows code checking in a Linux environment. In Makefile: Generalize the windres call by specifying option "-o" for the output file. In gui/win32/interface.c: Use the same function to create a thread as Cygwin, and convert Windows style file names so that they are accessible in the Linux environment. In osdep/priority.c: Include windows.h. In configure: Add system "Wine" which shall be considered (mostly) a win32 system. Since winegcc by default compiles all files with the "-fpic" flag, remove it, and remove all MinGW compatibility WIN32 defines, because we're not compiling for real Windows. Define to not use Windows sockets (Wine uses different ones) and replace Windows' stricmp by strcasecmp. Ensure that yasm's object format isn't win32 and that HAVE_LINUX_DVD_STRUCT will be defined. In stream/tvi_dshow.c: Define MP_DEFINE_LOCAL_GUID, because Wine's DEFINE_GUID macro isn't compatible using "static" with it. In loader/com.h: Rename the IIDs to become local ones, because Wine's unknwn.h not only declares but defines them. In mplayer.c: Don't define a SIGSEGV signal handler, or the Wine executable will crash.
author ib
date Sat, 15 Oct 2011 13:20:52 +0000
parents 2ef9298a81e7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32883
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
1 /*
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
2 * Strings utilities
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
3 *
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
4 * This file is part of MPlayer.
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
5 *
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
6 * MPlayer is free software; you can redistribute it and/or modify
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
9 * (at your option) any later version.
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
10 *
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
11 * MPlayer is distributed in the hope that it will be useful,
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
14 * GNU General Public License for more details.
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
15 *
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License along
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
17 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
19 */
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
20
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
21 #include <stdlib.h>
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
22 #include <stdarg.h>
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
23 #include <stdio.h>
32949
ca6dcdb31fa1 Cosmetics: add empty line between system and local headers and remove pointless
cboesch
parents: 32883
diff changeset
24
32883
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
25 #include "mp_strings.h"
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
26
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
27 char *mp_asprintf(const char *fmt, ...)
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
28 {
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
29 char *p = NULL;
33597
2ef9298a81e7 Avoid va_copy, it is not generally available
reimar
parents: 32949
diff changeset
30 va_list va;
32883
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
31 int len;
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
32
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
33 va_start(va, fmt);
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
34 len = vsnprintf(NULL, 0, fmt, va);
33597
2ef9298a81e7 Avoid va_copy, it is not generally available
reimar
parents: 32949
diff changeset
35 va_end(va);
32883
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
36 if (len < 0)
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
37 goto end;
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
38
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
39 p = malloc(len + 1);
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
40 if (!p)
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
41 goto end;
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
42
33597
2ef9298a81e7 Avoid va_copy, it is not generally available
reimar
parents: 32949
diff changeset
43 va_start(va, fmt);
2ef9298a81e7 Avoid va_copy, it is not generally available
reimar
parents: 32949
diff changeset
44 len = vsnprintf(p, len + 1, fmt, va);
2ef9298a81e7 Avoid va_copy, it is not generally available
reimar
parents: 32949
diff changeset
45 va_end(va);
32883
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
46 if (len < 0)
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
47 free(p), p = NULL;
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
48
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
49 end:
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
50 return p;
fa04e96e6177 Add mp_strings.c with mp_asprintf function.
cboesch
parents:
diff changeset
51 }