This commit was generated by cvs2svn to compensate for changes in r1538,

which included commits to RCS files with non-trunk default branches.

git-svn-id: svn://10.65.10.50/trunk@1539 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1995-07-03 08:42:03 +00:00
parent a4626341ed
commit 8e035e517d

View File

@ -1,4 +1,12 @@
/* u4name.c (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved. */
/* u4name.c (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved. */
/*************************************************************************************/
/* Soragna 20 Giugno 1995. Modificate le funzioni che discriminavano tra UNIX e DOS!.*/
/* In alcuni casi si eccedeva la dimensione delle stringhe di copia a causa della */
/* differenza tra / e \ che riscontrano queste funzioni. Siccome le applicazioni */
/* PR.A.S.S.I. non sono sensibili a tali differenze, e' meglio adeguare il qui */
/* presente file. Sostanzialmente tutti i controlli su / e \ vengono unificati. */
/*************************************************************************************/
#include "d4all.h"
#ifndef S4UNIX
@ -28,12 +36,15 @@ void S4FUNCTION u4name_ext( char *name, int len_result, char *new_ext, int do_re
{
ext_pos = on_pos ;
break ;
}
#ifdef S4UNIX
if ( name[on_pos] == '/' ) break ;
#else
if ( name[on_pos] == '\\' ) break ;
#endif
}
/* Soragna 20 Giugno 1995. Questa discriminazione provoca danni.
#ifdef S4UNIX
if ( name[on_pos] == '/' ) break ;
#else
if ( name[on_pos] == '\\' ) break ;
#endif
*/
if ( name[on_pos] == '/' || name[on_pos] == '\\' ) break ;
if ( on_pos == 0 ) break ;
}
@ -84,45 +95,66 @@ void S4FUNCTION u4name_make( char *buf, int buf_len, char *default_drive, char *
else
default_directory_len = 0 ;
/* Soragn 20 Giugno 1995. May cause improper assigns.
#ifdef S4UNIX
if ( file_name[0] != '/' && default_directory_len > 0 )
#else
if ( file_name[0] != '\\' && default_directory_len > 0 )
#endif
*/
if ( (file_name[0] != '/' || file_name[0] != '\\') && default_directory_len > 0 )
{
if ( pos+2 >= buf_len )
return ;
/* Soragna 20 Giugno 1995. Anche questo controllo deve essere cambiato
#ifdef S4UNIX
buf[pos++] = '/' ;
if ( default_directory[0] == '/' )
#else
buf[pos++] = '\\' ;
if ( default_directory[0] == '\\' )
#endif
*/
#ifdef S4UNIX
if ( file_name[0] != '/' && default_directory_len > 0 )
buf[pos++] = '/' ;
#else
if ( file_name[0] != '\\' && default_directory_len > 0 )
buf[pos++] = '\\' ;
#endif
{
if ( pos+2 >= buf_len )
return ;
#ifdef S4UNIX
buf[pos++] = '/' ;
if ( default_directory[0] == '/' )
#else
buf[pos++] = '\\' ;
if ( default_directory[0] == '\\' )
#endif
default_directory++ ;
if ( default_directory[0] == '/' || default_directory[0] == '\\' )
default_directory++ ;
default_directory_len = strlen(default_directory) ;
default_directory_len = strlen(default_directory) ;
u4ncpy( buf+pos, default_directory, buf_len - pos ) ;
pos += default_directory_len ;
}
u4ncpy( buf+pos, default_directory, buf_len - pos ) ;
pos += default_directory_len ;
}
if ( pos >= buf_len )
return ;
if ( pos > 0 )
{
/* Soragna 20 Giugno 1995. Pure questo non sfugge.
#ifdef S4UNIX
if ( buf[pos-1] != '/' )
buf[pos++] = '/' ;
if ( file_name[0] == '/' )
file_name++ ;
#else
if ( buf[pos-1] != '\\' )
buf[pos++] = '\\' ;
if ( file_name[0] == '\\' )
file_name++ ;
#endif
*/
if ( buf[pos-1] != '/' && buf[pos-1] != '\\' )
#ifdef S4UNIX
if ( buf[pos-1] != '/' )
buf[pos++] = '/' ;
if ( file_name[0] == '/' )
file_name++ ;
#else
if ( buf[pos-1] != '\\' )
buf[pos++] = '\\' ;
if ( file_name[0] == '\\' )
file_name++ ;
buf[pos++] = '\\' ;
#endif
if ( file_name[0] == '/' || file_name[0] == '\\' )
file_name++ ;
}
u4ncpy( buf+pos, file_name, buf_len-pos ) ;
@ -146,11 +178,16 @@ void S4FUNCTION u4name_piece( char *result, int len_result, char *from, int giv
{
switch ( from[on_pos] )
{
#ifdef S4UNIX
/*
Soragna 20 Giugno 1995. Questo era quello che faceva piu' danni.
#ifdef S4UNIX
case '/':
#else
case '\\':
#endif
*/
case '/':
#else
case '\\':
#endif
case ':':
if (name_pos == 0) name_pos = on_pos + 1 ;
are_past_ext = 1 ;
@ -268,11 +305,14 @@ int S4FUNCTION u4name_path( char *result, int len_result, char *from )
for( on_pos = 0 ; result[on_pos] != 0 ; on_pos++ ) ;
for( ; on_pos >= 0 ; on_pos-- )
#ifdef S4UNIX
if( result[on_pos] == '/' || result[on_pos] == ':' ) break ; /* end of path */
#else
if( result[on_pos] == '\\' || result[on_pos] == ':' ) break ; /* end of path */
#endif
/* Soragna 20 Giugno 1995. Anche questo puo' causare gravi macelli.
#ifdef S4UNIX
if( result[on_pos] == '/' || result[on_pos] == ':' ) break ;
#else
if( result[on_pos] == '\\' || result[on_pos] == ':' ) break ;
#endif
*/
if( result[on_pos] == '/' || result[on_pos] == '\\' || result[on_pos] == ':' ) break ; /* end of path */
if( on_pos < len_result )
result[++on_pos] = '\0' ;