Print this page
11545 Want configurable output field separator for libofmt
Portions contributed by: Cody Peter Mello <cody.mello@joyent.com>
Reviewed by: Jason King <jason.king@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>

*** 23,32 **** --- 23,33 ---- * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* + * Copyright (c) 2015 by Delphix. All rights reserved. * Copyright 2017 Joyent, Inc. */ #ifndef _OFMT_H #define _OFMT_H
*** 125,140 **** * handle is first created. If the caller wishes to adjust the window size * after the handle has been created (e.g., on the reception of SIGWINCH by the * caller), the function ofmt_update_winsize(handle) may be called. */ - #include <sys/types.h> - #ifdef __cplusplus extern "C" { #endif /* * Recommended buffer size for buffers passed, for example, to ofmt_strerror(). */ #define OFMT_BUFSIZE 256 --- 126,141 ---- * handle is first created. If the caller wishes to adjust the window size * after the handle has been created (e.g., on the reception of SIGWINCH by the * caller), the function ofmt_update_winsize(handle) may be called. */ #ifdef __cplusplus extern "C" { #endif + #include <sys/types.h> + /* * Recommended buffer size for buffers passed, for example, to ofmt_strerror(). */ #define OFMT_BUFSIZE 256
*** 185,207 **** --- 186,220 ---- #define OFMT_PARSABLE 0x00000001 /* machine parsable mode */ #define OFMT_WRAP 0x00000002 /* wrap output if field width is exceeded */ #define OFMT_MULTILINE 0x00000004 /* "long" output: "name: value" lines */ #define OFMT_RIGHTJUST 0x00000008 /* right justified output */ + #define OFMT_NOHEADER 0x00000010 /* do not automatically print header lines */ /* * ofmt_close() must be called to free resources associated * with the ofmt_handle_t */ extern void ofmt_close(ofmt_handle_t); /* + * Set the field separator used in parsable output (default is ':'). + */ + extern void ofmt_set_fs(ofmt_handle_t, char); + + /* * ofmt_print() emits one row of output */ extern void ofmt_print(ofmt_handle_t, void *); /* + * ofmt_print_header() prints the header line. It can be used with + * OFMT_NOHEADER to control exactly when the header gets printed. + */ + extern void ofmt_print_header(ofmt_handle_t); + + /* * ofmt_update_winsize() updates the window size information for ofmt_handle_t */ extern void ofmt_update_winsize(ofmt_handle_t); /*