[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-commits-diffs] net.venge.monotone: ab18e9a864450dfdaa39afe2ed
From: |
code |
Subject: |
[Monotone-commits-diffs] net.venge.monotone: ab18e9a864450dfdaa39afe2ed12b1092794ea0c |
Date: |
Sat, 5 Feb 2011 23:37:08 GMT |
revision: ab18e9a864450dfdaa39afe2ed12b1092794ea0c
date: 2011-02-05T23:36:24
author: address@hidden
branch: net.venge.monotone
changelog:
* src/database.cc (add_prefix_matching_constraint): verify if the
incoming prefix looks like a partial hex-encoded identifier at
all, otherwise the hex decoding might fail with a rather ugly
error message (fixes issue 143)
* test/func/select_partial_id/__driver__.lua: the prefix is not
lowercase as expected
* NEWS: note the bugfix
manifest:
format_version "1"
new_manifest [7ba06a58adb227e86d971cbab622a05e26099ebc]
old_revision [00973167fdf1a4285319a75fc68857f7cad378b2]
patch "NEWS"
from [816c8281092cdc5fa5d9d0b7c345da5b53ce33da]
to [a68115463e161bf4991b5ab5e2f81f807ac546c7]
patch "src/database.cc"
from [ade943af074000527e1f1f34d8afb0ad0f8a2bc9]
to [8966518247a144a25de01b4ab8fa9e515661edfb]
patch "test/func/select_partial_id/__driver__.lua"
from [15acaeb3ac1e08531f10adf3db640ae1d8579e86]
to [3873488a56c7a0499730154c73782a043c6f377e]
============================================================
--- NEWS 816c8281092cdc5fa5d9d0b7c345da5b53ce33da
+++ NEWS a68115463e161bf4991b5ab5e2f81f807ac546c7
@@ -94,6 +94,10 @@ XXX XXX XX XX:XX:XX UTC 2010
by default accept files ending with both, ".mtn" and ".db".
(fixes monotone issue 128)
+ - monotone gives now a proper error message when an incomplete
+ or partial identifier contains non-hex digits
+ (fixes monotone issue 143)
+
Internal
- The source tree has been reorganized. Sources, tests and documentation
============================================================
--- src/database.cc ade943af074000527e1f1f34d8afb0ad0f8a2bc9
+++ src/database.cc 8966518247a144a25de01b4ab8fa9e515661edfb
@@ -66,6 +66,7 @@
#include "lua_hooks.hh"
#include "outdated_indicator.hh"
#include "lru_writeback_cache.hh"
+#include "char_classifiers.hh"
// defined in schema.c, generated from schema.sql:
extern char const schema_constant[];
@@ -4223,6 +4224,12 @@ database_impl::add_prefix_matching_const
q.sql_cmd += "0"; // always false
else
{
+ for (string::const_iterator i = prefix.begin(); i != prefix.end(); ++i)
+ {
+ E(is_xdigit(*i), origin::user,
+ F("bad character '%c' in id name '%s'") % *i % prefix);
+ }
+
string lower_hex = prefix;
if (lower_hex.size() < constants::idlen)
lower_hex.append(constants::idlen - lower_hex.size(), '0');
@@ -4498,7 +4505,7 @@ database::get_var(var_key const & key, v
database::get_var(var_key const & key, var_value & value)
{
results res;
- imp->fetch(res, one_col, any_rows,
+ imp->fetch(res, one_col, any_rows,
query("SELECT value FROM db_vars "
"WHERE domain = ? AND name = ?")
% text(key.first())
============================================================
--- test/func/select_partial_id/__driver__.lua 15acaeb3ac1e08531f10adf3db640ae1d8579e86
+++ test/func/select_partial_id/__driver__.lua 3873488a56c7a0499730154c73782a043c6f377e
@@ -11,4 +11,4 @@ check(mtn("automate", "select", "p:abTcd
-- also check that invalid hex digits in partial ids lead to a proper error message
check(mtn("automate", "select", "p:abTcd"), 1, false, true)
-check(qgrep("bad character 't' in id name 'abtcd'", "stderr"))
+check(qgrep("bad character 'T' in id name 'abTcd'", "stderr"))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-commits-diffs] net.venge.monotone: ab18e9a864450dfdaa39afe2ed12b1092794ea0c,
code <=