echo '#ifdef __PLUGIN__' >> $@.in
cat $(HEADERS_include) | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/# define \2 p_symbols->\2_inner/' >> $@.in
echo '#endif /* __PLUGIN__ */' >> $@.in
- mv -f $@.in $@
+ if ! diff -q $@ $@.in; then \
+ mv -f $@.in $@ ; \
+ else \
+ rm -f $@.in ; \
+ fi
src/misc/modules_plugin.h: Makefile src/misc/modules_plugin.h.in $(HEADERS_include)
rm -f $@.tmp && cp $@.in $@.tmp
echo '#define STORE_SYMBOLS( p_symbols ) \' >> $@.tmp
cat $(HEADERS_include) | grep '^ *VLC_EXPORT.*;' | sed -e 's/VLC_EXPORT( *\([^,]*\), *\([^,]*\), *\(.*\));.*/ (p_symbols)->\2_inner = \2; \\/' >> $@.tmp
echo '' >> $@.tmp
- mv -f $@.tmp $@
+ if ! diff -q $@ $@.tmp; then \
+ mv -f $@.tmp $@ ; \
+ else \
+ rm -f $@.tmp ; \
+ fi
src/misc/modules_builtin.h: Makefile src/misc/modules_builtin.h.in
rm -f $@.tmp && cp $@.in $@.tmp
endif
echo " } while( 0 );" >> $@.tmp
echo "" >> $@.tmp
- mv -f $@.tmp $@
+ if ! diff -q $@ $@.tmp; then \
+ mv -f $@.tmp $@ ; \
+ else \
+ rm -f $@.tmp ; \
+ fi
# These dependencies are mandatory
$(SOURCES): include/vlc_symbols.h
dnl
dnl Gettext stuff
dnl
-ALL_LINGUAS="de en_GB fr it ja no ru nl pl"
+ALL_LINGUAS="de en_GB fr it ja no ru nl pl sv"
AM_GNU_GETTEXT_VERSION(0.10.40)
AM_GNU_GETTEXT
if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
* control the pace of reading.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: input_ext-intf.h,v 1.84 2003/01/16 23:25:54 lool Exp $
+ * $Id: input_ext-intf.h,v 1.85 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
/* Playlist item */
char * psz_source;
+ char * psz_dupsource;
char * psz_access;
char * psz_demux;
char * psz_name;
* Collection of useful common types and macros definitions
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vlc_common.h,v 1.52 2003/01/28 17:11:38 sam Exp $
+ * $Id: vlc_common.h,v 1.53 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Samuel Hocevar <sam@via.ecp.fr>
* Vincent Seguin <seguin@via.ecp.fr>
# define vlc_strncasecmp NULL
#endif
+VLC_EXPORT( char *, vlc_wraptext, ( char *psz_text, size_t i_line ) );
+
/* Format type specifiers for 64 bits numbers */
#if !defined(WIN32) && !defined(UNDER_CE)
# define I64Fd "%lld"
* -udf.* to find files
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: access.c,v 1.9 2003/01/28 22:03:21 sam Exp $
+ * $Id: access.c,v 1.10 2003/02/08 22:20:28 massiot Exp $
*
* Author: Stéphane Borel <stef@via.ecp.fr>
*
/* check block device */
if( stat( psz_device, &stat_info ) == -1 )
{
- msg_Err( p_input, "cannot stat() device `%s' (%s)",
- psz_device, strerror(errno));
+ msg_Warn( p_input, "cannot stat() device `%s' (%s)",
+ psz_device, strerror(errno));
free( psz_device );
return NULL;
}
* file.c: file input (file: access plug-in)
*****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN
- * $Id: file.c,v 1.9 2003/01/05 20:45:29 massiot Exp $
+ * $Id: file.c,v 1.10 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
if( !b_stdin && (i_stat = stat( psz_name, &stat_info )) == (-1) )
{
# ifdef HAVE_ERRNO_H
- msg_Err( p_input, "cannot stat() file `%s' (%s)",
- psz_name, strerror(errno));
+ msg_Warn( p_input, "cannot stat() file `%s' (%s)",
+ psz_name, strerror(errno));
# else
- msg_Err( p_input, "cannot stat() file `%s'", psz_name );
+ msg_Warn( p_input, "cannot stat() file `%s'", psz_name );
# endif
return VLC_EGENERIC;
}
* prefs.h: MacOS X plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: prefs.h,v 1.1 2002/11/05 03:57:16 jlj Exp $
+ * $Id: prefs.h,v 1.2 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
*
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
+#define PREFS_WRAP 60
+
/*****************************************************************************
* VLCPrefs interface
*****************************************************************************/
* prefs.m: MacOS X plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: prefs.m,v 1.10 2003/01/31 02:53:52 jlj Exp $
+ * $Id: prefs.m,v 1.11 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
*
#define INPUT_FIELD( ctype, cname, label, w, msg, param, tip ) \
{ \
+ char * psz_duptip = strdup(tip); \
s_rc.size.height = 25; \
s_rc.size.width = w; \
s_rc.origin.y += 10; \
[o_text_field setAlignment: NSRightTextAlignment]; \
CONTROL_CONFIG( o_text_field, o_module_name, ctype, cname ); \
[o_text_field msg: param]; \
- [o_text_field setToolTip: [NSApp localizedString: tip]]; \
+ if ( psz_duptip != NULL ) \
+ { \
+ [o_text_field setToolTip: [NSApp localizedString: \
+ vlc_wraptext(psz_duptip, PREFS_WRAP)]]; \
+ free(psz_duptip);\
+ } \
[o_view addSubview: [o_text_field autorelease]]; \
[[NSNotificationCenter defaultCenter] addObserver: self \
selector: @selector(configChanged:) \
NSPopUpButton *o_modules;
NSButton *o_btn_select;
NSButton *o_btn_configure;
+ char * psz_duptip = strdup(p_item->psz_longtext);
#define MODULE_BUTTON( button, title, sel ) \
{ \
[o_modules setTag: i_module_tag++];
[o_modules setTarget: self];
[o_modules setAction: @selector(moduleSelected:)];
- [o_modules setToolTip: [NSApp localizedString: p_item->psz_longtext]];
+ if ( psz_duptip != NULL )
+ {
+ [o_modules setToolTip: [NSApp localizedString:
+ vlc_wraptext(psz_duptip, PREFS_WRAP)]];
+ free( psz_duptip );
+ }
[o_cview addSubview: [o_modules autorelease]];
MODULE_BUTTON( o_btn_configure, _NS("Configure"),
{
int i;
VLCComboBox *o_combo_box;
+ char * psz_duptip = strdup(p_item->psz_longtext);
s_rc.size.height = 27;
s_rc.size.width = 150;
o_combo_box = [[VLCComboBox alloc] initWithFrame: s_rc];
CONTROL_CONFIG( o_combo_box, o_module_name,
CONFIG_ITEM_STRING, p_item->psz_name );
- [o_combo_box setToolTip:
- [NSApp localizedString: p_item->psz_longtext]];
+ if ( psz_duptip != NULL )
+ {
+ [o_combo_box setToolTip: [NSApp localizedString:
+ vlc_wraptext(psz_duptip, PREFS_WRAP)]];
+ free( psz_duptip );
+ }
[o_view addSubview: [o_combo_box autorelease]];
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(configChanged:)
case CONFIG_ITEM_BOOL:
{
VLCButton *o_btn_bool;
+ char * psz_duptip = strdup(p_item->psz_longtext);
s_rc.size.height = 27;
s_rc.size.width = s_vrc.size.width - X_ORIGIN * 2 - 20;
[o_btn_bool setIntValue: p_item->i_value];
[o_btn_bool setTitle:
[NSApp localizedString: p_item->psz_text]];
- [o_btn_bool setToolTip:
- [NSApp localizedString: p_item->psz_longtext]];
+ if ( psz_duptip != NULL )
+ {
+ [o_btn_bool setToolTip: [NSApp localizedString:
+ vlc_wraptext(psz_duptip, PREFS_WRAP)]];
+ free( psz_duptip );
+ }
[o_btn_bool setTarget: self];
[o_btn_bool setAction: @selector(configChanged:)];
CONTROL_CONFIG( o_btn_bool, o_module_name,
msgid ""
"This will allow you to add a post-processing filter to enhance the picture "
"quality, for instance deinterlacing, or to clone or distort the video window."
-msgstr "Cette option vous permet d'ajouter un filter de post-processing pour améliorer la qualité de l'image, par exemple du désentralement, ou pour dupliquer ou déformer la fenêtre video."
+msgstr "Cette option vous permet d'ajouter un filtre de post-processing pour améliorer la qualité de l'image, par exemple du désentralement, ou pour dupliquer ou déformer la fenêtre video."
#: src/libvlc.h:172
msgid "source aspect ratio"
* libc.c: Extra libc function for some systems.
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: libc.c,v 1.6 2002/12/30 13:34:03 sam Exp $
+ * $Id: libc.c,v 1.7 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Samuel Hocevar <sam@zoy.org>
#endif
}
+/*****************************************************************************
+ * wraptext: insert \n at convenient places. CAUTION: modifies its argument
+ *****************************************************************************/
+char *vlc_wraptext( char *psz_text, size_t i_line )
+{
+ size_t i_len = strlen(psz_text);
+ char * psz_line = psz_text;
+
+ while ( i_len > i_line )
+ {
+ /* Look if there is a newline somewhere. */
+ char * psz_parser = psz_line;
+ while ( psz_parser <= psz_line + i_line && *psz_parser != '\n' )
+ {
+ psz_parser++;
+ }
+ if ( *psz_parser == '\n' )
+ {
+ i_len -= psz_parser + 1 - psz_line;
+ psz_line = psz_parser + 1;
+ continue;
+ }
+
+ /* Find the furthest space. */
+ psz_parser = psz_line + i_line;
+ while ( psz_parser > psz_line && *psz_parser != ' ' )
+ {
+ psz_parser--;
+ }
+ if ( *psz_parser == ' ' )
+ {
+ *psz_parser = '\n';
+ i_len -= psz_parser + 1 - psz_line;
+ psz_line = psz_parser + 1;
+ continue;
+ }
+
+ /* Wrapping has failed. Find the first space or newline after i_line. */
+ psz_parser = psz_line + i_line + 1;
+ while ( psz_parser < psz_line + i_len
+ && *psz_parser != ' ' && *psz_parser != '\n' )
+ {
+ psz_parser++;
+ }
+
+ if ( psz_parser < psz_line + i_len ) *psz_parser = '\n';
+ i_len -= psz_parser + 1 - psz_line;
+ psz_line = psz_parser + 1;
+ }
+
+ return psz_text;
+}
* decoders.
*****************************************************************************
* Copyright (C) 1998-2002 VideoLAN
- * $Id: input.c,v 1.221 2002/12/31 01:54:36 massiot Exp $
+ * $Id: input.c,v 1.222 2003/02/08 22:20:28 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
static int InitThread( input_thread_t * p_input )
{
/* Parse source string. Syntax : [[<access>][/<demux>]:][<source>] */
- char * psz_parser = p_input->psz_source;
+ char * psz_parser = p_input->psz_dupsource = strdup(p_input->psz_source);
/* Skip the plug-in names */
while( *psz_parser && *psz_parser != ':' )
{
p_input->psz_access = p_input->psz_demux = "";
p_input->psz_name = p_input->psz_source;
+ free( p_input->psz_dupsource);
+ p_input->psz_dupsource = NULL;
}
else
{
p_input->p_access = module_Need( p_input, "access",
p_input->psz_access );
+ if ( p_input->p_access == NULL
+ && (*p_input->psz_demux || *p_input->psz_access) )
+ {
+ /* Maybe we got something like :
+ * /Volumes/toto:titi/gabu.mpg */
+ p_input->psz_access = p_input->psz_demux = "";
+ p_input->psz_name = p_input->psz_source;
+ free( p_input->psz_dupsource);
+ p_input->psz_dupsource = NULL;
+
+ p_input->p_access = module_Need( p_input, "access",
+ p_input->psz_access );
+ }
+
if( p_input->p_access == NULL )
{
msg_Err( p_input, "no suitable access module for `%s/%s://%s'",
input_AccessEnd( p_input );
free( p_input->psz_source );
+ if ( p_input->psz_dupsource != NULL ) free( p_input->psz_dupsource );
/* Tell we're dead */
p_input->b_dead = 1;