Skip to content

Commit 1594c6f

Browse files
committed
rm html_escape
1 parent 1ee8b00 commit 1594c6f

File tree

7 files changed

+35
-48
lines changed

7 files changed

+35
-48
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
77

88
## [Unreleased]
99

10+
- Revert #711
1011
- Fix calculating `modifiedWriteValues` bitmasks with field arrays
1112
- Fix building without `yaml` feature
1213
- Compatibility with `riscv` 0.12 and `riscv-rt` 0.13

Cargo.lock

Lines changed: 0 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ serde = { version = "1.0", optional = true }
5454
serde_json = { version = "1.0.85", optional = true }
5555
serde_yaml = { version = "0.9.11", optional = true }
5656
regex = "1.10.0"
57-
html-escape = "0.2"
5857
url = { version = "2.5", features = ["serde"] }
5958

6059
[dependencies.svd-parser]

src/generate/interrupt.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ pub fn render(
6666
.map(util::respace)
6767
.as_deref()
6868
.map(util::escape_special_chars)
69-
.unwrap_or_else(|| interrupt.0.name.clone())
69+
.unwrap_or_else(|| interrupt.0.name.as_str().into())
7070
);
7171

7272
let value = util::unsuffixed(interrupt.0.value);

src/generate/peripheral.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ pub fn render(p_original: &Peripheral, index: &Index, config: &Config) -> Result
205205
}
206206
}
207207

208-
let description =
209-
util::escape_special_chars(util::respace(p.description.as_ref().unwrap_or(&name)).as_ref());
208+
let description = util::respace(p.description.as_ref().unwrap_or(&name));
209+
let description = util::escape_special_chars(&description);
210210

211211
// Build up an alternate erc list by expanding any derived registers/clusters
212212
// erc: *E*ither *R*egister or *C*luster
@@ -511,7 +511,8 @@ impl FieldRegions {
511511
}
512512

