[INTERPRETER]
* NEW: Do not raise an error when a file path cannot be converted to the local charset. Just do not make the conversion. * BUG: Freeing any Stream object now automatically closes it. * BUG: Stream.ReadLine() with no second argument does not crash anymore. git-svn-id: svn://localhost/gambas/trunk@4664 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
parent
d75c29e41b
commit
79c16878be
@ -141,6 +141,7 @@ static void load_exported_class(ARCHIVE *arch)
|
|||||||
FREE(&buffer, "load_exported_class");
|
FREE(&buffer, "load_exported_class");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
static void load_component(char *name)
|
static void load_component(char *name)
|
||||||
{
|
{
|
||||||
COMPONENT *comp;
|
COMPONENT *comp;
|
||||||
@ -148,6 +149,7 @@ static void load_component(char *name)
|
|||||||
comp = COMPONENT_create(name);
|
comp = COMPONENT_create(name);
|
||||||
COMPONENT_load(comp);
|
COMPONENT_load(comp);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*static void load_dependencies(ARCHIVE *arch)
|
/*static void load_dependencies(ARCHIVE *arch)
|
||||||
{
|
{
|
||||||
|
@ -731,6 +731,7 @@ END_METHOD
|
|||||||
|
|
||||||
BEGIN_METHOD_VOID(Stream_free)
|
BEGIN_METHOD_VOID(Stream_free)
|
||||||
|
|
||||||
|
STREAM_close(CSTREAM_stream(THIS_STREAM));
|
||||||
GB_StoreVariant(NULL, POINTER(&(THIS_STREAM->tag)));
|
GB_StoreVariant(NULL, POINTER(&(THIS_STREAM->tag)));
|
||||||
|
|
||||||
END_METHOD
|
END_METHOD
|
||||||
@ -740,9 +741,14 @@ BEGIN_METHOD(Stream_ReadLine, GB_STRING escape)
|
|||||||
char *escape;
|
char *escape;
|
||||||
char *str;
|
char *str;
|
||||||
|
|
||||||
escape = GB_ToZeroString(ARG(escape));
|
if (MISSING(escape))
|
||||||
if (!*escape)
|
|
||||||
escape = NULL;
|
escape = NULL;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
escape = GB_ToZeroString(ARG(escape));
|
||||||
|
if (!*escape)
|
||||||
|
escape = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
str = STREAM_line_input(CSTREAM_stream(THIS_STREAM), escape);
|
str = STREAM_line_input(CSTREAM_stream(THIS_STREAM), escape);
|
||||||
STRING_free_later(str);
|
STRING_free_later(str);
|
||||||
|
@ -191,7 +191,7 @@ COMPONENT *COMPONENT_create(const char *name)
|
|||||||
|
|
||||||
can_archive = !same_name_as_project;
|
can_archive = !same_name_as_project;
|
||||||
|
|
||||||
// System wide component, located in /usr/local/lib/gambas2 (by default)
|
// System wide component
|
||||||
|
|
||||||
path = FILE_buffer();
|
path = FILE_buffer();
|
||||||
sprintf(path, LIB_PATTERN, COMPONENT_path, name);
|
sprintf(path, LIB_PATTERN, COMPONENT_path, name);
|
||||||
|
@ -1186,6 +1186,7 @@ char *STRING_conv_file_name(const char *name, int len)
|
|||||||
struct passwd *info;
|
struct passwd *info;
|
||||||
char *dir;
|
char *dir;
|
||||||
char *user;
|
char *user;
|
||||||
|
int err;
|
||||||
|
|
||||||
if (!name)
|
if (!name)
|
||||||
return "";
|
return "";
|
||||||
@ -1227,8 +1228,11 @@ char *STRING_conv_file_name(const char *name, int len)
|
|||||||
if (LOCAL_is_UTF8)
|
if (LOCAL_is_UTF8)
|
||||||
result = STRING_new_temp(name, len);
|
result = STRING_new_temp(name, len);
|
||||||
else
|
else
|
||||||
STRING_conv(&result, name, len, SC_UTF8, LOCAL_encoding, TRUE);
|
{
|
||||||
|
err = STRING_conv(&result, name, len, SC_UTF8, LOCAL_encoding, FALSE);
|
||||||
|
if (err)
|
||||||
|
result = STRING_new_temp(name, len);
|
||||||
|
}
|
||||||
//fprintf(stderr, "STRING_conv_file_name: %s\n", result);
|
//fprintf(stderr, "STRING_conv_file_name: %s\n", result);
|
||||||
|
|
||||||
if (result)
|
if (result)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user