Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Vermeulen <jtv@kursk>2015-03-23 16:49:17 +0300
committerJeroen Vermeulen <jtv@kursk>2015-03-23 16:49:17 +0300
commitfaa3ae8afc7d0d1f8d4d60abb06d81ec35dc7c82 (patch)
tree5f29ac8d28c8667571da0901a26a3718a7d60318 /jam-files
parentc4af7d28b5fd5c06dcc44d6c67dfe8d22aaac6ea (diff)
Remove unused code for reading "ar" archives.
The Jam code had inherited a function for enumerating "ar" archives. This wasn't used anywhere at all in the codebase, but it depended on a platform-specific "ar.h" header. Windows doesn't have that header, so this change removes one small obstacle to portability.
Diffstat (limited to 'jam-files')
-rw-r--r--jam-files/engine/filent.c124
-rw-r--r--jam-files/engine/filesys.h1
-rw-r--r--jam-files/engine/fileunix.c289
3 files changed, 0 insertions, 414 deletions
diff --git a/jam-files/engine/filent.c b/jam-files/engine/filent.c
index e4ac3319b..53bb60d52 100644
--- a/jam-files/engine/filent.c
+++ b/jam-files/engine/filent.c
@@ -16,7 +16,6 @@
* filent.c - scan directories and archives on NT
*
* External routines:
- * file_archscan() - scan an archive for files
* file_mkdir() - create a directory
* file_supported_fmt_resolution() - file modification timestamp resolution
*
@@ -309,127 +308,4 @@ void file_supported_fmt_resolution( timestamp * const t )
timestamp_init( t, 0, 0 );
}
-
-/*
- * file_archscan() - scan an archive for files
- */
-
-/* Straight from SunOS */
-
-#define ARMAG "!<arch>\n"
-#define SARMAG 8
-
-#define ARFMAG "`\n"
-
-struct ar_hdr
-{
- char ar_name[ 16 ];
- char ar_date[ 12 ];
- char ar_uid[ 6 ];
- char ar_gid[ 6 ];
- char ar_mode[ 8 ];
- char ar_size[ 10 ];
- char ar_fmag[ 2 ];
-};
-
-#define SARFMAG 2
-#define SARHDR sizeof( struct ar_hdr )
-
-void file_archscan( char const * archive, scanback func, void * closure )
-{
- struct ar_hdr ar_hdr;
- char * string_table = 0;
- char buf[ MAXJPATH ];
- long offset;
- int const fd = open( archive, O_RDONLY | O_BINARY, 0 );
-
- if ( fd < 0 )
- return;
-
- if ( read( fd, buf, SARMAG ) != SARMAG || strncmp( ARMAG, buf, SARMAG ) )
- {
- close( fd );
- return;
- }
-
- offset = SARMAG;
-
- if ( DEBUG_BINDSCAN )
- printf( "scan archive %s\n", archive );
-
- while ( ( read( fd, &ar_hdr, SARHDR ) == SARHDR ) &&
- !memcmp( ar_hdr.ar_fmag, ARFMAG, SARFMAG ) )
- {
- long lar_date;
- long lar_size;
- char * name = 0;
- char * endname;
-
- sscanf( ar_hdr.ar_date, "%ld", &lar_date );
- sscanf( ar_hdr.ar_size, "%ld", &lar_size );
-
- lar_size = ( lar_size + 1 ) & ~1;
-
- if ( ar_hdr.ar_name[ 0 ] == '/' && ar_hdr.ar_name[ 1 ] == '/' )
- {
- /* This is the "string table" entry of the symbol table, holding
- * filename strings longer than 15 characters, i.e. those that do
- * not fit into ar_name.
- */
- string_table = BJAM_MALLOC_ATOMIC( lar_size + 1 );
- if ( read( fd, string_table, lar_size ) != lar_size )
- printf( "error reading string table\n" );
- string_table[ lar_size ] = '\0';
- offset += SARHDR + lar_size;
- continue;
- }
- else if ( ar_hdr.ar_name[ 0 ] == '/' && ar_hdr.ar_name[ 1 ] != ' ' )
- {
- /* Long filenames are recognized by "/nnnn" where nnnn is the
- * string's offset in the string table represented in ASCII
- * decimals.
- */
- name = string_table + atoi( ar_hdr.ar_name + 1 );
- for ( endname = name; *endname && *endname != '\n'; ++endname );
- }
- else
- {
- /* normal name */
- name = ar_hdr.ar_name;
- endname = name + sizeof( ar_hdr.ar_name );
- }
-
- /* strip trailing white-space, slashes, and backslashes */
-
- while ( endname-- > name )
- if ( !isspace( *endname ) && ( *endname != '\\' ) && ( *endname !=
- '/' ) )
- break;
- *++endname = 0;
-
- /* strip leading directory names, an NT specialty */
- {
- char * c;
- if ( c = strrchr( name, '/' ) )
- name = c + 1;
- if ( c = strrchr( name, '\\' ) )
- name = c + 1;
- }
-
- sprintf( buf, "%s(%.*s)", archive, endname - name, name );
- {
- OBJECT * const member = object_new( buf );
- timestamp time;
- timestamp_init( &time, (time_t)lar_date, 0 );
- (*func)( closure, member, 1 /* time valid */, &time );
- object_free( member );
- }
-
- offset += SARHDR + lar_size;
- lseek( fd, offset, 0 );
- }
-
- close( fd );
-}
-
#endif /* OS_NT */
diff --git a/jam-files/engine/filesys.h b/jam-files/engine/filesys.h
index 74fa3958f..f7469bece 100644
--- a/jam-files/engine/filesys.h
+++ b/jam-files/engine/filesys.h
@@ -38,7 +38,6 @@ typedef void (*scanback)( void * closure, OBJECT * path, int found,
timestamp const * const );
-void file_archscan( char const * arch, scanback func, void * closure );
void file_build1( PATHNAME * const f, string * file ) ;
void file_dirscan( OBJECT * dir, scanback func, void * closure );
file_info_t * file_info( OBJECT * const path, int * found );
diff --git a/jam-files/engine/fileunix.c b/jam-files/engine/fileunix.c
index bff3a42f5..6c675c10a 100644
--- a/jam-files/engine/fileunix.c
+++ b/jam-files/engine/fileunix.c
@@ -15,7 +15,6 @@
* fileunix.c - manipulate file names and scan directories on UNIX/AmigaOS
*
* External routines:
- * file_archscan() - scan an archive for files
* file_mkdir() - create a directory
* file_supported_fmt_resolution() - file modification timestamp resolution
*
@@ -57,46 +56,6 @@
# define STRUCT_DIRENT struct dirent
#endif
-#ifdef OS_COHERENT
-# include <arcoff.h>
-# define HAVE_AR
-#endif
-
-#if defined( OS_MVS ) || defined( OS_INTERIX )
-#define ARMAG "!<arch>\n"
-#define SARMAG 8
-#define ARFMAG "`\n"
-#define HAVE_AR
-
-struct ar_hdr /* archive file member header - printable ascii */
-{
- char ar_name[ 16 ]; /* file member name - `/' terminated */
- char ar_date[ 12 ]; /* file member date - decimal */
- char ar_uid[ 6 ]; /* file member user id - decimal */
- char ar_gid[ 6 ]; /* file member group id - decimal */
- char ar_mode[ 8 ]; /* file member mode - octal */
- char ar_size[ 10 ]; /* file member size - decimal */
- char ar_fmag[ 2 ]; /* ARFMAG - string to end header */
-};
-#endif
-
-#if defined( OS_QNX ) || defined( OS_BEOS ) || defined( OS_MPEIX )
-# define NO_AR
-# define HAVE_AR
-#endif
-
-#ifndef HAVE_AR
-# ifdef OS_AIX
-/* Define these for AIX to get the definitions for both small and big archive
- * file format variants.
- */
-# define __AR_SMALL__
-# define __AR_BIG__
-# endif
-# include <ar.h>
-#endif
-
-
/*
* file_collect_dir_content_() - collects directory content information
*/
@@ -213,252 +172,4 @@ void file_supported_fmt_resolution( timestamp * const t )
timestamp_init( t, 1, 0 );
}
-
-/*
- * file_archscan() - scan an archive for files
- */
-
-#ifndef AIAMAG /* God-fearing UNIX */
-
-#define SARFMAG 2
-#define SARHDR sizeof( struct ar_hdr )
-
-void file_archscan( char const * archive, scanback func, void * closure )
-{
-#ifndef NO_AR
- struct ar_hdr ar_hdr;
- char * string_table = 0;
- char buf[ MAXJPATH ];
- long offset;
- int fd;
-
- if ( ( fd = open( archive, O_RDONLY, 0 ) ) < 0 )
- return;
-
- if ( read( fd, buf, SARMAG ) != SARMAG ||
- strncmp( ARMAG, buf, SARMAG ) )
- {
- close( fd );
- return;
- }
-
- offset = SARMAG;
-
- if ( DEBUG_BINDSCAN )
- printf( "scan archive %s\n", archive );
-
- while ( ( read( fd, &ar_hdr, SARHDR ) == SARHDR ) &&
- !( memcmp( ar_hdr.ar_fmag, ARFMAG, SARFMAG )
-#ifdef ARFZMAG
- /* OSF also has a compressed format */
- && memcmp( ar_hdr.ar_fmag, ARFZMAG, SARFMAG )
-#endif
- ) )
- {
- char lar_name_[ 257 ];
- char * lar_name = lar_name_ + 1;
- long lar_date;
- long lar_size;
- long lar_offset;
- char * c;
- char * src;
- char * dest;
-
- strncpy( lar_name, ar_hdr.ar_name, sizeof( ar_hdr.ar_name ) );
-
- sscanf( ar_hdr.ar_date, "%ld", &lar_date );
- sscanf( ar_hdr.ar_size, "%ld", &lar_size );
-
- if ( ar_hdr.ar_name[ 0 ] == '/' )
- {
- if ( ar_hdr.ar_name[ 1 ] == '/' )
- {
- /* This is the "string table" entry of the symbol table, holding
- * filename strings longer than 15 characters, i.e. those that
- * do not fit into ar_name.
- */
- string_table = (char *)BJAM_MALLOC_ATOMIC( lar_size );
- lseek( fd, offset + SARHDR, 0 );
- if ( read( fd, string_table, lar_size ) != lar_size )
- printf("error reading string table\n");
- }
- else if ( string_table && ar_hdr.ar_name[ 1 ] != ' ' )
- {
- /* Long filenames are recognized by "/nnnn" where nnnn is the
- * offset of the string in the string table represented in ASCII
- * decimals.
- */
- dest = lar_name;
- lar_offset = atoi( lar_name + 1 );
- src = &string_table[ lar_offset ];
- while ( *src != '/' )
- *dest++ = *src++;
- *dest = '/';
- }
- }
-
- c = lar_name - 1;
- while ( ( *++c != ' ' ) && ( *c != '/' ) );
- *c = '\0';
-
- if ( DEBUG_BINDSCAN )
- printf( "archive name %s found\n", lar_name );
-
- sprintf( buf, "%s(%s)", archive, lar_name );
-
- {
- OBJECT * const member = object_new( buf );
- timestamp time;
- timestamp_init( &time, (time_t)lar_date, 0 );
- (*func)( closure, member, 1 /* time valid */, &time );
- object_free( member );
- }
-
- offset += SARHDR + ( ( lar_size + 1 ) & ~1 );
- lseek( fd, offset, 0 );
- }
-
- if ( string_table )
- BJAM_FREE( string_table );
-
- close( fd );
-#endif /* NO_AR */
-}
-
-#else /* AIAMAG - RS6000 AIX */
-
-static void file_archscan_small( int fd, char const * archive, scanback func,
- void * closure )
-{
- struct fl_hdr fl_hdr;
-
- struct {
- struct ar_hdr hdr;
- char pad[ 256 ];
- } ar_hdr ;
-
- char buf[ MAXJPATH ];
- long offset;
-
- if ( read( fd, (char *)&fl_hdr, FL_HSZ ) != FL_HSZ )
- return;
-
- sscanf( fl_hdr.fl_fstmoff, "%ld", &offset );
-
- if ( DEBUG_BINDSCAN )
- printf( "scan archive %s\n", archive );
-
- while ( offset > 0 && lseek( fd, offset, 0 ) >= 0 &&
- read( fd, &ar_hdr, sizeof( ar_hdr ) ) >= (int)sizeof( ar_hdr.hdr ) )
- {
- long lar_date;
- int lar_namlen;
-
- sscanf( ar_hdr.hdr.ar_namlen, "%d" , &lar_namlen );
- sscanf( ar_hdr.hdr.ar_date , "%ld", &lar_date );
- sscanf( ar_hdr.hdr.ar_nxtmem, "%ld", &offset );
-
- if ( !lar_namlen )
- continue;
-
- ar_hdr.hdr._ar_name.ar_name[ lar_namlen ] = '\0';
-
- sprintf( buf, "%s(%s)", archive, ar_hdr.hdr._ar_name.ar_name );
-
- {
- OBJECT * const member = object_new( buf );
- timestamp time;
- timestamp_init( &time, (time_t)lar_date, 0 );
- (*func)( closure, member, 1 /* time valid */, &time );
- object_free( member );
- }
- }
-}
-
-/* Check for OS versions supporting the big variant. */
-#ifdef AR_HSZ_BIG
-
-static void file_archscan_big( int fd, char const * archive, scanback func,
- void * closure )
-{
- struct fl_hdr_big fl_hdr;
-
- struct {
- struct ar_hdr_big hdr;
- char pad[ 256 ];
- } ar_hdr ;
-
- char buf[ MAXJPATH ];
- long long offset;
-
- if ( read( fd, (char *)&fl_hdr, FL_HSZ_BIG ) != FL_HSZ_BIG )
- return;
-
- sscanf( fl_hdr.fl_fstmoff, "%lld", &offset );
-
- if ( DEBUG_BINDSCAN )
- printf( "scan archive %s\n", archive );
-
- while ( offset > 0 && lseek( fd, offset, 0 ) >= 0 &&
- read( fd, &ar_hdr, sizeof( ar_hdr ) ) >= sizeof( ar_hdr.hdr ) )
- {
- long lar_date;
- int lar_namlen;
-
- sscanf( ar_hdr.hdr.ar_namlen, "%d" , &lar_namlen );
- sscanf( ar_hdr.hdr.ar_date , "%ld" , &lar_date );
- sscanf( ar_hdr.hdr.ar_nxtmem, "%lld", &offset );
-
- if ( !lar_namlen )
- continue;
-
- ar_hdr.hdr._ar_name.ar_name[ lar_namlen ] = '\0';
-
- sprintf( buf, "%s(%s)", archive, ar_hdr.hdr._ar_name.ar_name );
-
- {
- OBJECT * const member = object_new( buf );
- timestamp time;
- timestamp_init( &time, (time_t)lar_date, 0 );
- (*func)( closure, member, 1 /* time valid */, &time );
- object_free( member );
- }
- }
-}
-
-#endif /* AR_HSZ_BIG */
-
-void file_archscan( char const * archive, scanback func, void * closure )
-{
- int fd;
- char fl_magic[ SAIAMAG ];
-
- if ( ( fd = open( archive, O_RDONLY, 0 ) ) < 0 )
- return;
-
- if ( read( fd, fl_magic, SAIAMAG ) != SAIAMAG ||
- lseek( fd, 0, SEEK_SET ) == -1 )
- {
- close( fd );
- return;
- }
-
- if ( !strncmp( AIAMAG, fl_magic, SAIAMAG ) )
- {
- /* read small variant */
- file_archscan_small( fd, archive, func, closure );
- }
-#ifdef AR_HSZ_BIG
- else if ( !strncmp( AIAMAGBIG, fl_magic, SAIAMAG ) )
- {
- /* read big variant */
- file_archscan_big( fd, archive, func, closure );
- }
-#endif
-
- close( fd );
-}
-
-#endif /* AIAMAG - RS6000 AIX */
-
#endif /* USE_FILEUNIX */