mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
New module 'xconcat-filename', split off from module 'concat-filename'.
This commit is contained in:
30
ChangeLog
30
ChangeLog
@@ -1,3 +1,33 @@
|
|||||||
|
2008-09-01 Bruno Haible <bruno@clisp.org>
|
||||||
|
|
||||||
|
Split module 'concat-filename' into 'concat-filename' (LGPL) and
|
||||||
|
'xconcat-filename' (GPL).
|
||||||
|
* modules/concat-filename (Depends-on): Add malloc-posix, remove xalloc.
|
||||||
|
(License): Change to LGPLv2+.
|
||||||
|
* modules/xconcat-filename: New file.
|
||||||
|
* lib/concat-filename.h (concatenated_filename): Change specification.
|
||||||
|
(xconcatenated_filename): New declaration.
|
||||||
|
* lib/concat-filename.c: Include errno.h, stdlib.h, not xalloc.h.
|
||||||
|
(concatenated_filename): Use malloc instead of xalloc. Handle out-of-
|
||||||
|
memory situations.
|
||||||
|
* lib/xconcat-filename.c: New file.
|
||||||
|
* NEWS: Mention the change.
|
||||||
|
* lib/findprog.c: Include concat-filename.h, not filename.h.
|
||||||
|
(find_in_path): Use xconcatenated_filename instead of
|
||||||
|
concatenated_filename.
|
||||||
|
* lib/javacomp.c: Include concat-filename.h, not filename.h.
|
||||||
|
(is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_14_usable,
|
||||||
|
is_envjavac_oldgcj_14_13_usable, is_envjavac_nongcj_usable,
|
||||||
|
is_gcj_present, is_gcj43_usable, is_oldgcj_14_14_usable,
|
||||||
|
is_oldgcj_14_13_usable, is_javac_usable): Use xconcatenated_filename
|
||||||
|
instead of concatenated_filename.
|
||||||
|
* lib/javaexec.c: Include concat-filename.h, not filename.h.
|
||||||
|
(execute_java_class): Use xconcatenated_filename instead of
|
||||||
|
concatenated_filename.
|
||||||
|
* modules/findprog (Depends-on): Add xconcat-filename, remove filename.
|
||||||
|
* modules/javacomp (Depends-on): Likewise.
|
||||||
|
* modules/javaexec (Depends-on): Likewise.
|
||||||
|
|
||||||
2008-09-01 Bruno Haible <bruno@clisp.org>
|
2008-09-01 Bruno Haible <bruno@clisp.org>
|
||||||
|
|
||||||
Split module 'filename' into 'filename' and 'concat-filename'.
|
Split module 'filename' into 'filename' and 'concat-filename'.
|
||||||
|
7
NEWS
7
NEWS
@@ -7,9 +7,10 @@ User visible incompatible changes
|
|||||||
Date Modules Changes
|
Date Modules Changes
|
||||||
|
|
||||||
2008-09-01 filename The module does not define the function
|
2008-09-01 filename The module does not define the function
|
||||||
concatenated_filename any more. To get this
|
concatenated_filename any more. To get an
|
||||||
function, use module 'concat-filename' and the
|
equivalent function, use function
|
||||||
include file "concat-filename.h".
|
xconcatenated_filename from module
|
||||||
|
'xconcat-filename'.
|
||||||
|
|
||||||
2008-08-31 havelib On Solaris, when searching for 64-bit mode
|
2008-08-31 havelib On Solaris, when searching for 64-bit mode
|
||||||
libraries the directory $prefix/lib is now ignored.
|
libraries the directory $prefix/lib is now ignored.
|
||||||
|
@@ -21,15 +21,17 @@
|
|||||||
/* Specification. */
|
/* Specification. */
|
||||||
#include "concat-filename.h"
|
#include "concat-filename.h"
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "filename.h"
|
#include "filename.h"
|
||||||
#include "xalloc.h"
|
|
||||||
|
|
||||||
/* Concatenate a directory filename, a relative filename and an optional
|
/* Concatenate a directory filename, a relative filename and an optional
|
||||||
suffix. The directory may end with the directory separator. The second
|
suffix. The directory may end with the directory separator. The second
|
||||||
argument may not start with the directory separator (it is relative).
|
argument may not start with the directory separator (it is relative).
|
||||||
Return a freshly allocated filename. */
|
Return a freshly allocated filename. Return NULL and set errno
|
||||||
|
upon memory allocation failure. */
|
||||||
char *
|
char *
|
||||||
concatenated_filename (const char *directory, const char *filename,
|
concatenated_filename (const char *directory, const char *filename,
|
||||||
const char *suffix)
|
const char *suffix)
|
||||||
@@ -40,10 +42,11 @@ concatenated_filename (const char *directory, const char *filename,
|
|||||||
if (strcmp (directory, ".") == 0)
|
if (strcmp (directory, ".") == 0)
|
||||||
{
|
{
|
||||||
/* No need to prepend the directory. */
|
/* No need to prepend the directory. */
|
||||||
result = XNMALLOC (strlen (filename)
|
result = (char *) malloc (strlen (filename)
|
||||||
+ (suffix != NULL ? strlen (suffix) : 0)
|
+ (suffix != NULL ? strlen (suffix) : 0)
|
||||||
+ 1,
|
+ 1);
|
||||||
char);
|
if (result == NULL)
|
||||||
|
return NULL; /* errno is set here */
|
||||||
p = result;
|
p = result;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -52,11 +55,12 @@ concatenated_filename (const char *directory, const char *filename,
|
|||||||
int need_slash =
|
int need_slash =
|
||||||
(directory_len > FILE_SYSTEM_PREFIX_LEN (directory)
|
(directory_len > FILE_SYSTEM_PREFIX_LEN (directory)
|
||||||
&& !ISSLASH (directory[directory_len - 1]));
|
&& !ISSLASH (directory[directory_len - 1]));
|
||||||
result = XNMALLOC (directory_len + need_slash
|
result = (char *) malloc (directory_len + need_slash
|
||||||
+ strlen (filename)
|
+ strlen (filename)
|
||||||
+ (suffix != NULL ? strlen (suffix) : 0)
|
+ (suffix != NULL ? strlen (suffix) : 0)
|
||||||
+ 1,
|
+ 1);
|
||||||
char);
|
if (result == NULL)
|
||||||
|
return NULL; /* errno is set here */
|
||||||
memcpy (result, directory, directory_len);
|
memcpy (result, directory, directory_len);
|
||||||
p = result + directory_len;
|
p = result + directory_len;
|
||||||
if (need_slash)
|
if (need_slash)
|
||||||
|
@@ -23,10 +23,16 @@ extern "C" {
|
|||||||
|
|
||||||
|
|
||||||
/* Concatenate a directory filename, a relative filename and an optional
|
/* Concatenate a directory filename, a relative filename and an optional
|
||||||
suffix. Return a freshly allocated filename. */
|
suffix. Return a freshly allocated filename. Return NULL and set errno
|
||||||
|
upon memory allocation failure. */
|
||||||
extern char *concatenated_filename (const char *directory,
|
extern char *concatenated_filename (const char *directory,
|
||||||
const char *filename, const char *suffix);
|
const char *filename, const char *suffix);
|
||||||
|
|
||||||
|
/* Concatenate a directory filename, a relative filename and an optional
|
||||||
|
suffix. Return a freshly allocated filename. */
|
||||||
|
extern char *xconcatenated_filename (const char *directory,
|
||||||
|
const char *filename, const char *suffix);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* Locating a program in PATH.
|
/* Locating a program in PATH.
|
||||||
Copyright (C) 2001-2004, 2006-2007 Free Software Foundation, Inc.
|
Copyright (C) 2001-2004, 2006-2008 Free Software Foundation, Inc.
|
||||||
Written by Bruno Haible <haible@clisp.cons.org>, 2001.
|
Written by Bruno Haible <haible@clisp.cons.org>, 2001.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "xalloc.h"
|
#include "xalloc.h"
|
||||||
#include "filename.h"
|
#include "concat-filename.h"
|
||||||
|
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
@@ -75,7 +75,7 @@ find_in_path (const char *progname)
|
|||||||
dir = ".";
|
dir = ".";
|
||||||
|
|
||||||
/* Concatenate dir and progname. */
|
/* Concatenate dir and progname. */
|
||||||
progpathname = concatenated_filename (dir, progname, NULL);
|
progpathname = xconcatenated_filename (dir, progname, NULL);
|
||||||
|
|
||||||
/* On systems which have the eaccess() system call, let's use it.
|
/* On systems which have the eaccess() system call, let's use it.
|
||||||
On other systems, let's hope that this program is not installed
|
On other systems, let's hope that this program is not installed
|
||||||
@@ -88,7 +88,7 @@ find_in_path (const char *progname)
|
|||||||
{
|
{
|
||||||
free (progpathname);
|
free (progpathname);
|
||||||
|
|
||||||
/* Add the "./" prefix for real, that concatenated_filename()
|
/* Add the "./" prefix for real, that xconcatenated_filename()
|
||||||
optimized away. This avoids a second PATH search when the
|
optimized away. This avoids a second PATH search when the
|
||||||
caller uses execlp/execvp. */
|
caller uses execlp/execvp. */
|
||||||
progpathname = XNMALLOC (2 + strlen (progname) + 1, char);
|
progpathname = XNMALLOC (2 + strlen (progname) + 1, char);
|
||||||
|
124
lib/javacomp.c
124
lib/javacomp.c
@@ -41,7 +41,7 @@
|
|||||||
#include "safe-read.h"
|
#include "safe-read.h"
|
||||||
#include "xalloc.h"
|
#include "xalloc.h"
|
||||||
#include "xmalloca.h"
|
#include "xmalloca.h"
|
||||||
#include "filename.h"
|
#include "concat-filename.h"
|
||||||
#include "fwriteerror.h"
|
#include "fwriteerror.h"
|
||||||
#include "clean-temp.h"
|
#include "clean-temp.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@@ -741,7 +741,7 @@ is_envjavac_gcj43_usable (const char *javac,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet (source_version)))
|
get_goodcode_snippet (source_version)))
|
||||||
{
|
{
|
||||||
@@ -751,7 +751,7 @@ is_envjavac_gcj43_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -785,9 +785,9 @@ is_envjavac_gcj43_usable (const char *javac,
|
|||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.java",
|
"conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
||||||
{
|
{
|
||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
@@ -797,9 +797,9 @@ is_envjavac_gcj43_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.class",
|
"conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -890,7 +890,7 @@ is_envjavac_oldgcj_14_14_usable (const char *javac, bool *usablep)
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet ("1.4")))
|
get_goodcode_snippet ("1.4")))
|
||||||
{
|
{
|
||||||
@@ -900,7 +900,7 @@ is_envjavac_oldgcj_14_14_usable (const char *javac, bool *usablep)
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -951,7 +951,7 @@ is_envjavac_oldgcj_14_13_usable (const char *javac,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet ("1.3")))
|
get_goodcode_snippet ("1.3")))
|
||||||
{
|
{
|
||||||
@@ -961,7 +961,7 @@ is_envjavac_oldgcj_14_13_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -994,8 +994,8 @@ is_envjavac_oldgcj_14_13_usable (const char *javac,
|
|||||||
if (javac_works && javac_noassert_works)
|
if (javac_works && javac_noassert_works)
|
||||||
{
|
{
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftestfail.java",
|
xconcatenated_filename (tmpdir->dir_name, "conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_failcode_snippet ("1.3")))
|
get_failcode_snippet ("1.3")))
|
||||||
{
|
{
|
||||||
@@ -1006,8 +1006,8 @@ is_envjavac_oldgcj_14_13_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftestfail.class",
|
xconcatenated_filename (tmpdir->dir_name, "conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1091,7 +1091,7 @@ is_envjavac_nongcj_usable (const char *javac,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet (source_version)))
|
get_goodcode_snippet (source_version)))
|
||||||
{
|
{
|
||||||
@@ -1101,7 +1101,7 @@ is_envjavac_nongcj_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1135,9 +1135,9 @@ is_envjavac_nongcj_usable (const char *javac,
|
|||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.java",
|
"conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
||||||
{
|
{
|
||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
@@ -1147,9 +1147,9 @@ is_envjavac_nongcj_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.class",
|
"conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1219,9 +1219,9 @@ is_envjavac_nongcj_usable (const char *javac,
|
|||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.java",
|
"conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
failcode))
|
failcode))
|
||||||
{
|
{
|
||||||
@@ -1233,9 +1233,9 @@ is_envjavac_nongcj_usable (const char *javac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.class",
|
"conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1387,8 +1387,8 @@ is_gcj_present (void)
|
|||||||
char *conftest_file_name;
|
char *conftest_file_name;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftestlib.java",
|
xconcatenated_filename (tmpdir->dir_name, "conftestlib.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
"public class conftestlib {\n"
|
"public class conftestlib {\n"
|
||||||
" public static void main (String[] args) {\n"
|
" public static void main (String[] args) {\n"
|
||||||
@@ -1401,9 +1401,9 @@ is_gcj_present (void)
|
|||||||
const char *java_sources[1];
|
const char *java_sources[1];
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestlib.class",
|
"conftestlib.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1531,7 +1531,7 @@ is_gcj43_usable (const char *source_version,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet (source_version)))
|
get_goodcode_snippet (source_version)))
|
||||||
{
|
{
|
||||||
@@ -1541,7 +1541,7 @@ is_gcj43_usable (const char *source_version,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1571,9 +1571,9 @@ is_gcj43_usable (const char *source_version,
|
|||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.java",
|
"conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
||||||
{
|
{
|
||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
@@ -1582,9 +1582,9 @@ is_gcj43_usable (const char *source_version,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.class",
|
"conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1670,7 +1670,7 @@ is_oldgcj_14_14_usable (bool *usablep)
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet ("1.4")))
|
get_goodcode_snippet ("1.4")))
|
||||||
{
|
{
|
||||||
@@ -1680,7 +1680,7 @@ is_oldgcj_14_14_usable (bool *usablep)
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1727,7 +1727,7 @@ is_oldgcj_14_13_usable (bool *usablep, bool *need_no_assert_option_p)
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet ("1.3")))
|
get_goodcode_snippet ("1.3")))
|
||||||
{
|
{
|
||||||
@@ -1737,7 +1737,7 @@ is_oldgcj_14_13_usable (bool *usablep, bool *need_no_assert_option_p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1835,7 +1835,7 @@ is_javac_usable (const char *source_version, const char *target_version,
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.java", NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
get_goodcode_snippet (source_version)))
|
get_goodcode_snippet (source_version)))
|
||||||
{
|
{
|
||||||
@@ -1845,7 +1845,7 @@ is_javac_usable (const char *source_version, const char *target_version,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
xconcatenated_filename (tmpdir->dir_name, "conftest.class", NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1878,9 +1878,9 @@ is_javac_usable (const char *source_version, const char *target_version,
|
|||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.java",
|
"conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
if (write_temp_file (tmpdir, conftest_file_name, failcode))
|
||||||
{
|
{
|
||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
@@ -1889,9 +1889,9 @@ is_javac_usable (const char *source_version, const char *target_version,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.class",
|
"conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
@@ -1959,9 +1959,9 @@ is_javac_usable (const char *source_version, const char *target_version,
|
|||||||
free (conftest_file_name);
|
free (conftest_file_name);
|
||||||
|
|
||||||
conftest_file_name =
|
conftest_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.java",
|
"conftestfail.java",
|
||||||
NULL);
|
NULL);
|
||||||
if (write_temp_file (tmpdir, conftest_file_name,
|
if (write_temp_file (tmpdir, conftest_file_name,
|
||||||
failcode))
|
failcode))
|
||||||
{
|
{
|
||||||
@@ -1971,9 +1971,9 @@ is_javac_usable (const char *source_version, const char *target_version,
|
|||||||
}
|
}
|
||||||
|
|
||||||
compiled_file_name =
|
compiled_file_name =
|
||||||
concatenated_filename (tmpdir->dir_name,
|
xconcatenated_filename (tmpdir->dir_name,
|
||||||
"conftestfail.class",
|
"conftestfail.class",
|
||||||
NULL);
|
NULL);
|
||||||
register_temp_file (tmpdir, compiled_file_name);
|
register_temp_file (tmpdir, compiled_file_name);
|
||||||
|
|
||||||
java_sources[0] = conftest_file_name;
|
java_sources[0] = conftest_file_name;
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
#include "classpath.h"
|
#include "classpath.h"
|
||||||
#include "xsetenv.h"
|
#include "xsetenv.h"
|
||||||
#include "sh-quote.h"
|
#include "sh-quote.h"
|
||||||
#include "filename.h"
|
#include "concat-filename.h"
|
||||||
#include "xalloc.h"
|
#include "xalloc.h"
|
||||||
#include "xmalloca.h"
|
#include "xmalloca.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
@@ -94,7 +94,7 @@ execute_java_class (const char *class_name,
|
|||||||
/* First, try a class compiled to a native code executable. */
|
/* First, try a class compiled to a native code executable. */
|
||||||
if (exe_dir != NULL)
|
if (exe_dir != NULL)
|
||||||
{
|
{
|
||||||
char *exe_pathname = concatenated_filename (exe_dir, class_name, EXEEXT);
|
char *exe_pathname = xconcatenated_filename (exe_dir, class_name, EXEEXT);
|
||||||
char *old_classpath;
|
char *old_classpath;
|
||||||
char **argv = (char **) xmalloca ((1 + nargs + 1) * sizeof (char *));
|
char **argv = (char **) xmalloca ((1 + nargs + 1) * sizeof (char *));
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
41
lib/xconcat-filename.c
Normal file
41
lib/xconcat-filename.c
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/* Construct a full filename from a directory and a relative filename.
|
||||||
|
Copyright (C) 2001-2004, 2006-2008 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 3 of the License, or any
|
||||||
|
later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Written by Bruno Haible <haible@clisp.cons.org>. */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
/* Specification. */
|
||||||
|
#include "concat-filename.h"
|
||||||
|
|
||||||
|
#include "xalloc.h"
|
||||||
|
|
||||||
|
/* Concatenate a directory filename, a relative filename and an optional
|
||||||
|
suffix. The directory may end with the directory separator. The second
|
||||||
|
argument may not start with the directory separator (it is relative).
|
||||||
|
Return a freshly allocated filename. */
|
||||||
|
char *
|
||||||
|
xconcatenated_filename (const char *directory, const char *filename,
|
||||||
|
const char *suffix)
|
||||||
|
{
|
||||||
|
char *result;
|
||||||
|
|
||||||
|
result = concatenated_filename (directory, filename, suffix);
|
||||||
|
if (result == NULL)
|
||||||
|
xalloc_die ();
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
@@ -8,7 +8,7 @@ lib/concat-filename.c
|
|||||||
|
|
||||||
Depends-on:
|
Depends-on:
|
||||||
filename
|
filename
|
||||||
xalloc
|
malloc-posix
|
||||||
stpcpy
|
stpcpy
|
||||||
|
|
||||||
configure.ac:
|
configure.ac:
|
||||||
@@ -20,7 +20,7 @@ Include:
|
|||||||
"concat-filename.h"
|
"concat-filename.h"
|
||||||
|
|
||||||
License:
|
License:
|
||||||
GPL
|
LGPLv2+
|
||||||
|
|
||||||
Maintainer:
|
Maintainer:
|
||||||
Bruno Haible
|
Bruno Haible
|
||||||
|
@@ -10,7 +10,7 @@ m4/eaccess.m4
|
|||||||
Depends-on:
|
Depends-on:
|
||||||
stdbool
|
stdbool
|
||||||
xalloc
|
xalloc
|
||||||
filename
|
xconcat-filename
|
||||||
unistd
|
unistd
|
||||||
|
|
||||||
configure.ac:
|
configure.ac:
|
||||||
|
@@ -20,7 +20,7 @@ safe-read
|
|||||||
xalloc
|
xalloc
|
||||||
xmalloca
|
xmalloca
|
||||||
getline
|
getline
|
||||||
filename
|
xconcat-filename
|
||||||
fwriteerror
|
fwriteerror
|
||||||
clean-temp
|
clean-temp
|
||||||
error
|
error
|
||||||
|
@@ -11,7 +11,7 @@ execute
|
|||||||
classpath
|
classpath
|
||||||
xsetenv
|
xsetenv
|
||||||
sh-quote
|
sh-quote
|
||||||
filename
|
xconcat-filename
|
||||||
xalloc
|
xalloc
|
||||||
xmalloca
|
xmalloca
|
||||||
error
|
error
|
||||||
|
26
modules/xconcat-filename
Normal file
26
modules/xconcat-filename
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
Description:
|
||||||
|
Construct a full filename by concatenating a directory name, a relative
|
||||||
|
filename, and a suffix, with out-of-memory checking.
|
||||||
|
|
||||||
|
Files:
|
||||||
|
lib/concat-filename.h
|
||||||
|
lib/xconcat-filename.c
|
||||||
|
|
||||||
|
Depends-on:
|
||||||
|
concat-filename
|
||||||
|
xalloc-die
|
||||||
|
|
||||||
|
configure.ac:
|
||||||
|
|
||||||
|
Makefile.am:
|
||||||
|
lib_SOURCES += xconcat-filename.c
|
||||||
|
|
||||||
|
Include:
|
||||||
|
"concat-filename.h"
|
||||||
|
|
||||||
|
License:
|
||||||
|
GPL
|
||||||
|
|
||||||
|
Maintainer:
|
||||||
|
Bruno Haible
|
||||||
|
|
Reference in New Issue
Block a user