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