Commit f803e2a9 authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

Fix miscellaneous spelling errors and typos.

parent d93f0814
......@@ -629,7 +629,7 @@ static HRESULT WINAPI ACMStream_fnDelete(IAVIStream *iface, LONG start,
if ((This->sInfo.dwCaps & AVIFILECAPS_CANWRITE) == 0)
return AVIERR_READONLY;
/* A compressor is also neccessary */
/* A compressor is also necessary */
if (This->has == NULL)
return AVIERR_NOCOMPRESSOR;
......
......@@ -1047,7 +1047,7 @@ HRESULT WINAPI AVIBuildFilterW(LPWSTR szFilter, LONG cbFilter, BOOL fSaving)
if (cbFilter > size) {
int i;
/* replace '@' with \000 to seperate description of filter */
/* replace '@' with \000 to separate description of filter */
for (i = 0; i < size && szAllFiles[i] != 0; i++) {
if (szAllFiles[i] == '@') {
szAllFiles[i] = 0;
......
......@@ -1372,7 +1372,7 @@ static HRESULT AVIFILE_AddFrame(IAVIStreamImpl *This, DWORD ckid, DWORD size, DW
This->idxFrames[This->lLastFrame].dwChunkOffset = offset;
This->idxFrames[This->lLastFrame].dwChunkLength = size;
/* update AVISTREAMINFO structure if neccessary */
/* update AVISTREAMINFO structure if necessary */
if (This->sInfo.dwLength < This->lLastFrame)
This->sInfo.dwLength = This->lLastFrame;
......@@ -2046,7 +2046,7 @@ static HRESULT AVIFILE_SaveFile(IAVIFileImpl *This)
if (mmioAscend(This->hmmio, &ck, 0) != S_OK)
return AVIERR_FILEWRITE;
/* write the headers of each stream into a seperate streamheader list */
/* write the headers of each stream into a separate streamheader list */
for (nStream = 0; nStream < This->fInfo.dwStreams; nStream++) {
AVIStreamHeader strHdr;
......@@ -2087,7 +2087,7 @@ static HRESULT AVIFILE_SaveFile(IAVIFileImpl *This)
if (mmioAscend(This->hmmio, &ck, 0) != S_OK)
return AVIERR_FILEWRITE;
/* ... the hopefull ever present streamformat ... */
/* ... the hopefully ever present streamformat ... */
ck.ckid = ckidSTREAMFORMAT;
ck.cksize = pStream->cbFormat;
if (mmioCreateChunk(This->hmmio, &ck, 0) != S_OK)
......
......@@ -647,7 +647,7 @@ GL_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface,
} else if (dwLightStateType == D3DLIGHTSTATE_COLORMODEL /* 3 */) {
switch (dwLightState) {
case D3DCOLOR_MONO:
ERR("DDCOLOR_MONO should not happend!\n");
ERR("DDCOLOR_MONO should not happen!\n");
break;
case D3DCOLOR_RGB:
/* We are already in this mode */
......
......@@ -158,7 +158,7 @@ void NS_AddRemoteComputerAsNameServer( LPCVOID lpcNSAddrHdr,
lpCache->present = lpCacheNode;
/* Use this message as an oportunity to weed out any old sessions so
/* Use this message as an opportunity to weed out any old sessions so
* that we don't enum them again
*/
NS_PruneSessionCache( lpNSInfo );
......@@ -236,7 +236,7 @@ HRESULT NS_SendSessionRequestBroadcast( LPCGUID lpcGuid,
lpMsg = (LPDPMSG_ENUMSESSIONSREQUEST)(((BYTE*)data.lpMessage)+lpSpData->dwSPHeaderSize);
/* Setup EnumSession reqest message */
/* Setup EnumSession request message */
lpMsg->envelope.dwMagic = DPMSGMAGIC_DPLAYMSG;
lpMsg->envelope.wCommandId = DPMSGCMD_ENUMSESSIONSREQUEST;
lpMsg->envelope.wVersion = DPMSGVER_DP6;
......@@ -267,7 +267,7 @@ void NS_InvalidateSessionCache( LPVOID lpNSInfo )
if( lpCache == NULL )
{
ERR( ": invalidate non existant cache\n" );
ERR( ": invalidate non existent cache\n" );
return;
}
......@@ -362,7 +362,7 @@ void NS_PruneSessionCache( LPVOID lpNSInfo )
break;
}
/* Deal with time in a wrap around safe manner - unsigned arithmatic.
/* Deal with time in a wrap around safe manner - unsigned arithmetic.
* Check the difference in time */
if( (dwPresentTime - (DPQ_FIRST(lpCache->first)->dwTime)) < dwPrunePeriod )
{
......
......@@ -32,9 +32,9 @@
#define SHORTDIR "shortdir"
#define LONGDIR "Long Directory"
#define NONFILE_SHORT "noexist.pth"
#define NONFILE_LONG "Non Existant File"
#define NONFILE_LONG "Non Existent File"
#define NONDIR_SHORT "notadir"
#define NONDIR_LONG "Non Existant Directory"
#define NONDIR_LONG "Non Existent Directory"
#define NOT_A_VALID_DRIVE '@'
......@@ -198,7 +198,7 @@ static void test_SplitShortPathA(CHAR *path,CHAR *dir,CHAR *eight,CHAR *three) {
}
/* Check that we didn't find a trailing '\\' or multiple '.' */
ok(!error,"Illegal file found in 8.3 path '%s'",path);
/* Seperate dir, root, and extension */
/* Separate dir, root, and extension */
if(ext!=len) lstrcpyA(three,path+ext+1); else lstrcpyA(three,"");
if(fil!=len) {
lstrcpynA(eight,path+fil+1,ext-fil);
......@@ -228,7 +228,7 @@ static void test_LongtoShortA(CHAR *teststr,CHAR *goodstr,
characters in the filename.
'valid' indicates whether this would be an allowed filename
'todo' indictaes that wine doesn't get this right yet.
NOTE: We always call this routine with a non-existant filename, so
NOTE: We always call this routine with a non-existent filename, so
Get(Short|Long)PathNameA should never pass, but GetFullPathNameA
should.
*/
......@@ -438,10 +438,10 @@ static void test_CurrentDirectoryA(CHAR *origdir, CHAR *newdir)
so why check it again.
*/
SetCurrentDirectoryA(newdir);
/* Check that SetCurrentDirectory fails when a non-existant dir is specified */
/* Check that SetCurrentDirectory fails when a non-existent dir is specified */
sprintf(tmpstr,"%s\\%s\\%s",newdir,SHORTDIR,NONDIR_SHORT);
test_setdir(newdir,tmpstr,NULL,0,"check 3");
/* Check that SetCurrentDirectory fails for a non-existant lond directory */
/* Check that SetCurrentDirectory fails for a non-existent lond directory */
sprintf(tmpstr,"%s\\%s\\%s",newdir,SHORTDIR,NONDIR_LONG);
test_setdir(newdir,tmpstr,NULL,0,"check 4");
/* Check that SetCurrentDirectory passes with a long directory */
......@@ -653,7 +653,7 @@ static void test_PathNameA(CHAR *curdir, CHAR curDrive, CHAR otherDrive)
test_ValidPathA(curdir,"",tmpstr,tmpstr1,NULL,"test13");
sprintf(tmpstr,"%s\\",LONGDIR);
test_ValidPathA(curdir,"",tmpstr,tmpstr1,NULL,"test14");
/* Non-existant directories */
/* Non-existent directories */
sprintf(tmpstr,"%s\\",NONDIR_SHORT);
test_ValidPathA(curdir,"",tmpstr,tmpstr1,&passfail,"test15");
sprintf(tmpstr2,"%s\\%s",curdir,tmpstr);
......
......@@ -107,7 +107,7 @@ int _XcptFilter(int ex, PEXCEPTION_POINTERS ptr)
* _EH_prolog (MSVCRT.@)
*/
#ifdef __i386__
/* Provided for VC++ binary compatability only */
/* Provided for VC++ binary compatibility only */
__ASM_GLOBAL_FUNC(_EH_prolog,
"pushl $-1\n\t"
"pushl %eax\n\t"
......
......@@ -23,7 +23,7 @@
* but are also available to applications that need this functionality.
*
* Bits are set LSB to MSB in each consecutive byte, making this implementation
* binary compatable with Win32.
* binary compatible with Win32.
*
* Note that to avoid unexpected behaviour, the size of a bitmap should be set
* to a multiple of 32.
......
......@@ -63,7 +63,7 @@ const CLSID CLSID_StdGlobalInterfaceTable = { 0x00000323, 0, 0, {0xc0, 0, 0, 0,
static void* StdGlobalInterfaceTableInstance;
/*****************************************************************************
* Appartment management stuff
* Apartment management stuff
*
* NOTE:
* per Thread values are stored in the TEB on offset 0xF80
......@@ -75,22 +75,22 @@ static void* StdGlobalInterfaceTableInstance;
typedef struct {
unsigned char threadingModell; /* we use the COINIT flags */
unsigned long threadID;
long AppartmentLockCount;
} OleAppartmentData;
long ApartmentLockCount;
} OleApartmentData;
typedef struct {
OleAppartmentData *AppartmentData;
OleApartmentData *ApartmentData;
} OleThreadData;
/* not jet used
static CRITICAL_SECTION csAppartmentData = CRITICAL_SECTION_INIT("csAppartmentData");
static CRITICAL_SECTION csApartmentData = CRITICAL_SECTION_INIT("csApartmentData");
*/
/*
* the first STA created in a process is the main STA
*/
/* not jet used
static OleAppartmentData * mainSTA;
static OleApartmentData * mainSTA;
*/
/*
......@@ -98,7 +98,7 @@ static OleAppartmentData * mainSTA;
*/
/* not jet used
static OleAppartmentData * processMTA;
static OleApartmentData * processMTA;
*/
......
......@@ -45,7 +45,7 @@ get_facbuf_for_iid(REFIID riid,IPSFactoryBuffer **facbuf) {
#define PIPEPREF "\\\\.\\pipe\\"
#define OLESTUBMGR PIPEPREF"WINE_OLE_StubMgr"
/* Standard Marshaling definitions */
/* Standard Marshalling definitions */
typedef struct _wine_marshal_id {
DWORD processid;
DWORD objectid; /* unique value corresp. IUnknown of object */
......
/*
* free threaded marshaler
* free threaded marshaller
*
* Copyright 2002 Juergen Schmied
*
......@@ -141,14 +141,14 @@ HRESULT WINAPI FTMarshalImpl_GetMarshalSizeMax (LPMARSHAL iface, REFIID riid, vo
FIXME ("(), stub!\n");
/* if the marshaling happends inside the same process the interface pointer is
copied between the appartments */
/* if the marshalling happens inside the same process the interface pointer is
copied between the apartments */
if (dwDestContext == MSHCTX_INPROC || dwDestContext == MSHCTX_CROSSCTX) {
*pSize = sizeof (This);
return S_OK;
}
/* use the standard marshaler to handle all other cases */
/* use the standard marshaller to handle all other cases */
CoGetStandardMarshal (riid, pv, dwDestContext, pvDestContext, mshlflags, &pMarshal);
hres = IMarshal_GetMarshalSizeMax (pMarshal, riid, pv, dwDestContext, pvDestContext, mshlflags, pSize);
IMarshal_Release (pMarshal);
......@@ -168,8 +168,8 @@ HRESULT WINAPI FTMarshalImpl_MarshalInterface (LPMARSHAL iface, IStream * pStm,
FIXME ("(), stub!\n");
/* if the marshaling happends inside the same process the interface pointer is
copied between the appartments */
/* if the marshalling happens inside the same process the interface pointer is
copied between the apartments */
if (dwDestContext == MSHCTX_INPROC || dwDestContext == MSHCTX_CROSSCTX) {
return IStream_Write (pStm, This, sizeof (This), 0);
}
......
/*
* Marshaling library
* Marshalling library
*
* Copyright 2002 Marcus Meissner
*
......@@ -45,7 +45,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
extern const CLSID CLSID_DfMarshal;
/* Marshaling just passes a unique identifier to the remote client,
/* Marshalling just passes a unique identifier to the remote client,
* that makes it possible to find the passed interface again.
*
* So basically we need a set of values that make it unique.
......@@ -350,9 +350,9 @@ ICOM_VTABLE(IMarshal) stdmvtbl = {
/***********************************************************************
* CoGetStandardMarshal [OLE32.23]
*
* When the COM library in the client process receives a marshaled
* When the COM library in the client process receives a marshalled
* interface pointer, it looks for a CLSID to be used in creating a proxy
* for the purposes of unmarshaling the packet. If the packet does not
* for the purposes of unmarshalling the packet. If the packet does not
* contain a CLSID for the proxy, COM calls CoGetStandardMarshal, passing a
* NULL pUnk value.
* This function creates a standard proxy in the client process and returns
......
......@@ -252,7 +252,7 @@ CFStub_Construct(LPRPCSTUBBUFFER *ppv) {
}
/* Since we create proxy buffers and classfactory in a pair, there is
* no need for 2 seperate structs. Just put them in one, but remember
* no need for 2 separate structs. Just put them in one, but remember
* the refcount.
*/
typedef struct _CFProxy {
......@@ -313,7 +313,7 @@ CFProxy_QueryInterface(LPCLASSFACTORY iface,REFIID riid, LPVOID *ppv) {
IClassFactory_AddRef(iface);
return S_OK;
}
if (IsEqualIID(riid,&IID_IMarshal)) /* just to avoid debugoutput */
if (IsEqualIID(riid,&IID_IMarshal)) /* just to avoid debug output */
return E_NOINTERFACE;
FIXME("Unhandled interface: %s\n",debugstr_guid(riid));
return E_NOINTERFACE;
......@@ -371,7 +371,7 @@ static HRESULT WINAPI CFProxy_CreateInstance(
if (!msg.cbBuffer) /* interface not found on remote */
return srstatus;
/* We got back: [Marshaled Interface data] */
/* We got back: [Marshalled Interface data] */
TRACE("got %ld bytes data.\n",msg.cbBuffer);
hGlobal = GlobalAlloc(GMEM_MOVEABLE|GMEM_NODISCARD|GMEM_SHARE,msg.cbBuffer);
memcpy(GlobalLock(hGlobal),msg.Buffer,msg.cbBuffer);
......
......@@ -6503,7 +6503,7 @@ DWORD OLECONVERT_WriteOLE20ToBuffer(LPSTORAGE pStorage, BYTE **pData)
/*************************************************************************
* OLECONVERT_CreateOleStream [Internal]
*
* Creates the "\001OLE" stream in the IStorage if neccessary.
* Creates the "\001OLE" stream in the IStorage if necessary.
*
* PARAMS
* pStorage [I] Dest storage to create the stream in
......
......@@ -117,7 +117,7 @@ _unmarshal_interface(marshal_state *buf, REFIID riid, LPUNKNOWN *pUnk) {
if (hres) { FIXME("Failed Seek %lx\n",hres); return hres;}
hres = CoUnmarshalInterface(pStm,riid,(LPVOID*)pUnk);
if (hres) {
FIXME("Marshaling interface %s failed with %lx\n",debugstr_guid(riid),hres);
FIXME("Marshalling interface %s failed with %lx\n",debugstr_guid(riid),hres);
return hres;
}
IStream_Release(pStm);
......@@ -154,7 +154,7 @@ _marshal_interface(marshal_state *buf, REFIID riid, LPUNKNOWN pUnk) {
hres = CoMarshalInterface(pStm,riid,newiface,0,NULL,0);
IUnknown_Release(newiface);
if (hres) {
FIXME("Marshaling interface %s failed with %lx\n",
FIXME("Marshalling interface %s failed with %lx\n",
debugstr_guid(riid),hres
);
goto fail;
......
......@@ -4762,7 +4762,7 @@ static HRESULT WINAPI ITypeInfo_fnCreateInstance( ITypeInfo2 *iface,
/* ITypeInfo::GetMops
*
* Retrieves marshaling information.
* Retrieves marshalling information.
*/
static HRESULT WINAPI ITypeInfo_fnGetMops( ITypeInfo2 *iface, MEMBERID memid,
BSTR *pBstrMops)
......
......@@ -277,7 +277,7 @@ unsigned char * WINAPI VARIANT_UserMarshal(unsigned long *pFlags, unsigned char
break;
}
var->clSize = Pos - Buffer;
TRACE("marshaled size=%ld\n", var->clSize);
TRACE("marshalled size=%ld\n", var->clSize);
return Pos;
}
......@@ -290,7 +290,7 @@ unsigned char * WINAPI VARIANT_UserUnmarshal(unsigned long *pFlags, unsigned cha
TRACE("(%lx,%p,%p)\n", *pFlags, Buffer, pvar);
VariantInit(pvar);
pvar->n1.n2.vt = var->rpcReserved;
TRACE("marshaled: clSize=%ld, vt=%04x\n", var->clSize, var->vt);
TRACE("marshalled: clSize=%ld, vt=%04x\n", var->clSize, var->vt);
TRACE("vt=%04x\n", V_VT(pvar));
TRACE("reserved: %d, %d, %d\n", var->wReserved1, var->wReserved2, var->wReserved3);
TRACE("val: %ld\n", var->u.lVal);
......
......@@ -22,7 +22,7 @@
* - widl is like MIDL for wine. For wine to be a useful RPC platform, quite
* a bit of work needs to be done here. widl currently doesn't generate stubs
* for RPC invocation -- it will need to; this is tricky because the MIDL compiler
* does some really wierd stuff. Then again, we don't neccesarily have to
* does some really weird stuff. Then again, we don't necessarily have to
* make widl work like MIDL, so it could be worse. Lately Ove has been working on
* some widl enhancements.
*
......
......@@ -118,7 +118,7 @@ BOOL RPCRT4_SendReceiveNPMsg(HANDLE np, PRPCSS_NP_MESSAGE msg, char *vardata, PR
return FALSE;
}
/* process the vardata payload if neccesary */
/* process the vardata payload if necessary */
vardata_payload_msg.message_type = RPCSS_NP_MESSAGE_TYPEID_VARDATAPAYLOADMSG;
vardata_payload_msg.vardata_payload_size = 0; /* meaningless */
for ( payload_offset = 0; payload_offset < msg->vardata_payload_size;
......
......@@ -25,7 +25,7 @@
/*--------------------- FIXME --------------------------
*
* These must be seperated into the language files
* These must be separated into the language files
* and translated. The language 0,0 is a hack to get it
* loaded properly for all languages by pretending that
* they are neutral.
......
......@@ -26,7 +26,7 @@
/*--------------------- FIXME --------------------------
*
* These must be seperated into the language files
* These must be separated into the language files
* and translated. The language 0,0 is a hack to get it
* loaded properly for all languages by pretending that
* they are neutral.
......
......@@ -682,7 +682,7 @@ BOOL WINAPI PathStripToRootW(LPWSTR lpszPath)
/*************************************************************************
* PathRemoveArgsA [SHLWAPI.@]
*
* Strip space seperated arguments from a path.
* Strip space separated arguments from a path.
*
* PARAMS
* lpszPath [I] Path to remove arguments from
......@@ -1778,7 +1778,7 @@ static BOOL PathMatchSingleMaskW(LPCWSTR name, LPCWSTR mask)
* NOTES
* Multiple search masks may be given if they are seperated by ";". The
* pattern "*.*" is treated specially in that it matches all paths (for
* backwards compatability with DOS).
* backwards compatibility with DOS).
*/
BOOL WINAPI PathMatchSpecA(LPCSTR lpszPath, LPCSTR lpszMask)
{
......@@ -2601,7 +2601,7 @@ int WINAPI PathCommonPrefixA(LPCSTR lpszFile1, LPCSTR lpszFile2, LPSTR achPath)
} while (1);
if (iLen == 2)
iLen++; /* Feature/Bug compatable with Win32 */
iLen++; /* Feature/Bug compatible with Win32 */
if (iLen && achPath)
{
......@@ -2656,7 +2656,7 @@ int WINAPI PathCommonPrefixW(LPCWSTR lpszFile1, LPCWSTR lpszFile2, LPWSTR achPat
} while (1);
if (iLen == 2)
iLen++; /* Feature/Bug compatable with Win32 */
iLen++; /* Feature/Bug compatible with Win32 */
if (iLen && achPath)
{
......@@ -2871,7 +2871,7 @@ UINT WINAPI PathGetCharTypeW(WCHAR ch)
flags |= GCT_SHORTCHAR; /* All these are valid for DOS */
}
else
flags |= GCT_SHORTCHAR; /* Bug compatable with win32 */
flags |= GCT_SHORTCHAR; /* Bug compatible with win32 */
flags |= GCT_LFNCHAR; /* Valid for long file names */
}
return flags;
......
......@@ -148,7 +148,7 @@
<listItem><para>
Additional notes such as interaction with other parts of the system, differences
between Wines implementation and Win32s, errors in MSDN documentation,
undocumented cases and bugs that Wine corrects or is compatable with.
undocumented cases and bugs that Wine corrects or is compatible with.
</para></listitem>
</itemizedlist>
......@@ -340,7 +340,7 @@ BOOL WINAPI PathRelativePathToA(
<listItem><para>
<command>BUGS</command>. Any bugs in the function that exist 'by design', i.e.
those that will not be fixed or exist for compatability with Windows.
those that will not be fixed or exist for compatibility with Windows.
</para></listitem>
<listItem><para>
......
......@@ -65,13 +65,13 @@
<itemizedlist>
<listitem>
<para>existance of a header file</para>
<para>existence of a header file</para>
</listitem>
<listitem>
<para>existance of a library function</para>
<para>existence of a library function</para>
</listitem>
<listitem>
<para>existance of libraries</para>
<para>existence of libraries</para>
</listitem>
<listitem>
<para>bugs in header files, library functions, the compiler, ...</para>
......
......@@ -222,7 +222,7 @@ printf("Processor architecture=%d\n",si ANONS .wProcessorArchitecture);
<para>
In order to avoid warnings in C (and potential errors in C++)
from not having prototypes, you may need to use a set of MS
compatable header files. These are scheduled for inclusion
compatible header files. These are scheduled for inclusion
into Wine but at the time of writing are not available. Until
they are, you can try prototyping the functions you need, or
just live with the warnings.
......
......@@ -886,12 +886,12 @@ BOOL WINAPI PolyDraw(HDC hdc, const POINT *lppt, const BYTE *lpbTypes,
/*
* some macro definitions for bezier drawing
*
* to avoid trucation errors the coordinates are
* to avoid truncation errors the coordinates are
* shifted upwards. When used in drawing they are
* shifted down again, including correct rounding
* and avoiding floating point arithmatic
* and avoiding floating point arithmetic
* 4 bits should allow 27 bits coordinates which I saw
* somewere in the win32 doc's
* somewhere in the win32 doc's
*
*/
......
......@@ -139,7 +139,7 @@ char IO_pp_init(void)
if (ioctl (fd,PPCLAIM,0))
{
ERR("PPCLAIM rejected %s\n",buffer);
ERR("Perhaps the device is already in use or non-existant\n");
ERR("Perhaps the device is already in use or non-existent\n");
continue;
}
if (nports > 0)
......@@ -168,7 +168,7 @@ char IO_pp_init(void)
if (ioctl (fd,PPRELEASE,0))
{
ERR("PPRELEASE rejected %s\n",buffer);
ERR("Perhaps the device is already in use or non-existant\n");
ERR("Perhaps the device is already in use or non-existent\n");
continue;
}
PPDeviceList[nports].devicename = malloc(sizeof(buffer)+1);
......
......@@ -43,8 +43,8 @@
* o Wine's named pipes (in general) may not interoperate with those of
* Windows yet (?)
*
* o There is a looming problem regarding listening on priveleged
* ports. We will need to be able to coexist with SAMBA, and able
* o There is a looming problem regarding listening on privileged
* ports. We will need to be able to coexist with SAMBA, and be able
* to function without running winelib code as root. This may
* take some doing, including significant reconceptualization of the
* role of rpcss.exe in wine.
......
......@@ -759,7 +759,7 @@ sub process_comment
$prototype =~ s/ *\* */\*/g; # Strip space around pointers
$prototype =~ s/ *\, */\,/g; # Strip space around commas
$prototype =~ s/^(void|VOID)$//; # If void, leave blank
$prototype =~ s/\*([A-Za-z_])/\* $1/g; # Seperate pointers from parameter name
$prototype =~ s/\*([A-Za-z_])/\* $1/g; # Separate pointers from parameter name
@{$comment->{PROTOTYPE}} = split ( /,/ ,$prototype);
# FIXME: If we have no parameters, make sure we have a PARAMS: None. section
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment