diff options
Diffstat (limited to 'linkers/rld.h')
-rw-r--r-- | linkers/rld.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/linkers/rld.h b/linkers/rld.h index 36ab013..1f5e60b 100644 --- a/linkers/rld.h +++ b/linkers/rld.h @@ -156,11 +156,16 @@ namespace rld */ inline std::string dequote (const std::string& s) { - if ((s.front () == '"') || (s.front () == '\'')) + if (!s.empty ()) { - if (s.front () != s.back ()) - throw rld::error ("invalid quoting", "string: " + s); - return s.substr (1, s.length () - (1 + 1)); + char front = s[0]; + char back = s[s.length () - 1]; + if ((front == '"') || (front == '\'')) + { + if (front != back) + throw rld::error ("invalid quoting", "string: " + s); + return s.substr (1, s.length () - (1 + 1)); + } } return s; } |