pretty sure I accidentally hardcoded edge cases

This commit is contained in:
Jean-Marie Mineau 2025-10-15 16:57:55 +02:00
parent 1f5f70779b
commit 528e1bc5b5
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
3 changed files with 113 additions and 26 deletions

View file

@ -65,4 +65,4 @@ Androscalpel can be found at the following locations:
- https://git.mineau.eu/these-android-re/androscalpel - https://git.mineau.eu/these-android-re/androscalpel
- https://github.com/histausse/androscalpel - https://github.com/histausse/androscalpel
The dataset, results of the dynamic analysis and results of benchmark before and after the instrumentations with Theseus are available on Zenodo (link to appear) The dataset, results of the dynamic analysis and results of benchmark before and after the instrumentations with Theseus are available on Zenodo at https://doi.org/10.5281/zenodo.17350991.

View file

@ -49,16 +49,70 @@
) )
) )
#slide( #slide(new-sec: true, title: [Introduction], hide-title: true)[
title: [Test], Intro 1
subtitle: [Test Slide],
)[ ]
#slide[
Intro 2
]
#new-section-slide([Tool Reusability])
#slide[
Rasta 1
/*
#stack(dir: ltr, #stack(dir: ltr,
scale(40%, reflow: true, get_figure(<tab:rasta-tools>)), scale(40%, reflow: true, get_figure(<tab:rasta-tools>)),
scale(55%, reflow: true, get_figure(<tab:rasta-sources>)), scale(55%, reflow: true, get_figure(<tab:rasta-sources>)),
) )*/
] ]
#slide[
Rasta 2
]
#new-section-slide([Class Shadowing])
#slide[Shadow 1
]
#slide[Shadow 2
]
#slide[Shadow 3
]
#new-section-slide([The Application of Theseus])
#slide[Th 1
]
#slide[Th 2
]
#new-section-slide([Conclusion])
#slide[Conclusion 1
]
#slide[Conclusion 2
]
#empty-slide[
Questions
]
/*
#slide()[ #slide()[
#get_figure(<fig:th-cg-before-after>)) #get_figure(<fig:th-cg-before-after>))
] ]
@ -80,7 +134,6 @@
// #toc-slide( title: [Outline] ) // #toc-slide( title: [Outline] )
#new-section-slide([First section])
#slide( #slide(
title: [A slide without subtitle], title: [A slide without subtitle],
@ -120,7 +173,7 @@
#empty-slide()[ #empty-slide()[
Ending slide Ending slide
] ]
*/
@ -135,4 +188,6 @@
* *
*/ */
#pagebreak()
#set page(height: auto, margin: 25mm)
#bibliography("bibliography.bib") #bibliography("bibliography.bib")

View file

@ -123,11 +123,25 @@ cmyk(25%,7%,0%,0%),
sns-polylux-template_date.update(date) sns-polylux-template_date.update(date)
body body
context {
//let section-pages = sns-polylux-template_section-pages.final()
if not "END" in sns-polylux-template_section-pages.at(here()).keys() {
let page_num = counter("logical-slide").at(here())
sns-polylux-template_section-pages.update(secpages => {
secpages.insert("END", page_num)
secpages
})
}
}
} }
#let register-section(title) = context { #let register-section(title, no_dedicated_slide: false) = context {
// YUCKKKKK, but polylux don't allows access to integers soooooo // YUCKKKKK, but polylux don't allows access to integers soooooo
let page_num = counter("logical-slide").at(here()) //sns-polylux-template_slide-pages.at(here()) let page_num = counter("logical-slide").at(here()) //sns-polylux-template_slide-pages.at(here())
if no_dedicated_slide {
page_num.at(0) += 1
}
sns-polylux-template_section-pages.update(secpages => { sns-polylux-template_section-pages.update(secpages => {
secpages.insert(repr(title), page_num) secpages.insert(repr(title), page_num)
secpages secpages
@ -267,35 +281,52 @@ cmyk(25%,7%,0%,0%),
#let sections() = context { #let sections() = context {
let section-pages = sns-polylux-template_section-pages.final() let section-pages = sns-polylux-template_section-pages.final()
let pnum = counter("logical-slide").at(here()).first() let pnum = counter("logical-slide").at(here()).first() + 1
pl.toolbox.all-sections((sections, current) => { pl.toolbox.all-sections((sections, current) => {
let pnum_i = 0 let beg-end-section = (:)
let prev-sec = none
for section in sections {
let s = repr(section.at("body"))
if prev-sec != none {
beg-end-section.insert(prev-sec, (section-pages.at(prev-sec).first(), section-pages.at(s).first()))
}
prev-sec = s
}
if prev-sec != none {
beg-end-section.insert(prev-sec, (section-pages.at(prev-sec).first(), section-pages.at("END").first() + 1))
}
let section_names = () let section_names = ()
let section_pages = () let section_pages = ()
for s in sections { for s in sections {
let pages = () let pages = ()
let pnum_max = section-pages.at(repr(s.at("body"))).first() let (pmin, pmax) = beg-end-section.at(repr(s.at("body")))
while pnum_i < pnum_max and pnum_i < pnum - 1 {
let p_i = pmin
while p_i < pmax and p_i < pnum {
// In section, before current page
pages.push(sym.circle.filled) pages.push(sym.circle.filled)
pnum_i += 1 p_i += 1
} }
if pnum_i == pnum { if p_i == pnum and p_i != pmax {
// In section, current page
pages.push(sym.ast.circle) pages.push(sym.ast.circle)
pnum_i += 1 p_i += 1
} }
while pnum_i < pnum_max { while p_i < pmax {
// In section, after current page
pages.push(sym.circle.dotted) pages.push(sym.circle.dotted)
pnum_i += 1 p_i += 1
} }
/* //section_names.push(scale(50%, reflow: true, [#pnum #s (#pmin, #pmax)]))
if s == current { if s == current {
strong(s + " " + str(pnum)) section_names.push(strong(s))
section_pages.push(strong(pages.join([])))
} else { } else {
s + " " + str(pnum) section_names.push(s)
}*/ section_pages.push(pages.join([]))
section_names.push(s) }
section_pages.push(pages.join([]))
} }
grid( grid(
columns: (auto,)*section_names.len(), columns: (auto,)*section_names.len(),
@ -340,6 +371,7 @@ cmyk(25%,7%,0%,0%),
new-sec : false, new-sec : false,
page-number : true, page-number : true,
hide-section : false, hide-section : false,
hide-title : false,
body body
) = context( { ) = context( {
let sections_height = 1.5cm let sections_height = 1.5cm
@ -355,7 +387,7 @@ cmyk(25%,7%,0%,0%),
// Else the new-sec name is new-sec // Else the new-sec name is new-sec
if type(new-sec)==bool { if type(new-sec)==bool {
if new-sec { if new-sec {
register-section(title) register-section(title, no_dedicated_slide: true)
} }
} else { } else {
register-section(new-sec) register-section(new-sec)
@ -379,7 +411,7 @@ cmyk(25%,7%,0%,0%),
})) }))
), ),
grid.cell(colspan: columns.len(), progress-bar()), grid.cell(colspan: columns.len(), progress-bar()),
if title != none { if title != none and not hide-title {
rect( rect(
width: 100%, height: title_bar_height, width: 100%, height: title_bar_height,
inset: 0.8cm, outset: 0pt, inset: 0.8cm, outset: 0pt,