xref: /netbsd-src/external/gpl2/lvm2/dist/include/lvm-string.h (revision 56a34939419542e88b386b2229be7565f4f45461)
1*56a34939Shaad /*	$NetBSD: lvm-string.h,v 1.1.1.1 2008/12/22 00:18:43 haad Exp $	*/
2*56a34939Shaad 
3*56a34939Shaad /*
4*56a34939Shaad  * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
5*56a34939Shaad  * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
6*56a34939Shaad  *
7*56a34939Shaad  * This file is part of LVM2.
8*56a34939Shaad  *
9*56a34939Shaad  * This copyrighted material is made available to anyone wishing to use,
10*56a34939Shaad  * modify, copy, or redistribute it subject to the terms and conditions
11*56a34939Shaad  * of the GNU Lesser General Public License v.2.1.
12*56a34939Shaad  *
13*56a34939Shaad  * You should have received a copy of the GNU Lesser General Public License
14*56a34939Shaad  * along with this program; if not, write to the Free Software Foundation,
15*56a34939Shaad  * Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16*56a34939Shaad  */
17*56a34939Shaad 
18*56a34939Shaad #ifndef _LVM_STRING_H
19*56a34939Shaad #define _LVM_STRING_H
20*56a34939Shaad 
21*56a34939Shaad #include <stdio.h>
22*56a34939Shaad #include <stdarg.h>
23*56a34939Shaad 
24*56a34939Shaad #define NAME_LEN 128
25*56a34939Shaad 
26*56a34939Shaad struct pool;
27*56a34939Shaad 
28*56a34939Shaad int emit_to_buffer(char **buffer, size_t *size, const char *fmt, ...)
29*56a34939Shaad   __attribute__ ((format(printf, 3, 4)));
30*56a34939Shaad 
31*56a34939Shaad char *build_dm_name(struct dm_pool *mem, const char *vg,
32*56a34939Shaad                     const char *lv, const char *layer);
33*56a34939Shaad 
34*56a34939Shaad int validate_name(const char *n);
35*56a34939Shaad 
36*56a34939Shaad /*
37*56a34939Shaad  * Returns number of occurrences of c in first len characters of str.
38*56a34939Shaad  */
39*56a34939Shaad unsigned count_chars(const char *str, size_t len, const int c);
40*56a34939Shaad 
41*56a34939Shaad /*
42*56a34939Shaad  * Returns what length of escaped string would be including terminating NUL.
43*56a34939Shaad  */
44*56a34939Shaad size_t escaped_len(const char *str);
45*56a34939Shaad 
46*56a34939Shaad /*
47*56a34939Shaad  * Copies a string from src to out.
48*56a34939Shaad  * Double quotation marks and backslashes are quoted with a backslash.
49*56a34939Shaad  * Caller must ensure *out has enough space - see escaped_len().
50*56a34939Shaad  * Returns *out.
51*56a34939Shaad  */
52*56a34939Shaad char *escape_double_quotes(char *out, const char *src);
53*56a34939Shaad 
54*56a34939Shaad /*
55*56a34939Shaad  * Removes quoting of double quotation marks and backslashes in situ.
56*56a34939Shaad  */
57*56a34939Shaad void unescape_double_quotes(char *src);
58*56a34939Shaad 
59*56a34939Shaad #endif
60