From ef288f1195eda6a3af396f9a5ca8aa85e56cc240 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 10 Nov 2014 18:19:14 -0500 Subject: [PATCH] embedding: cef_string_multimap_value() --- ports/cef/string_multimap.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ports/cef/string_multimap.rs b/ports/cef/string_multimap.rs index 6791d69a2e7..7f4af997da9 100644 --- a/ports/cef/string_multimap.rs +++ b/ports/cef/string_multimap.rs @@ -114,3 +114,22 @@ pub extern "C" fn cef_string_multimap_key(smm: *mut cef_string_multimap_t, index } 0 } + +#[no_mangle] +pub extern "C" fn cef_string_multimap_value(smm: *mut cef_string_multimap_t, index: c_int, value: *mut cef_string_t) -> c_int { + unsafe { + if index < 0 || smm.is_null() { return 0; } + let v = string_multimap_to_treemap(smm); + let mut rem = index as uint; + + for (_, val) in (*v).values().enumerate() { + if rem < (*val).len() { + let cs = (*val)[rem as uint]; + return cef_string_utf8_set((*cs).str as *const u8, (*cs).length, value, 1); + } else { + rem = rem - (*val).len(); + } + } + } + 0 +}