X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdynamic-string.h;h=098caafe72e713b4acddb9a0366a1167634b4045;hb=f702893a7cc2380b2640e1ccb3a987d46766c685;hp=35a035730baa636e46645cc7440679d05f04225d;hpb=b5d29991cc4722aec39c346c3f82291581e92aa0;p=openvswitch diff --git a/lib/dynamic-string.h b/lib/dynamic-string.h index 35a03573..098caafe 100644 --- a/lib/dynamic-string.h +++ b/lib/dynamic-string.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,13 @@ struct tm; +/* A "dynamic string", that is, a buffer that can be used to construct a + * string across a series of operations that extend or modify it. + * + * The 'string' member does not always point to a null-terminated string. + * Initially it is NULL, and even when it is nonnull, some operations do not + * ensure that it is null-terminated. Use ds_cstr() to ensure that memory is + * allocated for the string and that it is null-terminated. */ struct ds { char *string; /* Null-terminated string. */ size_t length; /* Bytes used, not including null terminator. */ @@ -55,6 +62,7 @@ void ds_put_hex_dump(struct ds *ds, const void *buf_, size_t size, uintptr_t ofs, bool ascii); int ds_get_line(struct ds *, FILE *); int ds_get_preprocessed_line(struct ds *, FILE *); +int ds_get_test_line(struct ds *, FILE *); char *ds_cstr(struct ds *); const char *ds_cstr_ro(const struct ds *);