Also renamed the internal flags to be less annoyingly long.
class ResultFlag(Flag):
HAS_SUFFIX = 1 << 0
- IS_DEPRECATED = 1 << 1
+ DEPRECATED = 1 << 1
+ DELETED = 1 << 2
_TYPE = 0xf << 4
NAMESPACE = 1 << 4
enum.has_value_details = True
if not state.doxyfile['M_SEARCH_DISABLED']:
result = Empty()
- result.flags = ResultFlag.ENUM_VALUE|(ResultFlag.IS_DEPRECATED if value.is_deprecated else ResultFlag(0))
+ result.flags = ResultFlag.ENUM_VALUE|(ResultFlag.DEPRECATED if value.is_deprecated else ResultFlag(0))
result.url = state.current_url + '#' + value.id
result.prefix = state.current_prefix + [enum.name]
result.name = value.name
if enum.brief or enum.has_details or enum.has_value_details:
if not state.doxyfile['M_SEARCH_DISABLED']:
result = Empty()
- result.flags = ResultFlag.ENUM|(ResultFlag.IS_DEPRECATED if enum.is_deprecated else ResultFlag(0))
+ result.flags = ResultFlag.ENUM|(ResultFlag.DEPRECATED if enum.is_deprecated else ResultFlag(0))
result.url = state.current_url + '#' + enum.id
result.prefix = state.current_prefix
result.name = enum.name
typedef.has_details = typedef.description or typedef.has_template_details
if typedef.brief or typedef.has_details:
result = Empty()
- result.flags = ResultFlag.TYPEDEF|(ResultFlag.IS_DEPRECATED if typedef.is_deprecated else ResultFlag(0))
+ result.flags = ResultFlag.TYPEDEF|(ResultFlag.DEPRECATED if typedef.is_deprecated else ResultFlag(0))
result.url = state.current_url + '#' + typedef.id
result.prefix = state.current_prefix
result.name = typedef.name
if func.brief or func.has_details:
if not state.doxyfile['M_SEARCH_DISABLED']:
result = Empty()
- result.flags = ResultFlag.FUNC|(ResultFlag.IS_DEPRECATED if func.is_deprecated else ResultFlag(0))
+ result.flags = ResultFlag.FUNC|(ResultFlag.DEPRECATED if func.is_deprecated else ResultFlag(0))|(ResultFlag.DELETED if func.is_deleted else ResultFlag(0))
result.url = state.current_url + '#' + func.id
result.prefix = state.current_prefix
result.name = func.name
if var.brief or var.has_details:
if not state.doxyfile['M_SEARCH_DISABLED']:
result = Empty()
- result.flags = ResultFlag.VAR|(ResultFlag.IS_DEPRECATED if var.is_deprecated else ResultFlag(0))
+ result.flags = ResultFlag.VAR|(ResultFlag.DEPRECATED if var.is_deprecated else ResultFlag(0))
result.url = state.current_url + '#' + var.id
result.prefix = state.current_prefix
result.name = var.name
if define.brief or define.has_details:
if not state.doxyfile['M_SEARCH_DISABLED']:
result = Empty()
- result.flags = ResultFlag.DEFINE|(ResultFlag.IS_DEPRECATED if define.is_deprecated else ResultFlag(0))
+ result.flags = ResultFlag.DEFINE|(ResultFlag.DEPRECATED if define.is_deprecated else ResultFlag(0))
result.url = state.current_url + '#' + define.id
result.prefix = []
result.name = define.name
# Otherwise add it multiple times with all possible prefixes
else:
# TODO: escape elsewhere so i don't have to unescape here
- index = map.add(html.unescape(result_joiner.join(prefixed_name)), compound.url, flags=kind|(ResultFlag.IS_DEPRECATED if compound.is_deprecated else ResultFlag(0)))
+ index = map.add(html.unescape(result_joiner.join(prefixed_name)), compound.url, flags=kind|(ResultFlag.DEPRECATED if compound.is_deprecated else ResultFlag(0)))
for i in range(len(prefixed_name)):
lookahead_barriers = []
name = ''
break;
}
- list += this.fromUtf8('<li' + (i ? '' : ' id="search-current"') + '><a href="' + results[i].url + '" onmouseover="selectResult(event)"><div class="m-label m-flat ' + color + '">' + type + '</div>' + (results[i].flags & 2 ? '<div class="m-label m-danger">deprecated</div>' : '') + '<div><span class="m-text m-dim">' + this.escapeForRtl(results[i].name.substr(0, results[i].name.length - value.length - results[i].suffixLength)) + '</span><span class="m-dox-search-typed">' + this.escapeForRtl(results[i].name.substr(results[i].name.length - value.length - results[i].suffixLength, value.length)) + '</span>' + this.escapeForRtl(results[i].name.substr(results[i].name.length - results[i].suffixLength)) + '</div></a></li>');
+ list += this.fromUtf8('<li' + (i ? '' : ' id="search-current"') + '><a href="' + results[i].url + '" onmouseover="selectResult(event)"><div class="m-label m-flat ' + color + '">' + type + '</div>' + (results[i].flags & 2 ? '<div class="m-label m-danger">deprecated</div>' : '') + (results[i].flags & 4 ? '<div class="m-label m-danger">deleted</div>' : '') + '<div><span class="m-text m-dim">' + this.escapeForRtl(results[i].name.substr(0, results[i].name.length - value.length - results[i].suffixLength)) + '</span><span class="m-dox-search-typed">' + this.escapeForRtl(results[i].name.substr(results[i].name.length - value.length - results[i].suffixLength, value.length)) + '</span>' + this.escapeForRtl(results[i].name.substr(results[i].name.length - results[i].suffixLength)) + '</div></a></li>');
}
document.getElementById('search-results').innerHTML = list;
document.getElementById('search-current').scrollIntoView(true);
-O+!-vL;(N*Dggih0s#R40{{d704W0i2mk;m0{{*H0B!>S6aWBe0s#X60{|cZ04W0iBme*?0{|)j0B!>SFaQ8)0{}Jv0Br*RJOBVX1OWm7LI8j|0{}<>0CEEWPyhgL0{~V40CWQYTmS%L0{~(G0A&IJ1pos8ZU6u&0|0UW04M_hcmM!y0|0&i0BHjNga80-0|1Hu06GK#1OSi#fI0&JmH+@{0|1@?0A~XLqyPYJ0|2T30AU9J8UO%oXaE3qumAvZ0|2%F06GK#006`QfI0&J$^Zap0|3$h0CWTc0RRI41pos8-T(k80|4d#04M_h>;M361pwFp0Aca~0BHgN1^@#90s#PJ0{{jA0A~XL3;_UP0{{{M0B{2U7y$rc0{|WY0Cfof_y7QHXaE3qumAvZBmn?(AOHXmHvj-(VgLXlhX4R!z5oCq;Q#<(76AajG64VpO<{Cs0B&JzWpi+0V`WWYbZ9PUbZu-1O<{CsIy!A>ZYXJPbSxlgZgeRCZeeX@b8ul}WldppXf9}UZEPcLX>LtnbZ9y{R%K&!Z*l-*Y+-YAO<{CsUol@XR%K&!Z*neZbZu+~O<{CsIyzQmV{~tFIy!A>ZYU`rV{dMAbO2*)VRLg$VRUF;F<&uOWn*-2axQ3eZEPcLX>LtnbZ9y{QekdqWdLJrVRLg$VRUF;F<&uKVQyz-E@*UZYz9qXbZ9y{QekdqWjZ=-X>KSfAY*TCb94Y>Y+-YAO<{CsUol@XQekdqWiDuRZEPcLX>L$qXJsJ5yC73_VsK$+WdL(^VsK$+WiDuRZEOGl
\ No newline at end of file
+O+!-vL;(N*Dggih0s#R40{{d704W0i2mk;m0{{*H0B!>S6aWBe0s#X60{|cZ04W0iBme*?0{|)j0B!>SFaQ8)0{}Jv0Br*RJOBVX1OWm7LI8j|0{}<>0CEEWPyhgL0{~V40CWQYTmS%L0{~(G0A&IJ1pos8ZU6u&0|0UW04M_hcmM!y0|0&i0BHjNga80-0|1Hu06GK#1OSi#fI0&JmH+@{0|1@?0A~XLqyPYJ0|2T30AU9J8UO%oXaE3qumAvZ0|2%F06GK#006`QfI0&J$^Zap0|3$h0CWTc0RRI41pos8-T(k80|4d#04M_h>;M361pwFp0Aca~0BHgN1^@#90s#PJ0{{jA0A~XL3;_UP0{{{M0B{2U7y$rc0{|WY0Cfof_y7QHXaE3qumAvZBmn?(AOHXmHvj-(VgLXlhX4R!z5oCq;Q#<-76AajG64VpO<{Cs0B&JzWpi+0V`WWYbZ9PUbZu-1O<{CsIy!A>ZYXJPbSxlgZgeRCZeeX@b8ul}WldppXf9}UZEPcLX>LtnbZ9y{R%K&!Z*l-*Y+-YAO<{CsUol@XR%K&!Z*neZbZu+~O<{CsIyzQmV{~tFIy!A>ZYU`rV{dMAbO2*)VRLg$VRUF;F<&uOWn*-2axQ3eZEPcLX>LtnbZ9y{QekdqWdLJrVRLg$VRUF;F<&uKVQyz-E@*UZYz9qXbZ9y{QekdqWjZ=-X>KSfAY*TCb94Y>Y+-YAO<{CsUol@XQekdqWiDuRZEPcLX>L$qXJsJ5yC73_VsK$+WdL(^VsK$+WiDuRZEOGl
\ No newline at end of file
index = map.add("Math::min(int, int)", "namespaceMath.html#min", suffix_length=8, flags=ResultFlag.FUNC)
trie.insert("math::min()", index, lookahead_barriers=[4])
trie.insert("min()", index)
-index = map.add("Math::Vector", "classMath_1_1Vector.html", flags=ResultFlag.CLASS|ResultFlag.IS_DEPRECATED)
+index = map.add("Math::Vector", "classMath_1_1Vector.html", flags=ResultFlag.CLASS|ResultFlag.DEPRECATED)
trie.insert("math::vector", index)
trie.insert("vector", index)
index = map.add("Math::Vector::min() const", "classMath_1_1Vector.html#min", suffix_length=6, flags=ResultFlag.FUNC)
index = map.add("Math::Range", "classMath_1_1Range.html", flags=ResultFlag.CLASS)
trie.insert("math::range", index)
trie.insert("range", index)
-index = map.add("Math::Range::min() const", "classMath_1_1Range.html#min", suffix_length=6, flags=ResultFlag.FUNC)
+index = map.add("Math::Range::min() const", "classMath_1_1Range.html#min", suffix_length=6, flags=ResultFlag.FUNC|ResultFlag.DELETED)
trie.insert("math::range::min()", index, lookahead_barriers=[4, 11])
trie.insert("range::min()", index, lookahead_barriers=[5])
trie.insert("min()", index)
void foo() const; /**< @overload */
- void foo() &&; /**< @overload */
+ void foo() && = delete; /**< @overload */
/** @brief Function with arguments */
void foo(const Enum& first, Typedef second);
suffixLength: 10 },
{ name: 'Math::Range::min() const',
url: 'classMath_1_1Range.html#min',
- flags: 97,
+ flags: 101,
suffixLength: 10 }];
assert.deepEqual(Search.search('m'), resultsForM);
suffixLength: 8 },
{ name: 'Math::Range::min() const',
url: 'classMath_1_1Range.html#min',
- flags: 97,
+ flags: 101,
suffixLength: 8 }]);
/* Go back, get the same thing */
suffixLength: 8 },
{ name: 'Math::Range::min() const',
url: 'classMath_1_1Range.html#min',
- flags: 97,
+ flags: 101,
suffixLength: 8 }]);
}
if i: out += '\n'
flags = ResultFlag(ResultMap.flags_struct.unpack_from(serialized, i*4 + 3)[0])
extra = []
- if flags & ResultFlag.IS_DEPRECATED:
+ if flags & ResultFlag.DEPRECATED:
extra += ['deprecated']
+ if flags & ResultFlag.DELETED:
+ extra += ['deleted']
if flags & ResultFlag.HAS_SUFFIX:
extra += ['suffix_length={}'.format(ResultMap.suffix_length_struct.unpack_from(serialized, offset)[0])]
offset += 1
self.assertEqual(map.add("Math::Vector", "classMath_1_1Vector.html", flags=ResultFlag.CLASS), 1)
self.assertEqual(map.add("Math::Range", "classMath_1_1Range.html", flags=ResultFlag.CLASS), 2)
self.assertEqual(map.add("Math::min()", "namespaceMath.html#abcdef2875", flags=ResultFlag.FUNC), 3)
- self.assertEqual(map.add("Math::max(int, int)", "namespaceMath.html#abcdef2875", suffix_length=8, flags=ResultFlag.FUNC), 4)
+ self.assertEqual(map.add("Math::max(int, int)", "namespaceMath.html#abcdef2875", suffix_length=8, flags=ResultFlag.FUNC|ResultFlag.DEPRECATED|ResultFlag.DELETED), 4)
serialized = map.serialize()
self.compare(serialized, """
1: Math::Vector [type=CLASS] -> classMath_1_1Vector.html
2: Math::Range [type=CLASS] -> classMath_1_1Range.html
3: Math::min() [type=FUNC] -> namespaceMath.html#abcdef2875
-4: Math::max(int, int) [suffix_length=8, type=FUNC] -> namespaceMath.html#abcdef2875
+4: Math::max(int, int) [deprecated, deleted, suffix_length=8, type=FUNC] -> namespaceMath.html#abcdef2875
""")
self.assertEqual(len(serialized), 210)
14: DeprecatedDir/DeprecatedFile.h [deprecated, type=FILE] -> DeprecatedFile_8h.html
15: Namespace::Class::foo() [type=FUNC] -> classNamespace_1_1Class.html#aaeba4096356215868370d6ea476bf5d9
16: Namespace::Class::foo() const [suffix_length=6, type=FUNC] -> classNamespace_1_1Class.html#ac03c5b93907dda16763eabd26b25500a
-17: Namespace::Class::foo() && [suffix_length=3, type=FUNC] -> classNamespace_1_1Class.html#ac9e7e80d06281e30cfcc13171d117ade
+17: Namespace::Class::foo() && [deleted, suffix_length=3, type=FUNC] -> classNamespace_1_1Class.html#ac9e7e80d06281e30cfcc13171d117ade
18: Namespace::Class::foo(const Enum&, Typedef) [suffix_length=20, type=FUNC] -> classNamespace_1_1Class.html#aba8d57a830d4d79f86d58d92298677fa
19: DeprecatedNamespace::DeprecatedEnum::Value [type=ENUM_VALUE] -> namespaceDeprecatedNamespace.html#ab1e37ddc1d65765f2a48485df4af7b47a689202409e48743b914713f96d93947c
20: DeprecatedNamespace::DeprecatedEnum [deprecated, type=ENUM] -> namespaceDeprecatedNamespace.html#ab1e37ddc1d65765f2a48485df4af7b47