summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/vlc/APKBUILD143
-rw-r--r--user/vlc/endian-fix.patch14
-rw-r--r--user/vlc/lua.patch255
3 files changed, 312 insertions, 100 deletions
diff --git a/user/vlc/APKBUILD b/user/vlc/APKBUILD
index a11b883f7..5f936cac8 100644
--- a/user/vlc/APKBUILD
+++ b/user/vlc/APKBUILD
@@ -1,26 +1,20 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=vlc
pkgver=3.0.3
-_pkgver=${pkgver/_/-}
-_ver=${_pkgver%[a-z]}
-pkgrel=1
-pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
+pkgrel=2
+pkgdesc="Multi-platform MPEG, VCD/DVD, and DivX player"
triggers="vlc-libs.trigger=/usr/lib/vlc/plugins"
pkgusers="vlc"
pkggroups="vlc"
url="https://www.videolan.org/vlc/"
arch="all"
-license="GPL-2.0-or-later"
+license="GPL-2.0+"
options="!checkroot textrel"
-subpackages="$pkgname-dev
- $pkgname-doc
- $pkgname-qt
- $pkgname-xorg
- $pkgname-daemon::noarch
- $pkgname-libs
- $pkgname-plugins
+subpackages="$pkgname-dev $pkgname-doc $pkgname-qt $pkgname-xorg
+ $pkgname-daemon::noarch $pkgname-libs $pkgname-plugins
+ $pkgname-lang
$pkgname-plugins-access:plugins_access
$pkgname-plugins-access_output:plugins_access_output
@@ -46,91 +40,40 @@ subpackages="$pkgname-dev
$pkgname-plugins-video_output:plugins_video_output
$pkgname-plugins-visualization:plugins_visualization"
depends="ttf-dejavu $pkgname-plugins"
-makedepends="
- a52dec-dev
- alsa-lib-dev
- automake
- autoconf
- bison
- libtool
- dbus-dev
- faad2-dev
- ffmpeg-dev
- flac-dev
- flex
- fluidsynth-dev
- freetype-dev
- fribidi-dev
- gtk+3.0-dev
- libbluray-dev>=0.2.1 libbluray-dev<20100000
- libavc1394-dev
- libcddb-dev
- libdc1394-dev>=2.1.0
- libdca-dev
- libdvbpsi-dev
- libdvdnav-dev
- libdvdread-dev
- libgcrypt-dev
- libice-dev
- libjpeg-turbo-dev
- libmad-dev
- libmatroska-dev
- libmpeg2-dev
- libnotify-dev
- libogg-dev
- libraw1394-dev>=2.0.1
- librsvg-dev
- libshout-dev
- libsm-dev
- libtheora-dev
- libva-dev
- libvdpau-dev
- libvorbis-dev
- libvpx-dev
- libx11-dev
- libxext-dev
- libxinerama-dev
- libxml2-dev
- libxpm-dev
- libxv-dev
- live-media-dev>=2012.01.26
- lua5.2-dev
- mesa-dev
- ncurses-dev
- opus-dev
- pkgconfig
- pulseaudio-dev
- qt5-qtbase-dev
- qt5-qtsvg-dev
- qt5-qtx11extras-dev
- sdl2-dev
- speex-dev
- speexdsp-dev
- sysfsutils-dev
- taglib-dev
- eudev-dev
- v4l-utils-dev
- wayland-protocols
- x264-dev
- x265-dev
- xcb-util-renderutil-dev
- xcb-util-keysyms-dev
+# Generic dependencies, then X11, then multimedia libraries
+makedepends="autoconf automake bison eudev-dev flex libarchive-dev
+ libgcrypt-dev libtool libxml2-dev lua5.3-dev ncurses-dev sysfsutils-dev
+
+ dbus-dev freetype-dev fribidi-dev gtk+3.0-dev libice-dev libnotify-dev
+ libjpeg-turbo-dev libsm-dev libx11-dev libxext-dev libxinerama-dev
+ libxpm-dev libxv-dev mesa-dev qt5-qtbase-dev qt5-qtsvg-dev sdl2-dev
+ qt5-qtx11extras-dev xcb-util-keysyms-dev xcb-util-renderutil-dev
xdg-utils
+
+ a52dec-dev alsa-lib-dev faad2-dev ffmpeg-dev flac-dev fluidsynth-dev
+ libaacs-dev libavc1394-dev libbluray-dev>=0.2.1 libbluray-dev<20100000
+ libcddb-dev libdc1394-dev>=2.1.0 libdca-dev libdvbpsi-dev libdvdnav-dev
+ libdvdread-dev libmad-dev libmatroska-dev libmpeg2-dev libogg-dev
+ libraw1394-dev>=2.0.1 librsvg-dev libshout-dev libtheora-dev libva-dev
+ libvdpau-dev libvorbis-dev libvpx-dev live-media-dev>=2012.01.26
+ opus-dev pulseaudio-dev speex-dev speexdsp-dev taglib-dev v4l-utils-dev
+ x264-dev x265-dev gstreamer-dev gst-plugins-base-dev
"
-source="http://get.videolan.org/vlc/$_ver/vlc-$_ver.tar.xz
- omxil-rpi-codecs.patch
+source="https://get.videolan.org/vlc/$pkgver/vlc-$pkgver.tar.xz
check-headless.patch
disable-sub-autodetect-fuzzy-1-test.patch
+ endian-fix.patch
fribidi-update.patch
+ lua.patch
+ omxil-rpi-codecs.patch
tar-compat.patch
test-s390x.patch
- vlc-libs.trigger"
-
-builddir="$srcdir"/$pkgname-$_ver
+ vlc-libs.trigger
+ "
prepare() {
default_prepare
- NOCONFIGURE=1 ./bootstrap
+ NOCONFIGURE=1 ./bootstrap
}
build() {
@@ -142,32 +85,35 @@ build() {
arm*) _arch_opts="--enable-omxil --enable-omxil-vout --enable-rpi-omxil" ;;
aarch64) _arch_opts="--enable-neon" ;;
ppc64*) _arch_opts="--enable-altivec" ;;
+ x86* | pmmx) _arch_opts="--disable-mmx --disable-sse" ;;
esac
- LUA=lua5.2 \
- LUAC=luac5.2 \
BUILDCC="${CC:-gcc} -std=c99" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --disable-mmx \
- --disable-sse \
--enable-nls \
--enable-optimizations \
--enable-optimize-memory \
--disable-rpath \
+ --disable-wayland \
+ --enable-dbus \
+ --enable-notify \
+ --enable-ncurses \
+ --enable-pulse \
+ --enable-qt \
+ --enable-udev \
--enable-a52 \
--enable-avcodec \
--enable-avformat \
--enable-bluray \
--enable-cdda \
- --enable-dbus \
--enable-dc1394 \
--enable-dca \
--enable-dvbpsi \
- --enable-dvdread \
--enable-dvdnav \
+ --enable-dvdread \
--enable-faad \
--enable-flac \
--enable-fluidsynth \
@@ -178,13 +124,9 @@ build() {
--enable-live555 \
--enable-mad \
--enable-merge-ffmpeg \
- --enable-notify \
- --enable-ncurses \
--enable-ogg \
--enable-opus \
--enable-png \
- --enable-pulse \
- --enable-qt \
--enable-realrtsp \
--enable-shout \
--enable-skins2 \
@@ -192,7 +134,6 @@ build() {
--enable-sout \
--enable-taglib \
--enable-theora \
- --enable-udev \
--enable-v4l2 \
--enable-vdpau \
--enable-vlm \
@@ -353,10 +294,12 @@ plugins_video_output() { _mv_plugins video_output; }
plugins_visualization() { _mv_plugins visualization; }
sha512sums="1569cefa6623b2631a832679bc9a63ebeba222901e5221d254e896a68d2ee467054da8de9eda566924e80a11bb29a673a9f0c4243793845547d8027b58a238ab vlc-3.0.3.tar.xz
-e13e398b7bfd977f6e099bcb6cf8dc5cd5bad6dea3eff715881826246dc4329468846084aff2576de2b7fd28d3f06e7c327a6e4511a28d22e5cd198a81146c89 omxil-rpi-codecs.patch
22d80df599b8b65a5439cefbb7140af8e9530f326d54945da3769af65f37518b99ec2cc8647aafd2763324a0698280915afe043cc87e5720c4694881ed35bffa check-headless.patch
e214b407235cb3afb8bec93f20c9b42957b57e6fd3960679d3d4235e77762e03e64d03c01f00ef63d589e7c85aaad02ce6abbeeccd66b1867bc92451a5b5e9b0 disable-sub-autodetect-fuzzy-1-test.patch
+e063c727d952465bbea33f669db49190427521dc8e2291e9a5cbb0f5e8e879bd3ba76855e44bd4630948e30c4329d27bd928f95de20fe1050d5e839778a4d012 endian-fix.patch
3338531d385f76d9eedf10498d1b0b78565c531eedb3018d4500e377815f9ccbfcc16ec398cb8559bcc624f65b61d376125c4a5e6880cbad90ec9880dd4b9ce5 fribidi-update.patch
+35f83e38a6a0dd1e3c37e3dc6d63b1406d2f9454ed246854c1408d6f35ad74b743c5b0dbc19442bab65aad4268707ffa85bfda9e72b2d711c1d3412d955bf150 lua.patch
+e13e398b7bfd977f6e099bcb6cf8dc5cd5bad6dea3eff715881826246dc4329468846084aff2576de2b7fd28d3f06e7c327a6e4511a28d22e5cd198a81146c89 omxil-rpi-codecs.patch
a117ca4d7fd66a5f959fdeaddfdce2f8442fe9f2c13995bb7f4792a7745c00813813aa962f76e957e3b0735344a5dc000e0644ce09f23458802a2932231655c3 tar-compat.patch
c0107655249687655846a9547ca1a5670b9207443180600e7a149c69ffb96d7226787c19b018d4033db9b284c1a5faa8d7d42188ed40c3b8bb051256febf11c5 test-s390x.patch
b67b6e21e9d4027aef1006e6057f9ba8e65ce3895b08f7b911b1675cff9bc423f64ee2c187c584860e9e5d4635a30408a7781add9694d9bba753eac37f357406 vlc-libs.trigger"
diff --git a/user/vlc/endian-fix.patch b/user/vlc/endian-fix.patch
new file mode 100644
index 000000000..872cd0c6a
--- /dev/null
+++ b/user/vlc/endian-fix.patch
@@ -0,0 +1,14 @@
+--- vlc-3.0.3/modules/video_chroma/copy.c.old 2018-04-18 16:19:34.000000000 +0000
++++ vlc-3.0.3/modules/video_chroma/copy.c 2018-07-22 02:13:19.870000000 +0000
+@@ -1119,7 +1119,11 @@
+ vlc_assert_unreachable();
+ }
+
++#ifndef WORDS_BIGENDIAN
+ uint32_t color_16_UV = (colors_16_P[2] << 16) | colors_16_P[1];
++#else
++ uint32_t color_16_UV = (colors_16_P[1] << 16) | colors_16_P[2];
++#endif
+
+ PICCHECK(uint16_t, uint32_t, colors_16_P, color_16_UV, 2);
+ }
diff --git a/user/vlc/lua.patch b/user/vlc/lua.patch
new file mode 100644
index 000000000..7bdfbae65
--- /dev/null
+++ b/user/vlc/lua.patch
@@ -0,0 +1,255 @@
+From ab1202af18e34427750d8c8d72240145869f2a68 Mon Sep 17 00:00:00 2001
+From: Tim Orling <TicoTimo@gmail.com>
+Date: Sun, 2 Aug 2015 20:04:25 -0700
+Subject: [PATCH] * luaL_checkint and luaL_optint deprecated in lua 5.3 *
+ Replacements are luaL_checkinteger and luaL_optinteger
+
+Signed-off-by: Tim Orling <TicoTimo@gmail.com>
+---
+ modules/lua/libs/net.c | 22 +++++++++++-----------
+ modules/lua/libs/osd.c | 12 ++++++------
+ modules/lua/libs/playlist.c | 10 +++++-----
+ modules/lua/libs/stream.c | 2 +-
+ modules/lua/libs/volume.c | 6 +++---
+ 9 files changed, 31 insertions(+), 31 deletions(-)
+
+diff --git a/modules/lua/libs/net.c b/modules/lua/libs/net.c
+index 3d760bf451a..85a7432138e 100644
+--- a/modules/lua/libs/net.c
++++ b/modules/lua/libs/net.c
+@@ -208,7 +208,7 @@ static int vlclua_net_listen_tcp( lua_State *L )
+ {
+ vlc_object_t *p_this = vlclua_get_this( L );
+ const char *psz_host = luaL_checkstring( L, 1 );
+- int i_port = luaL_checkint( L, 2 );
++ int i_port = luaL_checkinteger( L, 2 );
+ int *pi_fd = net_ListenTCP( p_this, psz_host, i_port );
+ if( pi_fd == NULL )
+ return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port );
+diff --git a/modules/lua/libs/osd.c b/modules/lua/libs/osd.c
+index 2d3ee1f94a2..796c15d39c1 100644
+--- a/modules/lua/libs/osd.c
++++ b/modules/lua/libs/osd.c
+@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register( lua_State *L )
+
+ static int vlclua_spu_channel_clear( lua_State *L )
+ {
+- int i_chan = luaL_checkint( L, 1 );
++ int i_chan = luaL_checkinteger( L, 1 );
+ input_thread_t *p_input = vlclua_get_input_internal( L );
+ if( !p_input )
+ return luaL_error( L, "Unable to find input." );
+diff --git a/modules/lua/libs/playlist.c b/modules/lua/libs/playlist.c
+index 115926262e8..b671b7f3984 100644
+--- a/modules/lua/libs/playlist.c
++++ b/modules/lua/libs/playlist.c
+@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_State * L )
+
+ static int vlclua_playlist_skip( lua_State * L )
+ {
+- int i_skip = luaL_checkint( L, 1 );
++ int i_skip = luaL_checkinteger( L, 1 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ playlist_Skip( p_playlist, i_skip );
+ return 0;
+@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_State * L )
+
+ static int vlclua_playlist_gotoitem( lua_State * L )
+ {
+- int i_id = luaL_checkint( L, 1 );
++ int i_id = luaL_checkinteger( L, 1 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ PL_LOCK;
+ playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, true, NULL,
+@@ -138,7 +138,7 @@ static int vlclua_playlist_gotoitem( lua_State * L )
+
+ static int vlclua_playlist_delete( lua_State * L )
+ {
+- int i_id = luaL_checkint( L, 1 );
++ int i_id = luaL_checkinteger( L, 1 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ PL_LOCK;
+ playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id );
+@@ -154,8 +154,8 @@ static int vlclua_playlist_delete( lua_State * L )
+
+ static int vlclua_playlist_move( lua_State * L )
+ {
+- int i_item = luaL_checkint( L, 1 );
+- int i_target = luaL_checkint( L, 2 );
++ int i_item = luaL_checkinteger( L, 1 );
++ int i_target = luaL_checkinteger( L, 2 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ PL_LOCK;
+ playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item );
+diff --git a/modules/lua/libs/stream.c b/modules/lua/libs/stream.c
+index f93fe0b03a4..20b34d9c1b9 100644
+--- a/modules/lua/libs/stream.c
++++ b/modules/lua/libs/stream.c
+@@ -101,7 +101,7 @@ static int vlclua_stream_read( lua_State *L )
+ {
+ int i_read;
+ stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" );
+- int n = luaL_checkint( L, 2 );
++ int n = luaL_checkinteger( L, 2 );
+ uint8_t *p_read = malloc( n );
+ if( !p_read ) return vlclua_error( L );
+
+diff --git a/modules/lua/libs/volume.c b/modules/lua/libs/volume.c
+index b361647545c..d37568bae41 100644
+--- a/modules/lua/libs/volume.c
++++ b/modules/lua/libs/volume.c
+@@ -48,7 +48,7 @@
+ static int vlclua_volume_set( lua_State *L )
+ {
+ playlist_t *p_this = vlclua_get_playlist_internal( L );
+- int i_volume = luaL_checkint( L, 1 );
++ int i_volume = luaL_checkinteger( L, 1 );
+ if( i_volume < 0 )
+ i_volume = 0;
+ int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT );
+--- vlc-3.0.3/modules/lua/demux.c.old 2017-12-21 09:51:16.000000000 +0000
++++ vlc-3.0.3/modules/lua/demux.c 2018-07-21 23:42:36.490000000 +0000
+@@ -52,7 +52,7 @@
+ static int vlclua_demux_peek( lua_State *L )
+ {
+ stream_t *s = (stream_t *)vlclua_get_this(L);
+- int n = luaL_checkint( L, 1 );
++ int n = luaL_checkinteger( L, 1 );
+ const uint8_t *p_peek;
+
+ ssize_t val = vlc_stream_Peek(s->p_source, &p_peek, n);
+@@ -66,7 +66,7 @@
+ static int vlclua_demux_read( lua_State *L )
+ {
+ stream_t *s = (stream_t *)vlclua_get_this(L);
+- int n = luaL_checkint( L, 1 );
++ int n = luaL_checkinteger( L, 1 );
+ char *buf = malloc(n);
+
+ if (buf != NULL)
+--- vlc-3.0.3/modules/lua/libs/dialog.c.old 2017-11-24 15:29:18.000000000 +0000
++++ vlc-3.0.3/modules/lua/libs/dialog.c 2018-07-21 23:43:12.100000000 +0000
+@@ -382,7 +382,7 @@
+ /* Read entry in the Lua registry */
+ lua_pushlightuserdata( L, (void*) &key_update );
+ lua_gettable( L, LUA_REGISTRYINDEX );
+- return luaL_checkint( L, -1 );
++ return luaL_checkinteger( L, -1 );
+ }
+
+ /** Manually update a dialog
+@@ -573,22 +573,22 @@
+
+ /* Set common arguments: col, row, hspan, vspan, width, height */
+ if( lua_isnumber( L, arg ) )
+- p_widget->i_column = luaL_checkint( L, arg );
++ p_widget->i_column = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_row = luaL_checkint( L, arg );
++ p_widget->i_row = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_horiz_span = luaL_checkint( L, arg );
++ p_widget->i_horiz_span = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_vert_span = luaL_checkint( L, arg );
++ p_widget->i_vert_span = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_width = luaL_checkint( L, arg );
++ p_widget->i_width = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_height = luaL_checkint( L, arg );
++ p_widget->i_height = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+
+ end_of_args:
+--- vlc-3.0.3/modules/lua/libs/net.c.old 2018-07-21 23:33:19.070000000 +0000
++++ vlc-3.0.3/modules/lua/libs/net.c 2018-07-21 23:43:52.200000000 +0000
+@@ -251,7 +251,7 @@
+ {
+ vlc_object_t *p_this = vlclua_get_this( L );
+ const char *psz_host = luaL_checkstring( L, 1 );
+- int i_port = luaL_checkint( L, 2 );
++ int i_port = luaL_checkinteger( L, 2 );
+ int i_fd = net_ConnectTCP( p_this, psz_host, i_port );
+ lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) );
+ return 1;
+@@ -259,14 +259,14 @@
+
+ static int vlclua_net_close( lua_State *L )
+ {
+- int i_fd = luaL_checkint( L, 1 );
++ int i_fd = luaL_checkinteger( L, 1 );
+ vlclua_fd_unmap_safe( L, i_fd );
+ return 0;
+ }
+
+ static int vlclua_net_send( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len;
+ const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
+
+@@ -278,7 +278,7 @@
+
+ static int vlclua_net_recv( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
+ char psz_buffer[i_len];
+
+@@ -312,7 +312,7 @@
+ lua_pushnil( L );
+ for( int i = 0; lua_next( L, 1 ); i++ )
+ {
+- luafds[i] = luaL_checkint( L, -2 );
++ luafds[i] = luaL_checkinteger( L, -2 );
+ p_fds[i].fd = vlclua_fd_get( L, luafds[i] );
+ p_fds[i].events = luaL_checkinteger( L, -1 );
+ p_fds[i].events &= POLLIN | POLLOUT | POLLPRI;
+@@ -360,7 +360,7 @@
+ #ifndef _WIN32
+ static int vlclua_fd_write( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len;
+ const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
+
+@@ -371,7 +371,7 @@
+
+ static int vlclua_fd_read( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
+ char psz_buffer[i_len];
+
+--- vlc-3.0.3/modules/lua/libs/osd.c.old 2018-07-21 23:33:19.070000000 +0000
++++ vlc-3.0.3/modules/lua/libs/osd.c 2018-07-21 23:44:09.710000000 +0000
+@@ -154,7 +154,7 @@
+
+ static int vlclua_osd_slider( lua_State *L )
+ {
+- int i_position = luaL_checkint( L, 1 );
++ int i_position = luaL_checkinteger( L, 1 );
+ const char *psz_type = luaL_checkstring( L, 2 );
+ int i_type = vlc_osd_slider_type_from_string( psz_type );
+ int i_chan = (int)luaL_optinteger( L, 3, VOUT_SPU_CHANNEL_OSD );
+--- vlc-3.0.3/modules/lua/libs/io.c.old 2018-04-18 16:19:34.000000000 +0000
++++ vlc-3.0.3/modules/lua/libs/io.c 2018-07-22 00:12:13.260000000 +0000
+@@ -139,7 +139,7 @@
+ const char* psz_mode = luaL_optstring( L, 2, NULL );
+ if ( psz_mode != NULL )
+ {
+- long i_offset = luaL_optlong( L, 3, 0 );
++ long i_offset = (long)luaL_optinteger( L, 3, 0 );
+ int i_mode;
+ if ( !strcmp( psz_mode, "set" ) )
+ i_mode = SEEK_SET;