From 87f34879e5339be458505ca85f70cff346295140 Mon Sep 17 00:00:00 2001 From: Christian Biesinger Date: Tue, 1 Oct 2019 13:41:58 -0500 Subject: [PATCH] Add a string_view version of startswith Makes sure that the string is longer than prefix, so that strncmp will do the right thing even if the string is not null-terminated. For use in my string_view conversion patch: https://sourceware.org/ml/gdb-patches/2019-10/msg00030.html https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/125 gdb/ChangeLog: 2019-10-28 Christian Biesinger * gdbsupport/common-utils.h (startswith): Add an overloaded version that takes gdb::string_view arguments. Change-Id: I5389855de2fd70e7065a789a79374b0693651b71 --- gdb/ChangeLog | 5 +++++ gdb/gdbsupport/common-utils.h | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index edf7c34f43c..7059623788e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-10-28 Christian Biesinger + + * gdbsupport/common-utils.h (startswith): Add an overloaded version + that takes gdb::string_view arguments. + 2019-10-26 Tom de Vries * aarch64-linux-tdep.c: Fix typos in comments. diff --git a/gdb/gdbsupport/common-utils.h b/gdb/gdbsupport/common-utils.h index e96fc21e3f2..23bf354a8bd 100644 --- a/gdb/gdbsupport/common-utils.h +++ b/gdb/gdbsupport/common-utils.h @@ -43,6 +43,8 @@ #endif #endif +#include "gdb_string_view.h" + /* xmalloc(), xrealloc() and xcalloc() have already been declared in "libiberty.h". */ @@ -118,6 +120,16 @@ startswith (const char *string, const char *pattern) return strncmp (string, pattern, strlen (pattern)) == 0; } +/* Version of startswith that takes string_view arguments. See comment + above. */ + +static inline bool +startswith (gdb::string_view string, gdb::string_view pattern) +{ + return (string.length () >= pattern.length () + && strncmp (string.data (), pattern.data (), pattern.length ()) == 0); +} + ULONGEST strtoulst (const char *num, const char **trailer, int base); /* Skip leading whitespace characters in INP, returning an updated -- 2.30.2