186d7f5d3SJohn Marino /* $NetBSD: lvm-string.h,v 1.1.1.1 2008/12/22 00:18:43 haad Exp $ */ 286d7f5d3SJohn Marino 386d7f5d3SJohn Marino /* 486d7f5d3SJohn Marino * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. 586d7f5d3SJohn Marino * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 686d7f5d3SJohn Marino * 786d7f5d3SJohn Marino * This file is part of LVM2. 886d7f5d3SJohn Marino * 986d7f5d3SJohn Marino * This copyrighted material is made available to anyone wishing to use, 1086d7f5d3SJohn Marino * modify, copy, or redistribute it subject to the terms and conditions 1186d7f5d3SJohn Marino * of the GNU Lesser General Public License v.2.1. 1286d7f5d3SJohn Marino * 1386d7f5d3SJohn Marino * You should have received a copy of the GNU Lesser General Public License 1486d7f5d3SJohn Marino * along with this program; if not, write to the Free Software Foundation, 1586d7f5d3SJohn Marino * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1686d7f5d3SJohn Marino */ 1786d7f5d3SJohn Marino 1886d7f5d3SJohn Marino #ifndef _LVM_STRING_H 1986d7f5d3SJohn Marino #define _LVM_STRING_H 2086d7f5d3SJohn Marino 2186d7f5d3SJohn Marino #include <stdio.h> 2286d7f5d3SJohn Marino #include <stdarg.h> 2386d7f5d3SJohn Marino 2486d7f5d3SJohn Marino #define NAME_LEN 128 2586d7f5d3SJohn Marino 2686d7f5d3SJohn Marino struct pool; 2786d7f5d3SJohn Marino 2886d7f5d3SJohn Marino int emit_to_buffer(char **buffer, size_t *size, const char *fmt, ...) 2986d7f5d3SJohn Marino __attribute__ ((format(printf, 3, 4))); 3086d7f5d3SJohn Marino 3186d7f5d3SJohn Marino char *build_dm_name(struct dm_pool *mem, const char *vg, 3286d7f5d3SJohn Marino const char *lv, const char *layer); 3386d7f5d3SJohn Marino 3486d7f5d3SJohn Marino int validate_name(const char *n); 3586d7f5d3SJohn Marino 3686d7f5d3SJohn Marino /* 3786d7f5d3SJohn Marino * Returns number of occurrences of c in first len characters of str. 3886d7f5d3SJohn Marino */ 3986d7f5d3SJohn Marino unsigned count_chars(const char *str, size_t len, const int c); 4086d7f5d3SJohn Marino 4186d7f5d3SJohn Marino /* 4286d7f5d3SJohn Marino * Returns what length of escaped string would be including terminating NUL. 4386d7f5d3SJohn Marino */ 4486d7f5d3SJohn Marino size_t escaped_len(const char *str); 4586d7f5d3SJohn Marino 4686d7f5d3SJohn Marino /* 4786d7f5d3SJohn Marino * Copies a string from src to out. 4886d7f5d3SJohn Marino * Double quotation marks and backslashes are quoted with a backslash. 4986d7f5d3SJohn Marino * Caller must ensure *out has enough space - see escaped_len(). 5086d7f5d3SJohn Marino * Returns *out. 5186d7f5d3SJohn Marino */ 5286d7f5d3SJohn Marino char *escape_double_quotes(char *out, const char *src); 5386d7f5d3SJohn Marino 5486d7f5d3SJohn Marino /* 5586d7f5d3SJohn Marino * Removes quoting of double quotation marks and backslashes in situ. 5686d7f5d3SJohn Marino */ 5786d7f5d3SJohn Marino void unescape_double_quotes(char *src); 5886d7f5d3SJohn Marino 5986d7f5d3SJohn Marino #endif 60