Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5219 → Rev 5220

/contrib/sdk/sources/newlib/libc/stdio/mbstowcs.c
0,0 → 1,83
/*
FUNCTION
<<mbstowcs>>---minimal multibyte string to wide char converter
 
INDEX
mbstowcs
 
ANSI_SYNOPSIS
#include <stdlib.h>
int mbstowcs(wchar_t *restrict <[pwc]>, const char *restrict <[s]>, size_t <[n]>);
 
TRAD_SYNOPSIS
#include <stdlib.h>
int mbstowcs(<[pwc]>, <[s]>, <[n]>)
wchar_t *<[pwc]>;
const char *<[s]>;
size_t <[n]>;
 
DESCRIPTION
When _MB_CAPABLE is not defined, this is a minimal ANSI-conforming
implementation of <<mbstowcs>>. In this case, the
only ``multi-byte character sequences'' recognized are single bytes,
and they are ``converted'' to wide-char versions simply by byte
extension.
 
When _MB_CAPABLE is defined, this routine calls <<_mbstowcs_r>> to perform
the conversion, passing a state variable to allow state dependent
decoding. The result is based on the locale setting which may
be restricted to a defined set of locales.
 
RETURNS
This implementation of <<mbstowcs>> returns <<0>> if
<[s]> is <<NULL>> or is the empty string;
it returns <<-1>> if _MB_CAPABLE and one of the
multi-byte characters is invalid or incomplete;
otherwise it returns the minimum of: <<n>> or the
number of multi-byte characters in <<s>> plus 1 (to
compensate for the nul character).
If the return value is -1, the state of the <<pwc>> string is
indeterminate. If the input has a length of 0, the output
string will be modified to contain a wchar_t nul terminator.
 
PORTABILITY
<<mbstowcs>> is required in the ANSI C standard. However, the precise
effects vary with the locale.
 
<<mbstowcs>> requires no supporting OS subroutines.
*/
 
#ifndef _REENT_ONLY
 
#include <newlib.h>
#include <stdlib.h>
#include <wchar.h>
 
size_t
_DEFUN (mbstowcs, (pwcs, s, n),
wchar_t *__restrict pwcs _AND
const char *__restrict s _AND
size_t n)
{
#ifdef _MB_CAPABLE
mbstate_t state;
state.__count = 0;
return _mbstowcs_r (_REENT, pwcs, s, n, &state);
#else /* not _MB_CAPABLE */
int count = 0;
if (n != 0) {
do {
if ((*pwcs++ = (wchar_t) *s++) == 0)
break;
count++;
} while (--n != 0);
}
return count;
#endif /* not _MB_CAPABLE */
}
 
#endif /* !_REENT_ONLY */
/contrib/sdk/sources/newlib/libc/stdio/perror.c
0,0 → 1,100
/*
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
 
/*
FUNCTION
<<perror>>---print an error message on standard error
 
INDEX
perror
INDEX
_perror_r
 
ANSI_SYNOPSIS
#include <stdio.h>
void perror(char *<[prefix]>);
 
void _perror_r(struct _reent *<[reent]>, char *<[prefix]>);
 
TRAD_SYNOPSIS
#include <stdio.h>
void perror(<[prefix]>)
char *<[prefix]>;
 
void _perror_r(<[reent]>, <[prefix]>)
struct _reent *<[reent]>;
char *<[prefix]>;
 
DESCRIPTION
Use <<perror>> to print (on standard error) an error message
corresponding to the current value of the global variable <<errno>>.
Unless you use <<NULL>> as the value of the argument <[prefix]>, the
error message will begin with the string at <[prefix]>, followed by a
colon and a space (<<: >>). The remainder of the error message is one
of the strings described for <<strerror>>.
 
The alternate function <<_perror_r>> is a reentrant version. The
extra argument <[reent]> is a pointer to a reentrancy structure.
 
RETURNS
<<perror>> returns no result.
 
PORTABILITY
ANSI C requires <<perror>>, but the strings issued vary from one
implementation to another.
 
Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
<<lseek>>, <<read>>, <<sbrk>>, <<write>>.
*/
 
#include <_ansi.h>
#include <reent.h>
#include <stdio.h>
#include <string.h>
#include "local.h"
 
_VOID
_DEFUN(_perror_r, (ptr, s),
struct _reent *ptr _AND
_CONST char *s)
{
char *error;
int dummy;
 
_REENT_SMALL_CHECK_INIT (ptr);
if (s != NULL && *s != '\0')
{
fputs (s, _stderr_r (ptr));
fputs (": ", _stderr_r (ptr));
}
 
if ((error = _strerror_r (ptr, ptr->_errno, 1, &dummy)) != NULL)
fputs (error, _stderr_r (ptr));
 
fputc ('\n', _stderr_r (ptr));
}
 
#ifndef _REENT_ONLY
 
_VOID
_DEFUN(perror, (s),
_CONST char *s)
{
_perror_r (_REENT, s);
}
 
#endif