Update to 2.5.0b1

Changelog:
2.5.0
	* Autotools and packaging changes:
	  - Upgraded autoconf version requirement to 2.60
	  - Added '--with-alsa' to suppress ALSA sound driver inclusion
	  - Added '--without-oss' to suppress OSS sound driver inclusion
	  - Added '--disable-cache' to remove tags cache support
	  - Added specific GDB support to '--enable-debug'
	  - Refactor decoder plug-ins' autoconf scripts into source directories
	  - Ensure that all decoders get into the source distribution tarball
	  - Removed SID decoder's dependance on .la-file presence
	  - Removed distribution-specific .spec file
	  - Minor reformatting of the configure summary
	  - Added warnings for various deprecations and potential problems
	  - Added warnings for unmet future package requirements
	* Improved support for embedded systems:
	  - Refined FFmpeg decoder configuration for use with cross-compilation
	  - Provided use of Tremor with the Vorbis decoder
	  - Improve portability to non-GNU library platforms
	  - Added --with-libiconv-prefix configure option
	* Audio driver changes:
	  - Allow use of the OSSv4 per-application mixer API
	  - Provided SNDIO support for OpenBSD systems (Alexander Polakov)
	* New and changed audio decoders:
	  - New TiMidity decoder for MIDI (Hendrik Iben)
	  - Migrate AAC decoder to later FAAD2 API (Max Klinger)
	  - Added AAC+ (HE-AAC) support to AAC decoder
	  - New SidPlay2 decoder for SID (Hendrik Iben)
	  - New Modplug decoder (Hendrik Iben)
	  - New WavPack decoder (Alexandrov Sergey)
	  - Renamed SndFile plugin for consistancy
	  - Removed M4A format support from AAC decoder plugin
	* Overhauled FFmpeg/LibAV decoder:
	  - Resolved FFmpeg API deprecations
	  - Provided LibAV compatibility
	  - Provided proper stereo downmixing
	  - Increased number of decodable formats (including Xiph Opus)
	  - Added decoding of audio from video formats
	  - Added logging of FFmpeg/LibAV messages
	  - Added seeking in most (but not all) formats
	  - Fixed misreporting of tags, duration and bitrates
	  - Fixed memory and file descriptor leakages
	  - Fixed severe distortion on 8-bit samples
	  - Fixed loop playing FLAC files
	  - Fixed many miscellaneous bugs
	* Audio reproduction changes:
	  - Improved support for 8-bit sample size
	  - Added software mixer (Hendrik Iben)
	  - Added parametric equalizer (Hendrik Iben)
	  - Fixed many bugs which produced distorted sound
	* General configuration file changes:
	  - Reconciled and regularised example config and keymap files
	  - Introduced lists and function-like syntax
	  - Introduced variable substitution
	  - Introduced symbol and boolean option types
	  - Improved security of the configuration file
	* Changed configuration file options:
	  - Layout# options moved to a list and function-like syntax
	  - SoundDriver option moved to a list syntax
	  - Renamed OSSMixerChannel to OSSMixerChannel1
	  - Renamed ALSAMixer to ALSAMixer1
	  - QueueNextSongReturn moved to yes/no values
	  - TagsCacheSize set to zero now disables tag caching
	* New configuration file options:
	  - OnSongChange: run an external command (Jack Miller)
	  - RepeatSongChange: govern the running of the OnSongChange command
	  - OnStop: run an external command on stopping
	  - EnforceTagsEncoding: substitutes ID3v1TagsEncoding for ISO-8859-1
	    encoding in id3v2 tags (Aleks Sherikov)
	  - FileNamesIconv: converts from local to UTF8 encoding for file names
	    (Aleks Sherikov)
	  - NonUTFXterm: converts UTF8 to local encoding for X-Term titles
		(Aleks Sherikov)
	  - AutoLoadLyrics: says whether MOC should look for lyrics files
	  - PreferredDecoders: allow finer control over decoder selection
	  - XTerms: externalises terminals regarded as X-Terms
	  - UseMIMEMagic: says whether to identify audio files by using MIME
	  - JackStartServer: autostart JACK the server (Max Klinger)
	  - ShowTimePercent: set the percent played state (Daniel T. Borelli)
	  - Various options for SidPlay2, Modplug and TiMidity support
	* New command line options:
	  - '-O' to override configuration file settings
	  - '-q' to queue files from command line (Martin Milata)
	  - '-j' to jump to some position in the current track (Nuno Cardoso)
	  - '-Q' to display user formatted information (Juho Hämäläinen)
	  - '-v' to set the volume (Jack Miller)
	  - '-t' and '--on/off' to toggle or set playback options (Jack Miller)
	* Screen handling changes:
	  - Changed minimum screen height to 7 lines (Tero Marttila)
	  - Added support for GNU screen title (Jonathan Derque)
	  - Restore screen to console mode after reporting fatal errors
	  - Fixed overlength highlight bar
	  - Fixed screen upset when tags contain control characters
	* New and updated client interaction features:
	  - 'a' command: also add a directory to the playlist (Filippo Giunchedi)
	  - 'Y' command: prune unreadable files from the playlist (tyranix)
	  - 'L' command: display music lyrics (Géraud Le Falher)
	  - Queued messages for display in the message area
	  - Added play queue (Martin Milata)
	  - Mark a fragment of a file which can be passed to external commands
	* Improve text entry history and editting:
	  - Recognise ^u (by default) as delete to start of line
	  - Recognise ^k (by default) as delete to end of line
	  - Save and restore entered text prior to history scrolling
	  - Save history entry modifications
	  - Do not save adjacent duplicate entries
	  - Do not save or modify with blank entries
	  - Position cursor at end of restored or history line
	* Theme changes:
	  - Enabled highlighted playlist numbers and file times (Marc Tschiesche)
	  - Fixed miscoloured frame when switching themes (Alexander Polakov)
	  - Fixed default colour settings
	* General code cleaning:
	  - Refactoring, optimisations and cosmetic improvements
	  - Silenced many build warnings and errors
	  - Replaced various deprecated, legacy and platform-specific functions
	* Significant bug fixes:
	  - Fixed stale locks freeze in tags cache database following a crash.
	  - Fixed CURL timeout for internet streaming errors (Daniel Stenberg)
	  - Fixed audio distortion on MP3 file having overly long tag values
	  - Fixed false positive stream detection in the MP3 decoder
	  - Fixed Ogg/Vorbis stream detection in the Vorbis decoder
	  - Fixed 'LRINTF error' raised when reconfiguring MOC
	  - Handle backspace key properly
	  - Fixed pthread stack overflow segfault on OpenBSD.
	  - Fixed segfault when text entry history becomes full
	  - Fixed segfault processing playlists with relative paths
	  - Fixed memory corruptions when toggling tag reading
	  - Fixed severe distortion on 11025Hz 16-bit mono audios
	  - Fixed freeze at end of playing audio file
	  - Fixed server crash when attempting to play a deleted file
	  - Fixed MIME type detection on HTTP redirection
	  - Fixed crash when mixer value is above 100%
	  - Workaround for streams that have the actual title as tags/comments
	  - Indentified cause of "undefined symbol" build errors (node/701)
	  - Plugged all known memory and file descriptor leaks
	* Miscellaneous:
	  - Updated and reformatted mocp manpage and equalizer README file
	  - Made many warning and error reports more informative and consistant
	  - Better logging of more problem determination information
	  - More informative version information display
	  - Introduced MD5-based decoder verification tools
	  - Improved compatibility with 64-bit systems
	  - Improved compatibility with big-endian systems
	  - Moved tags cache to a Berkeley DB
	  - Integration of down-stream distribution patches
	  - Fixed many bugs which crashed MOC
This commit is contained in:
ryoon 2013-02-10 08:38:59 +00:00
parent 91e41af6b8
commit a044566ceb
12 changed files with 102 additions and 175 deletions

View file

@ -1,8 +1,7 @@
# $NetBSD: Makefile,v 1.12 2013/02/09 22:11:33 ryoon Exp $
# $NetBSD: Makefile,v 1.13 2013/02/10 08:38:59 ryoon Exp $
DISTNAME= moc-2.5.0-alpha3
PKGNAME= ${DISTNAME:S/-alpha/./:moc%=moc-devel%}
PKGREVISION= 8
DISTNAME= moc-2.5.0-beta1
PKGNAME= ${DISTNAME:S/-beta/b/:moc%=moc-devel%}
CATEGORIES= audio
MASTER_SITES= ftp://ftp.daper.net/pub/soft/moc/unstable/
EXTRACT_SUFX= .tar.bz2
@ -10,6 +9,7 @@ EXTRACT_SUFX= .tar.bz2
MAINTAINER= peter.schuller@infidyne.com
HOMEPAGE= http://moc.daper.net/
COMMENT= Curses based console audio player
LICENSE= gnu-gpl-v2
CONFLICTS= moc-[0-9]*
@ -27,7 +27,7 @@ SUBST_MESSAGE.oss= Fixing hardcoded audio device.
.include "options.mk"
###
### This target is [currently] for regenerating configure to add the
### This target is [currently] for regenerating configure to add the
### sched_get_priority_max check of librt.
###
#pre-configure:
@ -42,9 +42,17 @@ BUILDLINK_TRANSFORM+= rm:-Wl,--export-dynamic
LIBS.SunOS+= -lsocket
BUILDLINK_TRANSFORM+= l:db:db4
# ${PREFIX}/bin/mocp contains path to pkg-config in work/.tools/.
# It is harmless.
CHECK_WRKREF_SKIP= bin/mocp
.include "../../audio/libid3tag/buildlink3.mk"
.include "../../audio/libmad/buildlink3.mk"
.include "../../databases/db4/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/libltdl/buildlink3.mk"
.include "../../devel/ncurses/buildlink3.mk"
.include "../../mk/oss.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"

