--- a/src/Pure/General/mailman.scala Wed Dec 18 11:59:44 2024 +0100
+++ b/src/Pure/General/mailman.scala Wed Dec 18 12:49:42 2024 +0100
@@ -20,27 +20,27 @@
private val standard_name: Map[String, String] =
Map(
- "121171528@qq.com" -> "Guo Fan\n121171528@qq.com",
+ "121171528:qq/com" -> "Guo Fan\n121171528:qq/com",
"Aman Pohjola, Johannes (Data61, Kensington NSW)" -> "Johannes Aman Pohjola",
"Andrei de AraÃjo Formiga" -> "Andrei de Araujo Formiga",
- "Benedikt.AHRENS@unice.fr" -> "Benedikt Ahrens\nBenedikt.AHRENS@unice.fr",
+ "Benedikt/AHRENS:unice/fr" -> "Benedikt Ahrens\nBenedikt/AHRENS:unice/fr",
"Berg, Nils Erik" -> "Nils Erik Berg",
- "Berger U." -> "Ulrich Berger",
+ "Berger U/" -> "Ulrich Berger",
"Bisping, Benjamin" -> "Benjamin Bisping",
- "Blanchette, J.C." -> "Jasmin Christian Blanchette",
+ "Blanchette, J/C/" -> "Jasmin Christian Blanchette",
"Buday Gergely István" -> "Gergely Buday",
- "CALaF1UJ9Uy0vGCu4WkBmbfuPDxG7nFm8hfeCMP+O3g7_5CQ0Bw@mail.gmail.com" -> "",
- "CRACIUN F." -> "Florin Craciun",
+ "CALaF1UJ9Uy0vGCu4WkBmbfuPDxG7nFm8hfeCMP+O3g7_5CQ0Bw:mail/gmail/com" -> "",
+ "CRACIUN F/" -> "Florin Craciun",
"Carsten Schuermann" -> "Carsten Schürmann",
"Chris" -> "",
"Christoph Lueth" -> "Christoph Lüth",
"Claude Marche" -> "Claude Marché",
"Daniel StÃwe" -> "Daniel Stüwe",
- "Daniel.Matichuk@data61.csiro.au" -> "Daniel Matichuk\nDaniel.Matichuk@data61.csiro.au",
- "Daniel.Matichuk@nicta.com.au" -> "Daniel Matichuk\nDaniel.Matichuk@nicta.com.au",
+ "Daniel/Matichuk:data61/csiro/au" -> "Daniel Matichuk\nDaniel/Matichuk:data61/csiro/au",
+ "Daniel/Matichuk:nicta/com/au" -> "Daniel Matichuk\nDaniel/Matichuk:nicta/com/au",
"David MENTRE" -> "David MENTRÉ",
"Dey, Katie" -> "Katie Dey",
- "Dr. Brendan Patrick Mahony" -> "Brendan Mahony",
+ "Dr/ Brendan Patrick Mahony" -> "Brendan Mahony",
"Farn" -> "Farn Wang",
"Farquhar, Colin I" -> "Colin Farquhar",
"Fernandez, Matthew" -> "Matthew Fernandez",
@@ -50,7 +50,7 @@
"Francisco Jose CHAVES ALONSO" -> "Francisco Jose Chaves Alonso",
"Frederic Tuong (Dr)" -> "Frederic Tuong",
"Fulya" -> "Fulya Horozal",
- "George K." -> "George Karabotsos",
+ "George K/" -> "George Karabotsos",
"Gidon Ernst" -> "Gidon ERNST",
"Gransden, Thomas" -> "Thomas Gransden",
"Hans-JÃrg Schurr" -> "Hans-Jörg Schurr",
@@ -58,7 +58,7 @@
"Hitoshi Ohsaki (RTA publicity chair)" -> "Hitoshi Ohsaki",
"Häuselmann Rafael" -> "Rafael Häuselmann",
"Isabelle" -> "",
- "J. Juhas (TUM)" -> "Jonatan Juhas",
+ "J/ Juhas (TUM)" -> "Jonatan Juhas",
"Jackson, Vincent (Data61, Kensington NSW)" -> "Vincent Jackson",
"Janney, Mark-P26816" -> "Mark Janney",
"Jean François Molderez" -> "Jean-François Molderez",
@@ -70,7 +70,7 @@
"Klein, Gerwin (Data61, Kensington NSW)" -> "Gerwin Klein",
"Kobayashi, Hidetsune" -> "Hidetsune Kobayashi",
"Kylie Williams (IND)" -> "Kylie Williams",
- "Laarman, A.W." -> "A.W. Laarman",
+ "Laarman, A/W/" -> "A/W/ Laarman",
"Laurent Thery" -> "Laurent Théry",
"Li, Chanjuan" -> "Li Chanjuan",
"Lochbihler Andreas" -> "Andreas Lochbihler",
@@ -86,7 +86,7 @@
"Marmsoler, Diego" -> "Diego Marmsoler",
"Martin Klebermass" -> "Martin Klebermaß",
"Martyn Johnson via RT" -> "",
- "Mathias.Fleury@ens-rennes.fr" -> "Mathias Fleury\nmathias.fleury12@gmail.com",
+ "Mathias/Fleury:ens-rennes/fr" -> "Mathias Fleury\nmathias/fleury12:gmail/com",
"Matthew" -> "",
"Matthews, John R" -> "John Matthews",
"McCarthy, Jim (C3ID)" -> "Jim McCarthy",
@@ -94,10 +94,10 @@
"Michael FÃrber" -> "Michael Färber",
"Michel" -> "",
"Miranda, Brando" -> "Brando Miranda",
- "Moscato, Mariano M. \\(LARC-D320\\)\\[NATIONAL INSTITUTE OF AEROSPACE\\]" -> "Mariano M. Moscato",
+ "Moscato, Mariano M/ \\(LARC-D320\\)\\[NATIONAL INSTITUTE OF AEROSPACE\\]" -> "Mariano M/ Moscato",
"Mr Julian Fell" -> "Julian Fell",
"Mueller Peter" -> "Peter Müller",
- "Munoz, Cesar Augusto (LARC-D320)" -> "Cesar A. Munoz",
+ "Munoz, Cesar Augusto (LARC-D320)" -> "Cesar A/ Munoz",
"Nadel, Alexander" -> "Alexander Nadel",
"Nagashima, Yutaka" -> "Yutaka Nagashima",
"Norrish, Michael (Data61, Acton)" -> "Michael Norrish",
@@ -109,34 +109,34 @@
"PAQUI LUCIO" -> "Paqui Lucio",
"Pal, Abhik" -> "Abhik Pal",
"Pasupuleti, Vijay" -> "Vijay Pasupuleti",
- "Peter Vincent Homeier" -> "Peter V. Homeier",
+ "Peter Vincent Homeier" -> "Peter V/ Homeier",
"Peter" -> "",
"Philipp Ruemmer" -> "Philipp Rümmer",
"Philipp RÃmmer" -> "Philipp Rümmer",
"Piete Brooks via RT" -> "",
"RTA publicity chair" -> "",
- "Raamsdonk, F. van" -> "Femke van Raamsdonk",
+ "Raamsdonk, F/ van" -> "Femke van Raamsdonk",
"Raul Gutierrez" -> "Raúl Gutiérrez",
"Renà Thiemann" -> "René Thiemann",
- "Ridgway, John V. E." -> "John V. E. Ridgway",
- "Roggenbach M." -> "Markus Roggenbach",
+ "Ridgway, John V/ E/" -> "John V/ E/ Ridgway",
+ "Roggenbach M/" -> "Markus Roggenbach",
"Rosu, Grigore" -> "Grigore Rosu",
"Rozman, Mihaela" -> "Mihaela Rozman",
- "Schmaltz, J." -> "Julien Schmaltz",
- "Serguei A. Mokhov on behalf of PST-11" -> "Serguei A. Mokhov",
- "Serguei Mokhov" -> "Serguei A. Mokhov",
+ "Schmaltz, J/" -> "Julien Schmaltz",
+ "Serguei A/ Mokhov on behalf of PST-11" -> "Serguei A/ Mokhov",
+ "Serguei Mokhov" -> "Serguei A/ Mokhov",
"Shumeiko, Igor" -> "Igor Shumeiko",
"Siek, Jeremy" -> "Jeremy Siek",
- "Silvio.Ranise@loria.fr" -> "Silvio Ranise\nSilvio.Ranise@loria.fr",
+ "Silvio/Ranise:loria/fr" -> "Silvio Ranise\nSilvio/Ranise:loria/fr",
"Siu, Tony" -> "Tony Siu",
"Stüber, Sebastian" -> "Sebastian Stüber",
"Thiemann, Rene" -> "René Thiemann",
"Thiemann, René" -> "René Thiemann",
"Thomas Arthur Leck Sewell" -> "Thomas Sewell",
"Thomas Goethel" -> "Thomas Göthel",
- "Thomas.Sewell@data61.csiro.au" -> "Thomas Sewell\nThomas.Sewell@data61.csiro.au",
+ "Thomas/Sewell:data61/csiro/au" -> "Thomas Sewell\nThomas/Sewell:data61/csiro/au",
"Tjark Weber via RT" -> "Tjark Weber",
- "Toby.Murray@data61.csiro.au" -> "Toby Murray\nToby.Murray@data61.csiro.au",
+ "Toby/Murray:data61/csiro/au" -> "Toby Murray\nToby/Murray:data61/csiro/au",
"Urban, Christian" -> "Christian Urban",
"Ursula Eschbach" -> "",
"Van Staden Stephan" -> "Stephan van Staden",
@@ -154,57 +154,64 @@
"chen kun" -> "Chen Kun",
"chunhan wu" -> "Chunhan Wu",
"daniel de la concepción sáez" -> "Daniel de la Concepción Sáez",
- "daniel.luckhardt@mathematik.uni-goettingen.de" -> "Logiker@gmx.net",
+ "daniel/luckhardt:mathematik/uni-goettingen/de" -> "Logiker:gmx/net",
"david streader" -> "David Streader",
- "eschbach@in.tum.de" -> "",
- "f.rabe@jacobs-university.de" -> "florian.rabe@fau.de",
- "florian@haftmann-online.de" -> "haftmann@in.tum.de",
- "fredegar@haftmann-online.de" -> "haftmann@in.tum.de",
- "gallais @ ensl.org" -> "Guillaume Allais",
+ "eschbach:in/tum/de" -> "",
+ "f/rabe:jacobs-university/de" -> "florian/rabe:fau/de",
+ "florian:haftmann-online/de" -> "haftmann:in/tum/de",
+ "fredegar:haftmann-online/de" -> "haftmann:in/tum/de",
+ "gallais : ensl/org" -> "Guillaume Allais",
"geng chen" -> "Geng Chen",
- "henning.seidler" -> "Henning Seidler",
+ "henning/seidler" -> "Henning Seidler",
"hkb" -> "Hidetsune Kobayashi",
- "jobs-pm@inf.ethz.ch" -> "",
- "julien@RadboudUniversity" -> "",
+ "jobs-pm:inf/ethz/ch" -> "",
+ "julien:RadboudUniversity" -> "",
"jun sun" -> "Jun Sun",
- "jwang whu.edu.cn (jwang)" -> "jwang",
+ "jwang whu/edu/cn (jwang)" -> "jwang",
"kostas pouliasis" -> "Kostas Pouliasis",
- "kristof.teichel@ptb.de" -> "Kristof Teichel\nkristof.teichel@ptb.de",
+ "kristof/teichel:ptb/de" -> "Kristof Teichel\nkristof/teichel:ptb/de",
"lucas cavalcante" -> "Lucas Cavalcante",
"mahmoud abdelazim" -> "Mahmoud Abdelazim",
"manish surolia" -> "Manish Surolia",
"mantel" -> "Heiko Mantel",
"marco caminati" -> "Marco Caminati",
- "mathias.fleury@ens-rennes.fr" -> "Mathias Fleury\nmathias.fleury12@gmail.com",
- "merz@loria.fr" -> "stephan.merz@loria.fr",
+ "mathias/fleury:ens-rennes/fr" -> "Mathias Fleury\nmathias/fleury12:gmail/com",
+ "merz:loria/fr" -> "stephan/merz:loria/fr",
"michel levy" -> "Michel Levy",
- "michel.levy2009@laposte.net" -> "Michel Levy\nmichel.levy2009@laposte.net",
+ "michel/levy2009:laposte/net" -> "Michel Levy\nmichel/levy2009:laposte/net",
"nemouchi" -> "Yakoub Nemouchi",
"noam neer" -> "Noam Neer",
"olfa mraihi" -> "Olfa Mraihi",
- "pathsnottakenworkshop@gmail.com" -> "Leo Freitas\nleo.freitas@newcastle.ac.uk",
+ "pathsnottakenworkshop:gmail/com" -> "Leo Freitas\nleo/freitas:newcastle/ac/uk",
"patrick barlatier" -> "Patrick Barlatier",
"patrick dabou" -> "Patrick Dabou",
"paul zimmermann" -> "Paul Zimmermann",
- "popescu2@illinois.edu" -> "Andrei Popescu",
+ "popescu2:illinois/edu" -> "Andrei Popescu",
"recruiting" -> "",
- "recruiting@mais.informatik.tu-darmstadt.de" -> "",
+ "recruiting:mais/informatik/tu-darmstadt/de" -> "",
"roux cody" -> "Cody Roux",
"scott constable" -> "Scott Constable",
- "superuser@mattweidner.com" -> "Matthew Weidner\nsuperuser@mattweidner.com",
- "urban@math.lmu.de" -> "Christian Urban\nurban@math.lmu.de",
- "veronique.cortier@loria.fr" -> "Veronique.Cortier@loria.fr",
+ "superuser:mattweidner/com" -> "Matthew Weidner\nsuperuser:mattweidner/com",
+ "urban:math/lmu/de" -> "Christian Urban\nurban:math/lmu/de",
+ "veronique/cortier:loria/fr" -> "Veronique/Cortier:loria/fr",
"vikram singh" -> "Vikram Singh",
- "wenzelm@in.tum.de" -> "makarius@sketis.net",
- "werner@lix.polytechnique.fr" -> "Benjamin Werner\nwerner@lix.polytechnique.fr",
- "wmansky@cs.princeton.edu" -> "William Mansky\nwmansky@cs.princeton.edu",
- "y.nemouchi@ensbiotech.edu.dz" -> "Yakoub Nemouchi\ny.nemouchi@ensbiotech.edu.dz",
+ "wenzelm:in/tum/de" -> "makarius:sketis/net",
+ "werner:lix/polytechnique/fr" -> "Benjamin Werner\nwerner:lix/polytechnique/fr",
+ "wmansky:cs/princeton/edu" -> "William Mansky\nwmansky:cs/princeton/edu",
+ "y/nemouchi:ensbiotech/edu/dz" -> "Yakoub Nemouchi\ny/nemouchi:ensbiotech/edu/dz",
"ÐÑÐÐÐÑÐÐÐ ÐÐÐÐÐÐÐÑÐÐÐÑ ÐÐÐÑÐÐÐ" -> "",
- "∀X.Xπ - Tutorials about Proofs" -> "Bruno Woltzenlogel Paleo",
- ).withDefault(identity)
+ "∀X/Xπ - Tutorials about Proofs" -> "Bruno Woltzenlogel Paleo",
+ )
+
+ private def tune(s: String): String =
+ s.replace(64.toChar, 58.toChar).replace(46.toChar, 47.toChar)
+
+ private def untune(s: String): String =
+ s.replace(58.toChar, 64.toChar).replace(47.toChar, 46.toChar)
def standard_author_info(author_info: List[String]): List[String] =
- author_info.flatMap(s => split_lines(standard_name.getOrElse(s, s))).distinct
+ author_info.flatMap(s =>
+ split_lines(standard_name.get(tune(s)).map(untune).getOrElse(s))).distinct
sealed case class Message(
name: String,