rip out SHELL_ESCAPE define
[unix-history] / usr / src / usr.bin / window / wwalloc.c
CommitLineData
60de5df9 1/*
46e9ea25
KB
2 * Copyright (c) 1983 Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
5e8b0e60
KB
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley. The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
60de5df9
EW
16 */
17
46e9ea25 18#ifndef lint
5e8b0e60 19static char sccsid[] = "@(#)wwalloc.c 3.9 (Berkeley) %G%";
46e9ea25
KB
20#endif /* not lint */
21
ce3cd9c6
EW
22#include "ww.h"
23
24char **
f2a77fe1 25wwalloc(row, col, nrow, ncol, size)
ce3cd9c6 26{
64431033 27 register char *p, **pp;
ce3cd9c6
EW
28 register int i;
29
64431033
EW
30 /* fast, call malloc only once */
31 pp = (char **)
32 malloc((unsigned) sizeof (char **) * nrow + size * nrow * ncol);
03e75950
EW
33 if (pp == 0) {
34 wwerrno = WWE_NOMEM;
ce3cd9c6 35 return 0;
03e75950 36 }
64431033 37 p = (char *)&pp[nrow];
f2a77fe1 38 col *= size;
64431033
EW
39 size /= sizeof (char); /* paranoid */
40 size *= ncol;
ce3cd9c6 41 for (i = 0; i < nrow; i++) {
f2a77fe1 42 pp[i] = p - col;
64431033 43 p += size;
ce3cd9c6 44 }
f2a77fe1 45 return pp - row;
ce3cd9c6
EW
46}
47
f2a77fe1 48wwfree(p, row)
ce3cd9c6
EW
49register char **p;
50{
f2a77fe1 51 free((char *)(p + row));
ce3cd9c6 52}