513513
fn make_comment(size: u32, offset: u32, description: &str) -> String {
514-
let desc = util::escape_special_chars(&util::respace(description));
514+
let desc = util::respace(description);
515+
let desc = util::escape_special_chars(&desc);
515516
if size > 32 {
516517
let end = offset + size / 8;
517518
format!("0x{offset:02x}..0x{end:02x} - {desc}")
@@ -1149,7 +1150,7 @@ fn expand_register(
11491150
.properties
11501151
.size
11511152
.ok_or_else(|| anyhow!("Register {} has no `size` field", register.name))?;
1152-
let description = register.description.clone().unwrap_or_default();
1153+
let description = register.description.as_deref().unwrap_or_default();
11531154

11541155
let info_name = register.fullname(config.ignore_groups);
11551156
let mut ty_name = if register.is_single() {
@@ -1161,7 +1162,7 @@ fn expand_register(
11611162

11621163
match register {
11631164
Register::Single(info) => {
1164-
let doc = make_comment(register_size, info.address_offset, &description);
1165+
let doc = make_comment(register_size, info.address_offset, description);
11651166
let span = Span::call_site();
11661167
let ty = name_to_ty(ident(&ty_str, config, "register", span));
11671168
let name: Ident = ident(&ty_name, config, "register_accessor", span);
@@ -1236,7 +1237,7 @@ fn expand_register(
12361237
let doc = make_comment(
12371238
register_size * array_info.dim,
12381239
info.address_offset,
1239-
&description,
1240+
description,
12401241
);
12411242
let mut accessors = Vec::with_capacity((array_info.dim + 1) as _);
12421243
let first_name = svd::array::names(info, array_info).next().unwrap();
@@ -1380,8 +1381,8 @@ fn cluster_block(
13801381
index: &Index,
13811382
config: &Config,
13821383
) -> Result<TokenStream> {
1383-
let description =
1384-
util::escape_special_chars(&util::respace(c.description.as_ref().unwrap_or(&c.name)));
1384+
let description = util::respace(c.description.as_ref().unwrap_or(&c.name));
1385+
let description = util::escape_special_chars(&description);
13851386
let mod_name = c.name.remove_dim().to_string();
13861387

13871388
// name_snake_case needs to take into account array type.

src/generate/register.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,11 @@ pub fn render(
6565
let reg_ty = ident(&name, config, "register", span);
6666
let doc_alias = (reg_ty.to_string().as_str() != name).then(|| quote!(#[doc(alias = #name)]));
6767
let mod_ty = ident(&name, config, "register_mod", span);
68-
let description = util::escape_special_chars(
69-
util::respace(&register.description.clone().unwrap_or_else(|| {
70-
warn!("Missing description for register {}", register.name);
71-
Default::default()
72-
}))
73-
.as_ref(),
74-
);
68+
let description = util::respace(register.description.as_deref().unwrap_or_else(|| {
69+
warn!("Missing description for register {}", register.name);
70+
""
71+
}));
72+
let description = util::escape_special_chars(&description);
7573

7674
if let Some(dpath) = dpath.as_ref() {
7775
let mut derived = if &dpath.block == path {
@@ -261,13 +259,11 @@ pub fn render_register_mod(
261259
rsize.next_power_of_two()
262260
};
263261
let rty = rsize.to_ty()?;
264-
let description = util::escape_special_chars(
265-
util::respace(&register.description.clone().unwrap_or_else(|| {
266-
warn!("Missing description for register {rname}");
267-
Default::default()
268-
}))
269-
.as_ref(),
270-
);
262+
let description = util::respace(&register.description.as_deref().unwrap_or_else(|| {
263+
warn!("Missing description for register {rname}");
264+
""
265+
}));
266+
let description = util::escape_special_chars(&description);
271267

272268
let mut mod_items = TokenStream::new();
273269

@@ -898,7 +894,8 @@ pub fn fields(
898894
let pc = &v.pc;
899895
let is_variant = &v.is_sc;
900896

901-
let doc = util::escape_special_chars(&util::respace(&v.doc));
897+
let doc = util::respace(&v.doc);
898+
let doc = util::escape_special_chars(&doc);
902899
enum_items.extend(quote! {
903900
#[doc = #doc]
904901
#inline
@@ -911,7 +908,8 @@ pub fn fields(
911908
let pc = &v.pc;
912909
let is_variant = &v.is_sc;
913910

914-
let doc = util::escape_special_chars(&util::respace(&v.doc));
911+
let doc = util::respace(&v.doc);
912+
let doc = util::escape_special_chars(&doc);
915913
enum_items.extend(quote! {
916914
#[doc = #doc]
917915
#inline
@@ -1174,7 +1172,8 @@ pub fn fields(
11741172
for v in &variants {
11751173
let pc = &v.pc;
11761174
let sc = &v.sc;
1177-
let doc = util::escape_special_chars(&util::respace(&v.doc));
1175+
let doc = util::respace(&v.doc);
1176+
let doc = util::escape_special_chars(&doc);
11781177
proxy_items.extend(quote! {
11791178
#[doc = #doc]
11801179
#inline
@@ -1545,7 +1544,8 @@ fn add_from_variants<'a>(
15451544

15461545
let mut vars = TokenStream::new();
15471546
for v in variants.map(|v| {
1548-
let desc = util::escape_special_chars(&util::respace(&format!("{}: {}", v.value, v.doc)));
1547+
let desc = util::respace(&format!("{}: {}", v.value, v.doc));
1548+
let desc = util::escape_special_chars(&desc);
15491549
let pcv = &v.pc;
15501550
let pcval = &unsuffixed(v.value);
15511551
quote! {

src/util.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ use crate::{
55
svd::{Access, Device, Field, RegisterInfo, RegisterProperties},
66
Config,
77
};
8-
use html_escape::encode_text_minimal;
98
use inflections::Inflect;
109
use proc_macro2::{Ident, Span, TokenStream};
1110
use quote::quote;
@@ -179,9 +178,12 @@ pub fn escape_brackets(s: &str) -> String {
179178
}
180179

181180
/// Escape basic html tags and brackets
182-
pub fn escape_special_chars(s: &str) -> String {
183-
let html_escaped = encode_text_minimal(s);
184-
escape_brackets(&html_escaped)
181+
pub fn escape_special_chars(s: &str) -> Cow<'_, str> {
182+
if s.contains('[') {
183+
escape_brackets(&s).into()
184+
} else {
185+
s.into()
186+
}
185187
}
186188

187189
pub fn name_of<T: FullName>(maybe_array: &MaybeArray<T>, ignore_group: bool) -> String {

0 commit comments

Comments
 (0)