source: branches/libc-0.6/src/binutils/libiberty/spaces.c

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 1.7 KB
Line 
1/* Allocate memory region filled with spaces.
2 Copyright (C) 1991 Free Software Foundation, Inc.
3
4This file is part of the libiberty library.
5Libiberty is free software; you can redistribute it and/or
6modify it under the terms of the GNU Library General Public
7License as published by the Free Software Foundation; either
8version 2 of the License, or (at your option) any later version.
9
10Libiberty is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13Library General Public License for more details.
14
15You should have received a copy of the GNU Library General Public
16License along with libiberty; see the file COPYING.LIB. If
17not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18Boston, MA 02111-1307, USA. */
19
20/*
21
22@deftypefn Extension char* spaces (int @var{count})
23
24Returns a pointer to a memory region filled with the specified
25number of spaces and null terminated. The returned pointer is
26valid until at least the next call.
27
28@end deftypefn
29
30*/
31
32#include "ansidecl.h"
33#include "libiberty.h"
34
35#if VMS
36#include <stdlib.h>
37#include <unixlib.h>
38#else
39/* For systems with larger pointers than ints, these must be declared. */
40extern PTR malloc PARAMS ((size_t));
41extern void free PARAMS ((PTR));
42#endif
43
44const char *
45spaces (count)
46 int count;
47{
48 register char *t;
49 static char *buf;
50 static int maxsize;
51
52 if (count > maxsize)
53 {
54 if (buf)
55 {
56 free (buf);
57 }
58 buf = malloc (count + 1);
59 if (buf == (char *) 0)
60 return 0;
61 for (t = buf + count ; t != buf ; )
62 {
63 *--t = ' ';
64 }
65 maxsize = count;
66 buf[count] = '\0';
67 }
68 return (const char *) (buf + maxsize - count);
69}
70
Note: See TracBrowser for help on using the repository browser.