View file

@ -1,12 +1,13 @@
@comment $NetBSD: PLIST,v 1.3 2009/06/14 17:32:18 joerg Exp $
@comment $NetBSD: PLIST,v 1.4 2013/02/10 08:39:00 ryoon Exp $
bin/mocp
${PLIST.flac}lib/moc/decoder_plugins/libflac_decoder.la
lib/moc/decoder_plugins/libmp3_decoder.la
${PLIST.vorbis}lib/moc/decoder_plugins/libvorbis_decoder.la
${PLIST.sndfile}lib/moc/decoder_plugins/libsndfile_formats_decoder.la
${PLIST.sndfile}lib/moc/decoder_plugins/libsndfile_decoder.la
${PLIST.speex}lib/moc/decoder_plugins/libspeex_decoder.la
man/man1/mocp.1
share/doc/moc/README
share/doc/moc/README_equalizer
share/doc/moc/THANKS
share/doc/moc/config.example
share/doc/moc/keymap.example

View file

@ -1,13 +1,13 @@
$NetBSD: distinfo,v 1.6 2012/01/11 19:08:55 hans Exp $
$NetBSD: distinfo,v 1.7 2013/02/10 08:39:00 ryoon Exp $
SHA1 (moc-2.5.0-alpha3.tar.bz2) = 59251b6239ad38f3f5ba8a1f73d1e90246765ab7
RMD160 (moc-2.5.0-alpha3.tar.bz2) = 7a603538e2080f3e182a543bc82100a09a56c2fe
Size (moc-2.5.0-alpha3.tar.bz2) = 489824 bytes
SHA1 (patch-aa) = bf667dadb3fb78216dcd56d5246b33d25dd5fcf0
SHA1 (patch-ab) = fc111fd7808dcfb7c8e25a8ba65997682012c8d9
SHA1 (patch-ac) = 6b42e7df0dc3dfeb0a7c5e5226a28b01d2fd27c7
SHA1 (patch-ad) = 44b3ede2c3d69857e84a67ede997b429cce61a29
SHA1 (patch-ae) = f7b98f7af3843432bab24049b17c8639a0dfce59
SHA1 (patch-af) = 0176dff0c460a12a563df10685818face3c4b3d5
SHA1 (patch-ag) = 818df09cf6d06165cbd1c62681a3b5d84daa30bf
SHA1 (patch-playlist__file.c) = 1026a40068a75e5076d3b6d661e5c47f7f0a418e
SHA1 (moc-2.5.0-beta1.tar.bz2) = 4030a1fa5c7cfef06909c54d8c7a1fbb93f23caa
RMD160 (moc-2.5.0-beta1.tar.bz2) = ca7095f71e5fe8155eda41e98547db541d6a4cab
Size (moc-2.5.0-beta1.tar.bz2) = 570468 bytes
SHA1 (patch-aa) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
SHA1 (patch-ab) = 101bc0808cc3a4981d51720c6558ce61f66c79d7
SHA1 (patch-ac) = 8d42e26a6e4c5483741e74a71a747dc68888b9b2
SHA1 (patch-ad) = 0f51c3145a393e6b99ca47b3e9622c332872e0b4
SHA1 (patch-af) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
SHA1 (patch-ag) = adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
SHA1 (patch-decoder__plugins_vorbis_vorbis.m4) = d85c04e8e8576afae224c07d7aac0aec3aebbb7f
SHA1 (patch-playlist__file.c) = dcd6387567031c4f540b869c01765223a81a74b0

View file

@ -1,40 +1,2 @@
$NetBSD: patch-aa,v 1.3 2011/09/04 04:37:55 dholland Exp $
$NetBSD: patch-aa,v 1.4 2013/02/10 08:39:00 ryoon Exp $
--- softmixer.c.orig 2007-12-15 07:38:57.000000000 +0000
+++ softmixer.c
@@ -17,6 +17,10 @@
#include "config.h"
#endif
+#ifdef __NetBSD__
+#include <sys/param.h>
+#endif
+
#define _GNU_SOURCE
#include <stdio.h>
#include <string.h>
@@ -35,6 +39,12 @@
#include "common.h"
#include "log.h"
+#if defined(__NetBSD__) && __NetBSD_Version__ < 599001500
+#define OLD_GETLINE
+int getline(FILE *, char *, size_t, const char **);
+#include "getline.c"
+#endif
+
#define swap_32bit_endianess(i32) \
( ((i32&0x000000FF)<<24) | ((i32&0x0000FF00)<<8)| \
((i32&0x00FF0000)>>8) | ((i32&0xFF000000)>>24) )
@@ -147,7 +157,11 @@ void softmixer_read_config()
int buffersize=-1, readbytes=-1;
int tmp;
+#ifdef OLD_GETLINE
+ while((readbytes=getline(cf, linebuffer, (size_t)buffersize, (void *)NULL) > -1))
+#else
while((readbytes=getline(&linebuffer, &buffersize, cf)>-1))
+#endif
{
if(
strncasecmp

View file

@ -1,20 +1,11 @@
$NetBSD: patch-ab,v 1.2 2011/09/12 06:27:21 dholland Exp $
$NetBSD: patch-ab,v 1.3 2013/02/10 08:39:00 ryoon Exp $
- use export-dynamic correctly
- check for sched_get_priority_max being in -lrt
--- configure.in.start 2008-02-25 22:37:30.000000000 +0000
--- configure.in.orig 2012-10-11 19:39:37.000000000 +0000
+++ configure.in
@@ -39,7 +39,7 @@ case "$OS" in
;;
esac
-LDFLAGS="$LDFLAGS -export-dynamic"
+LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
AC_HEADER_STDC
AC_CHECK_HEADERS([fcntl.h string.h strings.h sys/param.h unistd.h sys/un.h \
@@ -49,7 +49,10 @@ AC_CHECK_HEADERS([fcntl.h string.h strin
@@ -87,7 +87,10 @@ AC_CHECK_HEADERS([fcntl.h string.h strin
AC_MSG_ERROR([Can't find required header files.]))
AC_CHECK_HEADERS([sys/select.h inttypes.h limits.h stdint.h])
@ -26,3 +17,12 @@ $NetBSD: patch-ab,v 1.2 2011/09/12 06:27:21 dholland Exp $
dnl langinfo
AC_CHECK_HEADERS([langinfo.h])
@@ -142,7 +145,7 @@ AX_CFLAGS_GCC_OPTION(-W)
PKG_PROG_PKG_CONFIG([0.20])
-if test "x$PKG_CONFIG" == "x"
+if test "x$PKG_CONFIG" = "x"
then
AC_MSG_WARN([No pkg-config utility found or it's too old, I will have trouble finding installed libraries.])
fi

View file

@ -1,8 +1,9 @@
$NetBSD: patch-ac,v 1.1.1.1 2008/04/07 16:10:37 bjs Exp $
$NetBSD: patch-ac,v 1.2 2013/02/10 08:39:00 ryoon Exp $
--- Makefile.am.orig 2007-12-15 02:38:57.000000000 -0500
--- Makefile.am.orig 2012-07-08 01:16:08.000000000 +0000
+++ Makefile.am
@@ -1,4 +1,5 @@
@@ -1,5 +1,6 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = themes decoder_plugins
+ACLOCAL_AMFLAGS = -I m4
AM_CPPFLAGS = -DSYSTEM_THEMES_DIR=\"$(pkgdatadir)/themes\" \

View file

@ -1,23 +1,23 @@
$NetBSD: patch-ad,v 1.3 2011/09/12 06:27:21 dholland Exp $
$NetBSD: patch-ad,v 1.4 2013/02/10 08:39:00 ryoon Exp $
regen after patching configure.in:
- use export-dynamic correctly (first hunk)
- check for sched_get_priority_max being in -lrt
--- configure.orig 2008-02-25 22:38:19.000000000 +0000
--- configure.orig 2012-10-11 19:45:04.000000000 +0000
+++ configure
@@ -22310,7 +22310,7 @@ _ACEOF
;;
esac
@@ -18085,7 +18085,7 @@ $as_echo "no" >&6; }
-LDFLAGS="$LDFLAGS -export-dynamic"
+LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
fi
{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
@@ -22895,6 +22895,72 @@ if test `eval echo '${'$as_ac_var'}'` =
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-if test "x$PKG_CONFIG" == "x"
+if test "x$PKG_CONFIG" = "x"
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No pkg-config utility found or it's too old, I will have trouble finding installed libraries." >&5
$as_echo "$as_me: WARNING: No pkg-config utility found or it's too old, I will have trouble finding installed libraries." >&2;}
@@ -24165,6 +24165,72 @@ eval as_val=\$$as_ac_var
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
+else
@ -89,11 +89,20 @@ regen after patching configure.in:
fi
done
@@ -27118,6 +27184,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
mp_cv_ncursesw=no
+ LIBS="$mp_save_LIBS"
@@ -25078,6 +25144,7 @@ if ac_fn_c_try_link "$LINENO"; then :
mp_cv_ncursesw=yes
else
mp_cv_ncursesw=no
+ LIBS="$mp_save_LIBS"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
@@ -27422,7 +27489,7 @@ if test "${with_vorbis+set}" = set; then
fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-if test "x$with_vorbis" == "xtremor"
+if test "x$with_vorbis" = "xtremor"
then
pkg_failed=no

View file

@ -1,19 +0,0 @@
$NetBSD: patch-ae,v 1.1 2009/07/07 21:18:52 joerg Exp $
--- interface_elements.h.orig 2009-07-07 12:34:49.000000000 +0200
+++ interface_elements.h
@@ -1,7 +1,13 @@
#ifndef INTERFACE_ELEMENTS_H
#define INTERFACE_ELEMENTS_H
-#include <ncurses.h>
+#ifdef HAVE_NCURSESW_H
+# include <ncursesw/curses.h>
+#elif HAVE_NCURSES_H
+# include <ncurses.h>
+#elif HAVE_CURSES_H
+# include <curses.h>
+#endif
#include "files.h"
#include "keys.h"

View file

@ -1,15 +1,2 @@
$NetBSD: patch-af,v 1.1 2009/07/07 21:18:52 joerg Exp $
$NetBSD: patch-af,v 1.2 2013/02/10 08:39:00 ryoon Exp $
--- m4/mp_with_curses.m4.orig 2009-07-07 12:30:19.000000000 +0200
+++ m4/mp_with_curses.m4
@@ -45,8 +45,8 @@ AC_DEFUN([MP_WITH_CURSES],
if test ! "$CURSES_LIB" -a "$with_ncurses" != yes
then
AC_CACHE_CHECK([for working curses], mp_cv_curses,
- [LIBS="$LIBS -lcurses"
- AC_TRY_LINK(
+ [LIBS="$mp_save_LIBS -lcurses"
+ AC_TRYLINK(
[#include <curses.h>],
[chtype a; int b=A_STANDOUT, c=KEY_LEFT; initscr(); ],
mp_cv_curses=yes, mp_cv_curses=no)])

View file

@ -1,13 +1,2 @@
$NetBSD: patch-ag,v 1.1 2009/07/07 21:18:52 joerg Exp $
$NetBSD: patch-ag,v 1.2 2013/02/10 08:39:00 ryoon Exp $
--- interface_elements.c.orig 2009-07-07 13:23:11.000000000 +0200
+++ interface_elements.c
@@ -2526,7 +2526,7 @@ static void info_win_draw_title (const s
}
else {
wattrset (w->win, get_color(CLR_TITLE));
- xmvwaddnstr (w->win, 1, 4, w->title, COLS - 5);
+ xmvwaddnstr (w->win, 1, 4, w->title ? w->title : "", COLS - 5);
}
}

View file

@ -0,0 +1,13 @@
$NetBSD: patch-decoder__plugins_vorbis_vorbis.m4,v 1.1 2013/02/10 08:39:00 ryoon Exp $
--- decoder_plugins/vorbis/vorbis.m4.orig 2012-04-16 03:18:59.000000000 +0000
+++ decoder_plugins/vorbis/vorbis.m4
@@ -3,7 +3,7 @@ dnl vorbis
AC_ARG_WITH(vorbis, AS_HELP_STRING([--without-vorbis],
[Compile without Ogg Vorbis support]))
-if test "x$with_vorbis" == "xtremor"
+if test "x$with_vorbis" = "xtremor"
then
PKG_CHECK_MODULES(OGG_VORBIS,
[vorbisidec >= 1.0],

View file

@ -1,52 +1,28 @@
$NetBSD: patch-playlist__file.c,v 1.1 2012/01/11 19:08:55 hans Exp $
$NetBSD: patch-playlist__file.c,v 1.2 2013/02/10 08:39:00 ryoon Exp $
--- playlist_file.c.orig 2007-07-30 16:58:46.000000000 +0200
+++ playlist_file.c 2011-12-30 17:36:48.654368031 +0100
@@ -91,8 +91,10 @@ static int plist_load_m3u (struct plist
--- playlist_file.c.orig 2012-08-16 06:44:35.000000000 +0000
+++ playlist_file.c
@@ -90,9 +90,11 @@ static int plist_load_m3u (struct plist
return 0;
}
+#ifndef __sun
if (flock(fileno(file), LOCK_SH) == -1)
logit ("Can't flock() the playlist file: %s", strerror(errno));
/* Lock gets released by fclose(). */
if (flock (fileno (file), LOCK_SH) == -1)
logit ("Can't flock() the playlist file: %s", strerror (errno));
+#endif
while ((line = read_line(file))) {
if (!strncmp(line, "#EXTINF:", sizeof("#EXTINF:")-1)) {
@@ -190,9 +192,12 @@ static int plist_load_m3u (struct plist
free (line);
}
+#ifndef __sun
if (flock(fileno(file), LOCK_UN) == -1)
logit ("Can't flock() (unlock) the playlist file: %s",
strerror(errno));
+#endif
+
fclose (file);
return added;
@@ -432,8 +437,10 @@ static int plist_save_m3u (struct plist
while ((line = read_line (file))) {
if (!strncmp (line, "#EXTINF:", sizeof("#EXTINF:") - 1)) {
@@ -412,9 +414,11 @@ static int plist_save_m3u (struct plist
return 0;
}
+#ifndef __sun
if (flock(fileno(file), LOCK_EX) == -1)
logit ("Can't flock() the playlist file: %s", strerror(errno));
/* Lock gets released by fclose(). */
if (flock (fileno (file), LOCK_EX) == -1)
logit ("Can't flock() the playlist file: %s", strerror (errno));
+#endif
if (fprintf(file, "#EXTM3U\r\n") < 0) {
error ("Error writing playlist: %s", strerror(errno));
@@ -481,9 +488,12 @@ static int plist_save_m3u (struct plist
}
}
+#ifndef __sun
if (flock(fileno(file), LOCK_UN) == -1)
logit ("Can't flock() (unlock) the playlist file: %s",
strerror(errno));
+#endif
+
if (fclose(file)) {
error ("Error writing playlist: %s", strerror(errno));
return 0;
if (fprintf (file, "#EXTM3U\r\n") < 0) {
error ("Error writing playlist: %s", strerror (errno));