Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
30e33a40
Commit
30e33a40
authored
Aug 03, 2015
by
Iván Matellanes
Committed by
Alexandre Julliard
Aug 05, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcirt: Add filebuf static fields.
parent
aa11357d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
18 deletions
+31
-18
msvcirt.c
dlls/msvcirt/msvcirt.c
+13
-0
msvcirt.spec
dlls/msvcirt/msvcirt.spec
+6
-6
msvcrt20.spec
dlls/msvcrt20/msvcrt20.spec
+6
-6
msvcrt40.spec
dlls/msvcrt40/msvcrt40.spec
+6
-6
No files found.
dlls/msvcirt/msvcirt.c
View file @
30e33a40
...
@@ -32,6 +32,19 @@ WINE_DEFAULT_DEBUG_CHANNEL(msvcirt);
...
@@ -32,6 +32,19 @@ WINE_DEFAULT_DEBUG_CHANNEL(msvcirt);
#define RESERVE_SIZE 512
#define RESERVE_SIZE 512
#define STATEBUF_SIZE 8
#define STATEBUF_SIZE 8
/* ?sh_none@filebuf@@2HB */
const
int
filebuf_sh_none
=
0x800
;
/* ?sh_read@filebuf@@2HB */
const
int
filebuf_sh_read
=
0xa00
;
/* ?sh_write@filebuf@@2HB */
const
int
filebuf_sh_write
=
0xc00
;
/* ?openprot@filebuf@@2HB */
const
int
filebuf_openprot
=
420
;
/* ?binary@filebuf@@2HB */
const
int
filebuf_binary
=
0x8000
;
/* ?text@filebuf@@2HB */
const
int
filebuf_text
=
0x4000
;
/* ?adjustfield@ios@@2JB */
/* ?adjustfield@ios@@2JB */
const
LONG
ios_adjustfield
=
FLAGS_left
|
FLAGS_right
|
FLAGS_internal
;
const
LONG
ios_adjustfield
=
FLAGS_left
|
FLAGS_right
|
FLAGS_internal
;
/* ?basefield@ios@@2JB */
/* ?basefield@ios@@2JB */
...
...
dlls/msvcirt/msvcirt.spec
View file @
30e33a40
...
@@ -415,7 +415,7 @@
...
@@ -415,7 +415,7 @@
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) streambuf_base
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) streambuf_base
@ cdecl -arch=win64 ?base@streambuf@@IEBAPEADXZ(ptr) streambuf_base
@ cdecl -arch=win64 ?base@streambuf@@IEBAPEADXZ(ptr) streambuf_base
@ extern ?basefield@ios@@2JB ios_basefield
@ extern ?basefield@ios@@2JB ios_basefield
# @ extern ?binary@filebuf@@2HB # static int const filebuf::
binary
@ extern ?binary@filebuf@@2HB filebuf_
binary
@ cdecl ?bitalloc@ios@@SAJXZ() ios_bitalloc
@ cdecl ?bitalloc@ios@@SAJXZ() ios_bitalloc
@ thiscall -arch=win32 ?blen@streambuf@@IBEHXZ(ptr) streambuf_blen
@ thiscall -arch=win32 ?blen@streambuf@@IBEHXZ(ptr) streambuf_blen
@ cdecl -arch=win64 ?blen@streambuf@@IEBAHXZ(ptr) streambuf_blen
@ cdecl -arch=win64 ?blen@streambuf@@IEBAHXZ(ptr) streambuf_blen
...
@@ -570,7 +570,7 @@
...
@@ -570,7 +570,7 @@
@ stub -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z # void __thiscall ofstream::open(char const *,int,int)
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z # void __thiscall ofstream::open(char const *,int,int)
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
# @ extern ?openprot@filebuf@@2HB # static int const filebuf::
openprot
@ extern ?openprot@filebuf@@2HB filebuf_
openprot
@ stub -arch=win32 ?opfx@ostream@@QAEHXZ # int __thiscall ostream::opfx(void)
@ stub -arch=win32 ?opfx@ostream@@QAEHXZ # int __thiscall ostream::opfx(void)
@ stub -arch=win64 ?opfx@ostream@@QEAAHXZ
@ stub -arch=win64 ?opfx@ostream@@QEAAHXZ
@ stub -arch=win32 ?osfx@ostream@@QAEXXZ # void __thiscall ostream::osfx(void)
@ stub -arch=win32 ?osfx@ostream@@QAEXXZ # void __thiscall ostream::osfx(void)
...
@@ -697,9 +697,9 @@
...
@@ -697,9 +697,9 @@
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) streambuf_sgetc
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) streambuf_sgetc
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) streambuf_sgetn
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) streambuf_sgetn
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) streambuf_sgetn
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) streambuf_sgetn
# @ extern ?sh_none@filebuf@@2HB # static int const filebuf::
sh_none
@ extern ?sh_none@filebuf@@2HB filebuf_
sh_none
# @ extern ?sh_read@filebuf@@2HB # static int const filebuf::
sh_read
@ extern ?sh_read@filebuf@@2HB filebuf_
sh_read
# @ extern ?sh_write@filebuf@@2HB # static int const filebuf::
sh_write
@ extern ?sh_write@filebuf@@2HB filebuf_
sh_write
@ thiscall -arch=win32 ?snextc@streambuf@@QAEHXZ(ptr) streambuf_snextc
@ thiscall -arch=win32 ?snextc@streambuf@@QAEHXZ(ptr) streambuf_snextc
@ cdecl -arch=win64 ?snextc@streambuf@@QEAAHXZ(ptr) streambuf_snextc
@ cdecl -arch=win64 ?snextc@streambuf@@QEAAHXZ(ptr) streambuf_snextc
@ thiscall -arch=win32 ?sputbackc@streambuf@@QAEHD@Z(ptr long) streambuf_sputbackc
@ thiscall -arch=win32 ?sputbackc@streambuf@@QAEHD@Z(ptr long) streambuf_sputbackc
...
@@ -736,7 +736,7 @@
...
@@ -736,7 +736,7 @@
@ stub -arch=win64 ?tellg@istream@@QEAAJXZ
@ stub -arch=win64 ?tellg@istream@@QEAAJXZ
@ stub -arch=win32 ?tellp@ostream@@QAEJXZ # long __thiscall ostream::tellp(void)
@ stub -arch=win32 ?tellp@ostream@@QAEJXZ # long __thiscall ostream::tellp(void)
@ stub -arch=win64 ?tellp@ostream@@QEAAJXZ
@ stub -arch=win64 ?tellp@ostream@@QEAAJXZ
# @ extern ?text@filebuf@@2HB # static int const filebuf::
text
@ extern ?text@filebuf@@2HB filebuf_
text
@ thiscall -arch=win32 ?tie@ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) ios_tie_set
@ thiscall -arch=win32 ?tie@ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) ios_tie_set
@ cdecl -arch=win64 ?tie@ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) ios_tie_set
@ cdecl -arch=win64 ?tie@ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) ios_tie_set
@ thiscall -arch=win32 ?tie@ios@@QBEPAVostream@@XZ(ptr) ios_tie_get
@ thiscall -arch=win32 ?tie@ios@@QBEPAVostream@@XZ(ptr) ios_tie_get
...
...
dlls/msvcrt20/msvcrt20.spec
View file @
30e33a40
...
@@ -403,7 +403,7 @@
...
@@ -403,7 +403,7 @@
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) msvcirt.?base@streambuf@@IBEPADXZ
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) msvcirt.?base@streambuf@@IBEPADXZ
@ cdecl -arch=win64 ?base@streambuf@@IEBAPEADXZ(ptr) msvcirt.?base@streambuf@@IEBAPEADXZ
@ cdecl -arch=win64 ?base@streambuf@@IEBAPEADXZ(ptr) msvcirt.?base@streambuf@@IEBAPEADXZ
@ extern ?basefield@ios@@2JB msvcirt.?basefield@ios@@2JB
@ extern ?basefield@ios@@2JB msvcirt.?basefield@ios@@2JB
# @ extern
?binary@filebuf@@2HB
@ extern ?binary@filebuf@@2HB msvcirt.
?binary@filebuf@@2HB
@ cdecl ?bitalloc@ios@@SAJXZ() msvcirt.?bitalloc@ios@@SAJXZ
@ cdecl ?bitalloc@ios@@SAJXZ() msvcirt.?bitalloc@ios@@SAJXZ
@ thiscall -arch=win32 ?blen@streambuf@@IBEHXZ(ptr) msvcirt.?blen@streambuf@@IBEHXZ
@ thiscall -arch=win32 ?blen@streambuf@@IBEHXZ(ptr) msvcirt.?blen@streambuf@@IBEHXZ
@ cdecl -arch=win64 ?blen@streambuf@@IEBAHXZ(ptr) msvcirt.?blen@streambuf@@IEBAHXZ
@ cdecl -arch=win64 ?blen@streambuf@@IEBAHXZ(ptr) msvcirt.?blen@streambuf@@IEBAHXZ
...
@@ -556,7 +556,7 @@
...
@@ -556,7 +556,7 @@
@ stub -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
# @ extern
?openprot@filebuf@@2HB
@ extern ?openprot@filebuf@@2HB msvcirt.
?openprot@filebuf@@2HB
@ stub -arch=win32 ?opfx@ostream@@QAEHXZ
@ stub -arch=win32 ?opfx@ostream@@QAEHXZ
@ stub -arch=win64 ?opfx@ostream@@QEAAHXZ
@ stub -arch=win64 ?opfx@ostream@@QEAAHXZ
@ stub -arch=win32 ?osfx@ostream@@QAEXXZ
@ stub -arch=win32 ?osfx@ostream@@QAEXXZ
...
@@ -685,9 +685,9 @@
...
@@ -685,9 +685,9 @@
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) msvcirt.?sgetc@streambuf@@QEAAHXZ
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) msvcirt.?sgetc@streambuf@@QEAAHXZ
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QAEHPADH@Z
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QAEHPADH@Z
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QEAAHPEADH@Z
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QEAAHPEADH@Z
# @ extern
?sh_none@filebuf@@2HB
@ extern ?sh_none@filebuf@@2HB msvcirt.
?sh_none@filebuf@@2HB
# @ extern
?sh_read@filebuf@@2HB
@ extern ?sh_read@filebuf@@2HB msvcirt.
?sh_read@filebuf@@2HB
# @ extern
?sh_write@filebuf@@2HB
@ extern ?sh_write@filebuf@@2HB msvcirt.
?sh_write@filebuf@@2HB
@ thiscall -arch=win32 ?snextc@streambuf@@QAEHXZ(ptr) msvcirt.?snextc@streambuf@@QAEHXZ
@ thiscall -arch=win32 ?snextc@streambuf@@QAEHXZ(ptr) msvcirt.?snextc@streambuf@@QAEHXZ
@ cdecl -arch=win64 ?snextc@streambuf@@QEAAHXZ(ptr) msvcirt.?snextc@streambuf@@QEAAHXZ
@ cdecl -arch=win64 ?snextc@streambuf@@QEAAHXZ(ptr) msvcirt.?snextc@streambuf@@QEAAHXZ
@ thiscall -arch=win32 ?sputbackc@streambuf@@QAEHD@Z(ptr long) msvcirt.?sputbackc@streambuf@@QAEHD@Z
@ thiscall -arch=win32 ?sputbackc@streambuf@@QAEHD@Z(ptr long) msvcirt.?sputbackc@streambuf@@QAEHD@Z
...
@@ -725,7 +725,7 @@
...
@@ -725,7 +725,7 @@
@ stub -arch=win32 ?tellp@ostream@@QAEJXZ
@ stub -arch=win32 ?tellp@ostream@@QAEJXZ
@ stub -arch=win64 ?tellp@ostream@@QEAAJXZ
@ stub -arch=win64 ?tellp@ostream@@QEAAJXZ
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
# @ extern
?text@filebuf@@2HB
@ extern ?text@filebuf@@2HB msvcirt.
?text@filebuf@@2HB
@ thiscall -arch=win32 ?tie@ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QAEPAVostream@@PAV2@@Z
@ thiscall -arch=win32 ?tie@ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QAEPAVostream@@PAV2@@Z
@ cdecl -arch=win64 ?tie@ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QEAAPEAVostream@@PEAV2@@Z
@ cdecl -arch=win64 ?tie@ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QEAAPEAVostream@@PEAV2@@Z
@ thiscall -arch=win32 ?tie@ios@@QBEPAVostream@@XZ(ptr) msvcirt.?tie@ios@@QBEPAVostream@@XZ
@ thiscall -arch=win32 ?tie@ios@@QBEPAVostream@@XZ(ptr) msvcirt.?tie@ios@@QBEPAVostream@@XZ
...
...
dlls/msvcrt40/msvcrt40.spec
View file @
30e33a40
...
@@ -468,7 +468,7 @@
...
@@ -468,7 +468,7 @@
@ extern ?basefield@ios@@2JB msvcirt.?basefield@ios@@2JB
@ extern ?basefield@ios@@2JB msvcirt.?basefield@ios@@2JB
@ thiscall -arch=i386 ?before@type_info@@QBEHABV1@@Z(ptr ptr) msvcrt.?before@type_info@@QBEHABV1@@Z
@ thiscall -arch=i386 ?before@type_info@@QBEHABV1@@Z(ptr ptr) msvcrt.?before@type_info@@QBEHABV1@@Z
@ cdecl -arch=win64 ?before@type_info@@QEBAHAEBV1@@Z(ptr ptr) msvcrt.?before@type_info@@QEBAHAEBV1@@Z
@ cdecl -arch=win64 ?before@type_info@@QEBAHAEBV1@@Z(ptr ptr) msvcrt.?before@type_info@@QEBAHAEBV1@@Z
# @ extern
?binary@filebuf@@2HB
@ extern ?binary@filebuf@@2HB msvcirt.
?binary@filebuf@@2HB
@ cdecl ?bitalloc@ios@@SAJXZ() msvcirt.?bitalloc@ios@@SAJXZ
@ cdecl ?bitalloc@ios@@SAJXZ() msvcirt.?bitalloc@ios@@SAJXZ
@ thiscall -arch=win32 ?blen@streambuf@@IBEHXZ(ptr) msvcirt.?blen@streambuf@@IBEHXZ
@ thiscall -arch=win32 ?blen@streambuf@@IBEHXZ(ptr) msvcirt.?blen@streambuf@@IBEHXZ
@ cdecl -arch=win64 ?blen@streambuf@@IEBAHXZ(ptr) msvcirt.?blen@streambuf@@IEBAHXZ
@ cdecl -arch=win64 ?blen@streambuf@@IEBAHXZ(ptr) msvcirt.?blen@streambuf@@IEBAHXZ
...
@@ -625,7 +625,7 @@
...
@@ -625,7 +625,7 @@
@ stub -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
# @ extern
?openprot@filebuf@@2HB
@ extern ?openprot@filebuf@@2HB msvcirt.
?openprot@filebuf@@2HB
@ stub -arch=win32 ?opfx@ostream@@QAEHXZ
@ stub -arch=win32 ?opfx@ostream@@QAEHXZ
@ stub -arch=win64 ?opfx@ostream@@QEAAHXZ
@ stub -arch=win64 ?opfx@ostream@@QEAAHXZ
@ stub -arch=win32 ?osfx@ostream@@QAEXXZ
@ stub -arch=win32 ?osfx@ostream@@QAEXXZ
...
@@ -757,9 +757,9 @@
...
@@ -757,9 +757,9 @@
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) msvcirt.?sgetc@streambuf@@QEAAHXZ
@ cdecl -arch=win64 ?sgetc@streambuf@@QEAAHXZ(ptr) msvcirt.?sgetc@streambuf@@QEAAHXZ
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QAEHPADH@Z
@ thiscall -arch=win32 ?sgetn@streambuf@@QAEHPADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QAEHPADH@Z
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QEAAHPEADH@Z
@ cdecl -arch=win64 ?sgetn@streambuf@@QEAAHPEADH@Z(ptr ptr long) msvcirt.?sgetn@streambuf@@QEAAHPEADH@Z
# @ extern
?sh_none@filebuf@@2HB
@ extern ?sh_none@filebuf@@2HB msvcirt.
?sh_none@filebuf@@2HB
# @ extern
?sh_read@filebuf@@2HB
@ extern ?sh_read@filebuf@@2HB msvcirt.
?sh_read@filebuf@@2HB
# @ extern
?sh_write@filebuf@@2HB
@ extern ?sh_write@filebuf@@2HB msvcirt.
?sh_write@filebuf@@2HB
@ thiscall -arch=win32 ?snextc@streambuf@@QAEHXZ(ptr) msvcirt.?snextc@streambuf@@QAEHXZ
@ thiscall -arch=win32 ?snextc@streambuf@@QAEHXZ(ptr) msvcirt.?snextc@streambuf@@QAEHXZ
@ cdecl -arch=win64 ?snextc@streambuf@@QEAAHXZ(ptr) msvcirt.?snextc@streambuf@@QEAAHXZ
@ cdecl -arch=win64 ?snextc@streambuf@@QEAAHXZ(ptr) msvcirt.?snextc@streambuf@@QEAAHXZ
@ thiscall -arch=win32 ?sputbackc@streambuf@@QAEHD@Z(ptr long) msvcirt.?sputbackc@streambuf@@QAEHD@Z
@ thiscall -arch=win32 ?sputbackc@streambuf@@QAEHD@Z(ptr long) msvcirt.?sputbackc@streambuf@@QAEHD@Z
...
@@ -797,7 +797,7 @@
...
@@ -797,7 +797,7 @@
@ stub -arch=win32 ?tellp@ostream@@QAEJXZ
@ stub -arch=win32 ?tellp@ostream@@QAEJXZ
@ stub -arch=win64 ?tellp@ostream@@QEAAJXZ
@ stub -arch=win64 ?tellp@ostream@@QEAAJXZ
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
# @ extern
?text@filebuf@@2HB
@ extern ?text@filebuf@@2HB msvcirt.
?text@filebuf@@2HB
@ thiscall -arch=win32 ?tie@ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QAEPAVostream@@PAV2@@Z
@ thiscall -arch=win32 ?tie@ios@@QAEPAVostream@@PAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QAEPAVostream@@PAV2@@Z
@ cdecl -arch=win64 ?tie@ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QEAAPEAVostream@@PEAV2@@Z
@ cdecl -arch=win64 ?tie@ios@@QEAAPEAVostream@@PEAV2@@Z(ptr ptr) msvcirt.?tie@ios@@QEAAPEAVostream@@PEAV2@@Z
@ thiscall -arch=win32 ?tie@ios@@QBEPAVostream@@XZ(ptr) msvcirt.?tie@ios@@QBEPAVostream@@XZ
@ thiscall -arch=win32 ?tie@ios@@QBEPAVostream@@XZ(ptr) msvcirt.?tie@ios@@QBEPAVostream@@XZ
...
...
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