Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
ba79c766
Commit
ba79c766
authored
Dec 14, 2006
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge kahlann.erinye.com:/home/df/mysql/build/mysql-5.1
into kahlann.erinye.com:/home/df/mysql/build/mysql-5.1-build
parents
e322b098
92791f80
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
135 additions
and
76 deletions
+135
-76
mysql-test/r/gis.result
mysql-test/r/gis.result
+16
-10
mysql-test/r/subselect.result
mysql-test/r/subselect.result
+6
-0
mysql-test/std_data/bad_gis_data.dat
mysql-test/std_data/bad_gis_data.dat
+1
-0
mysql-test/t/gis.test
mysql-test/t/gis.test
+14
-8
mysql-test/t/subselect.test
mysql-test/t/subselect.test
+8
-0
sql/field.cc
sql/field.cc
+4
-2
sql/field.h
sql/field.h
+64
-51
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+2
-1
sql/sql_load.cc
sql/sql_load.cc
+13
-1
storage/archive/ha_archive.cc
storage/archive/ha_archive.cc
+7
-3
No files found.
mysql-test/r/gis.result
View file @
ba79c766
...
...
@@ -673,6 +673,22 @@ POINT(10 10)
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
(asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))))
POINT(10 10)
create table t1 (g GEOMETRY);
select * from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def test t1 t1 g g 255 4294967295 0 Y 144 0 63
g
select asbinary(g) from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def asbinary(g) 252 16777216 0 Y 128 0 63
asbinary(g)
drop table t1;
create table t1 (a TEXT, b GEOMETRY NOT NULL, SPATIAL KEY(b));
alter table t1 disable keys;
load data infile '../std_data_ln/bad_gis_data.dat' into table t1;
ERROR 22004: Column set to default value; NULL supplied to NOT NULL column 'b' at row 1
alter table t1 enable keys;
drop table t1;
create table t1 (s1 geometry not null,s2 char(100));
create trigger t1_bu before update on t1 for each row set new.s1 = null;
insert into t1 values (null,null);
...
...
@@ -697,16 +713,6 @@ alter table t1 add primary key pti(pt);
ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length
alter table t1 add primary key pti(pt(20));
drop table t1;
create table t1 (g GEOMETRY);
select * from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def test t1 t1 g g 255 4294967295 0 Y 144 0 63
g
select asbinary(g) from t1;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def asbinary(g) 252 16777216 0 Y 128 0 63
asbinary(g)
drop table t1;
create table t1 select GeomFromText('point(1 1)');
desc t1;
Field Type Null Key Default Extra
...
...
mysql-test/r/subselect.result
View file @
ba79c766
...
...
@@ -3592,3 +3592,9 @@ FROM t1) t;
COUNT(*)
3000
DROP TABLE t1,t2;
CREATE TABLE t1 (s1 char(1));
INSERT INTO t1 VALUES ('a');
SELECT * FROM t1 WHERE _utf8'a' = ANY (SELECT s1 FROM t1);
s1
a
DROP TABLE t1;
mysql-test/std_data/bad_gis_data.dat
0 → 100644
View file @
ba79c766
foo
mysql-test/t/gis.test
View file @
ba79c766
...
...
@@ -375,6 +375,20 @@ drop table t1;
select
(
asWKT
(
geomfromwkb
((
0x000000000140240000000000004024000000000000
))));
select
(
asWKT
(
geomfromwkb
((
0x010100000000000000000024400000000000002440
))));
--
enable_metadata
create
table
t1
(
g
GEOMETRY
);
select
*
from
t1
;
select
asbinary
(
g
)
from
t1
;
--
disable_metadata
drop
table
t1
;
create
table
t1
(
a
TEXT
,
b
GEOMETRY
NOT
NULL
,
SPATIAL
KEY
(
b
));
alter
table
t1
disable
keys
;
--
error
1263
load
data
infile
'../std_data_ln/bad_gis_data.dat'
into
table
t1
;
alter
table
t1
enable
keys
;
drop
table
t1
;
# End of 4.1 tests
#
...
...
@@ -410,15 +424,7 @@ alter table t1 add primary key pti(pt);
alter
table
t1
add
primary
key
pti
(
pt
(
20
));
drop
table
t1
;
--
enable_metadata
create
table
t1
(
g
GEOMETRY
);
select
*
from
t1
;
select
asbinary
(
g
)
from
t1
;
--
disable_metadata
drop
table
t1
;
create
table
t1
select
GeomFromText
(
'point(1 1)'
);
desc
t1
;
drop
table
t1
;
mysql-test/t/subselect.test
View file @
ba79c766
...
...
@@ -2496,3 +2496,11 @@ SELECT SQL_NO_CACHE COUNT(*)
FROM
t1
)
t
;
DROP
TABLE
t1
,
t2
;
#
# Bug#20835 (literal string with =any values)
#
CREATE
TABLE
t1
(
s1
char
(
1
));
INSERT
INTO
t1
VALUES
(
'a'
);
SELECT
*
FROM
t1
WHERE
_utf8
'a'
=
ANY
(
SELECT
s1
FROM
t1
);
DROP
TABLE
t1
;
sql/field.cc
View file @
ba79c766
...
...
@@ -1609,10 +1609,11 @@ void Field_null::sql_type(String &res) const
This is an number stored as a pre-space (or pre-zero) string
****************************************************************************/
void
int
Field_decimal
::
reset
(
void
)
{
Field_decimal
::
store
(
STRING_WITH_LEN
(
"0"
),
&
my_charset_bin
);
return
0
;
}
void
Field_decimal
::
overflow
(
bool
negative
)
...
...
@@ -2257,9 +2258,10 @@ Field_new_decimal::Field_new_decimal(uint32 len_arg,
}
void
Field_new_decimal
::
reset
(
void
)
int
Field_new_decimal
::
reset
(
void
)
{
store_value
(
&
decimal_zero
);
return
0
;
}
...
...
sql/field.h
View file @
ba79c766
...
...
@@ -155,7 +155,7 @@ class Field
*/
virtual
uint32
data_length
()
{
return
pack_length
();
}
virtual
uint32
sort_length
()
const
{
return
pack_length
();
}
virtual
void
reset
(
void
)
{
bzero
(
ptr
,
pack_length
())
;
}
virtual
int
reset
(
void
)
{
bzero
(
ptr
,
pack_length
());
return
0
;
}
virtual
void
reset_fields
()
{}
virtual
void
set_default
()
{
...
...
@@ -521,7 +521,7 @@ class Field_decimal :public Field_real {
enum_field_types
type
()
const
{
return
FIELD_TYPE_DECIMAL
;}
enum
ha_base_keytype
key_type
()
const
{
return
zerofill
?
HA_KEYTYPE_BINARY
:
HA_KEYTYPE_NUM
;
}
void
reset
(
void
);
int
reset
(
void
);
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
...
...
@@ -559,7 +559,7 @@ class Field_new_decimal :public Field_num {
enum_field_types
type
()
const
{
return
FIELD_TYPE_NEWDECIMAL
;}
enum
ha_base_keytype
key_type
()
const
{
return
HA_KEYTYPE_BINARY
;
}
Item_result
result_type
()
const
{
return
DECIMAL_RESULT
;
}
void
reset
(
void
);
int
reset
(
void
);
bool
store_value
(
const
my_decimal
*
decimal_value
);
void
set_value_on_overflow
(
my_decimal
*
decimal_value
,
bool
sign
);
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
...
...
@@ -599,7 +599,7 @@ class Field_tiny :public Field_num {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -634,7 +634,7 @@ class Field_short :public Field_num {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -664,7 +664,7 @@ class Field_medium :public Field_num {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -699,7 +699,7 @@ class Field_long :public Field_num {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
bool
send_binary
(
Protocol
*
protocol
);
...
...
@@ -736,7 +736,11 @@ class Field_longlong :public Field_num {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
ptr
[
4
]
=
ptr
[
5
]
=
ptr
[
6
]
=
ptr
[
7
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
ptr
[
4
]
=
ptr
[
5
]
=
ptr
[
6
]
=
ptr
[
7
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -771,7 +775,7 @@ class Field_float :public Field_real {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
bzero
(
ptr
,
sizeof
(
float
))
;
}
int
reset
(
void
)
{
bzero
(
ptr
,
sizeof
(
float
));
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -804,7 +808,7 @@ class Field_double :public Field_real {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
bzero
(
ptr
,
sizeof
(
double
))
;
}
int
reset
(
void
)
{
bzero
(
ptr
,
sizeof
(
double
));
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -834,7 +838,7 @@ class Field_null :public Field_str {
int
store
(
double
nr
)
{
null
[
0
]
=
1
;
return
0
;
}
int
store
(
longlong
nr
,
bool
unsigned_val
)
{
null
[
0
]
=
1
;
return
0
;
}
int
store_decimal
(
const
my_decimal
*
d
)
{
null
[
0
]
=
1
;
return
0
;
}
void
reset
(
void
)
{
}
int
reset
(
void
)
{
return
0
;
}
double
val_real
(
void
)
{
return
0.0
;}
longlong
val_int
(
void
)
{
return
0
;}
my_decimal
*
val_decimal
(
my_decimal
*
)
{
return
0
;
}
...
...
@@ -863,7 +867,7 @@ class Field_timestamp :public Field_str {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -941,7 +945,7 @@ class Field_date :public Field_str {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -971,7 +975,7 @@ class Field_newdate :public Field_str {
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
int
store_time
(
TIME
*
ltime
,
timestamp_type
type
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -1006,7 +1010,7 @@ class Field_time :public Field_str {
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -1044,7 +1048,11 @@ class Field_datetime :public Field_str {
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
int
store_time
(
TIME
*
ltime
,
timestamp_type
type
);
void
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
ptr
[
4
]
=
ptr
[
5
]
=
ptr
[
6
]
=
ptr
[
7
]
=
0
;
}
int
reset
(
void
)
{
ptr
[
0
]
=
ptr
[
1
]
=
ptr
[
2
]
=
ptr
[
3
]
=
ptr
[
4
]
=
ptr
[
5
]
=
ptr
[
6
]
=
ptr
[
7
]
=
0
;
return
0
;
}
double
val_real
(
void
);
longlong
val_int
(
void
);
String
*
val_str
(
String
*
,
String
*
);
...
...
@@ -1087,7 +1095,11 @@ class Field_string :public Field_longstr {
enum
ha_base_keytype
key_type
()
const
{
return
binary
()
?
HA_KEYTYPE_BINARY
:
HA_KEYTYPE_TEXT
;
}
bool
zero_pack
()
const
{
return
0
;
}
void
reset
(
void
)
{
charset
()
->
cset
->
fill
(
charset
(),
ptr
,
field_length
,
' '
);
}
int
reset
(
void
)
{
charset
()
->
cset
->
fill
(
charset
(),
ptr
,
field_length
,
' '
);
return
0
;
}
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
int
store
(
double
nr
)
{
return
Field_str
::
store
(
nr
);
}
/* QQ: To be deleted */
...
...
@@ -1141,7 +1153,7 @@ class Field_varstring :public Field_longstr {
enum_field_types
type
()
const
{
return
MYSQL_TYPE_VARCHAR
;
}
enum
ha_base_keytype
key_type
()
const
;
bool
zero_pack
()
const
{
return
0
;
}
void
reset
(
void
)
{
bzero
(
ptr
,
field_length
+
length_bytes
)
;
}
int
reset
(
void
)
{
bzero
(
ptr
,
field_length
+
length_bytes
);
return
0
;
}
uint32
pack_length
()
const
{
return
(
uint32
)
field_length
+
length_bytes
;
}
uint32
key_length
()
const
{
return
(
uint32
)
field_length
;
}
uint32
sort_length
()
const
...
...
@@ -1249,7 +1261,7 @@ class Field_blob :public Field_longstr {
{
return
(
uint32
)
(((
ulonglong
)
1
<<
(
packlength
*
8
))
-
1
);
}
void
reset
(
void
)
{
bzero
(
ptr
,
packlength
+
sizeof
(
char
*
))
;
}
int
reset
(
void
)
{
bzero
(
ptr
,
packlength
+
sizeof
(
char
*
));
return
0
;
}
void
reset_fields
()
{
bzero
((
char
*
)
&
value
,
sizeof
(
value
));
}
void
store_length
(
uint32
number
);
inline
uint32
get_length
(
uint
row_offset
=
0
)
...
...
@@ -1333,6 +1345,7 @@ class Field_geom :public Field_blob {
int
store_decimal
(
const
my_decimal
*
);
void
get_key_image
(
char
*
buff
,
uint
length
,
imagetype
type
);
uint
size_of
()
const
{
return
sizeof
(
*
this
);
}
int
reset
(
void
)
{
return
!
maybe_null
();
}
};
#endif
/*HAVE_SPATIAL*/
...
...
@@ -1434,7 +1447,7 @@ class Field_bit :public Field {
uint32
max_length
()
{
return
field_length
;
}
uint
size_of
()
const
{
return
sizeof
(
*
this
);
}
Item_result
result_type
()
const
{
return
INT_RESULT
;
}
void
reset
(
void
)
{
bzero
(
ptr
,
bytes_in_rec
)
;
}
int
reset
(
void
)
{
bzero
(
ptr
,
bytes_in_rec
);
return
0
;
}
int
store
(
const
char
*
to
,
uint
length
,
CHARSET_INFO
*
charset
);
int
store
(
double
nr
);
int
store
(
longlong
nr
,
bool
unsigned_val
);
...
...
sql/item_cmpfunc.cc
View file @
ba79c766
...
...
@@ -797,7 +797,8 @@ bool Item_in_optimizer::fix_left(THD *thd, Item **ref)
}
not_null_tables_cache
=
args
[
0
]
->
not_null_tables
();
with_sum_func
=
args
[
0
]
->
with_sum_func
;
const_item_cache
=
args
[
0
]
->
const_item
();
if
((
const_item_cache
=
args
[
0
]
->
const_item
()))
cache
->
store
(
args
[
0
]);
return
0
;
}
...
...
sql/sql_load.cc
View file @
ba79c766
...
...
@@ -710,7 +710,12 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
if
(
item
->
type
()
==
Item
::
FIELD_ITEM
)
{
Field
*
field
=
((
Item_field
*
)
item
)
->
field
;
field
->
reset
();
if
(
field
->
reset
())
{
my_error
(
ER_WARN_NULL_TO_NOTNULL
,
MYF
(
0
),
field
->
field_name
,
thd
->
row_count
);
DBUG_RETURN
(
1
);
}
field
->
set_null
();
if
(
field
==
table
->
next_number_field
)
table
->
auto_increment_field_not_null
=
TRUE
;
...
...
@@ -759,6 +764,13 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
{
if
(
item
->
type
()
==
Item
::
FIELD_ITEM
)
{
Field
*
field
=
((
Item_field
*
)
item
)
->
field
;
if
(
field
->
reset
())
{
my_error
(
ER_WARN_NULL_TO_NOTNULL
,
MYF
(
0
),
field
->
field_name
,
thd
->
row_count
);
DBUG_RETURN
(
1
);
}
/*
QQ: We probably should not throw warning for each field.
But how about intention to always have the same number
...
...
storage/archive/ha_archive.cc
View file @
ba79c766
...
...
@@ -458,7 +458,7 @@ ARCHIVE_SHARE *ha_archive::get_share(const char *table_name,
Since we now possibly no real_path, we will use it instead if it exists.
*/
if
(
*
share
->
real_path
)
fn_format
(
share
->
data_file_name
,
share
->
real_path
,
""
,
ARZ
,
fn_format
(
share
->
data_file_name
,
table_name
,
share
->
real_path
,
ARZ
,
MY_REPLACE_EXT
|
MY_UNPACK_FILENAME
);
VOID
(
my_hash_insert
(
&
archive_open_tables
,
(
byte
*
)
share
));
thr_lock_init
(
&
share
->
lock
);
...
...
@@ -686,9 +686,13 @@ int ha_archive::create(const char *name, TABLE *table_arg,
goto
error
;
}
/*
We reuse name_buff since it is available.
*/
write_meta_file
(
create_file
,
0
,
stats
.
auto_increment_value
,
0
,
(
char
*
)
create_info
->
data_file_name
,
FALSE
);
(
create_info
->
data_file_name
&&
dirname_part
(
name_buff
,
(
char
*
)
create_info
->
data_file_name
))
?
name_buff
:
0
,
FALSE
);
my_close
(
create_file
,
MYF
(
0
));
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment