From 9fba0357b5272ee5f8aa54068f969c977c2ee50f Mon Sep 17 00:00:00 2001 From: Batrachophreno Date: Tue, 8 Jul 2025 19:14:59 -0400 Subject: [PATCH] Multiple href fixes (#20967) Fixes a whole bunch of stuff caused by unclosed hrefs, details in changelogs --------- Signed-off-by: Batrachophreno --- code/game/machinery/newscaster.dm | 2 +- code/game/objects/items.dm | 2 +- code/modules/admin/admin.dm | 2 +- .../preference_setup/loadout/loadout.dm | 2 +- code/modules/clothing/clothing_accessories.dm | 2 +- code/modules/heavy_vehicle/mecha.dm | 2 +- .../integrated_electronics/core/assemblies.dm | 18 ++--- .../core/integrated_circuit.dm | 12 ++-- code/modules/library/lib_machines.dm | 2 +- .../living/silicon/robot/drone/drone_items.dm | 10 +-- .../modules/mob/living/silicon/robot/robot.dm | 12 ++-- code/modules/mob/living/silicon/silicon.dm | 2 +- .../Batrachophreno-HrefClosures.yml | 66 +++++++++++++++++++ 13 files changed, 100 insertions(+), 34 deletions(-) create mode 100644 html/changelogs/Batrachophreno-HrefClosures.yml diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index e3d3785090d..b4f693515ca 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -553,7 +553,7 @@ GLOBAL_LIST_INIT_TYPED(allCasters, /obj/machinery/newscaster, list()) dat+="No comments on this story yet!
" else for(var/datum/feed_comment/COMMENT in src.viewing_message.comments) - dat+="
\[[world.time]\] [COMMENT.author]:[COMMENT.message]
Censor Comment
" dat+="Return" if(24) //newscaster is not connected to the station-z-level dat += "ERROR: Newscaster unit cannot access main news server!
" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 72425829b55..be4ff61f795 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -913,7 +913,7 @@ GLOBAL_LIST_INIT(slot_flags_enumeration, list( user.langchat_speech("holds up [src].", viewers, GLOB.all_languages, skip_language_check = TRUE, animation_style = LANGCHAT_FAST_POP, additional_styles = list("langchat_small", "emote")) for (var/mob/M in viewers) if(!user.is_invisible_to(M)) - M.show_message("[user] holds up [icon2html(src, viewers)] [src]. Take a closer look.",1) /mob/living/carbon/verb/showoff() set name = "Show Held Item" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 27994791a39..0c9846a0a21 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -598,7 +598,7 @@ var/global/enabled_spooking = 0 dat+="No comments on this story yet!
" else for(var/datum/feed_comment/COMMENT in src.admincaster_viewing_message.comments) - dat+="
\[[world.time]\] [COMMENT.author]:[COMMENT.message]
Censor Comment
" dat+="Return" else dat+="Please report this on GitHub, along with what you did to make this appear." diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index b761cee56e5..40d11599b3b 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -206,7 +206,7 @@ GLOBAL_LIST_INIT(gear_datums, list()) if(thing in pref.gear) style = "style='color: #FF8000;'" break - . += " [category] " + . += " [category] " . += "" var/datum/loadout_category/LC = GLOB.loadout_categories[current_tab] diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm index b491b30b27c..2cf5f188756 100644 --- a/code/modules/clothing/clothing_accessories.dm +++ b/code/modules/clothing/clothing_accessories.dm @@ -102,7 +102,7 @@ . = ..() if(LAZYLEN(accessories)) for(var/obj/item/clothing/accessory/A in accessories) - . += SPAN_NOTICE("\A [A] [A.gender == PLURAL ? "are" : "is"] attached to it.") /obj/item/clothing/proc/update_accessory_slowdown(mob/user) slowdown_accessory = 0 diff --git a/code/modules/heavy_vehicle/mecha.dm b/code/modules/heavy_vehicle/mecha.dm index 2b59098acdd..900c09d1754 100644 --- a/code/modules/heavy_vehicle/mecha.dm +++ b/code/modules/heavy_vehicle/mecha.dm @@ -149,7 +149,7 @@ for(var/pilot in pilots) if(ismob(pilot)) var/mob/M = pilot - . += "It is being piloted by [M.name]." else . += "It is being piloted by [pilot]." if(hardpoints.len) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 09e15e38592..d47d3cc2033 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -101,10 +101,10 @@ //Put removable circuits in separate categories from non-removable for(var/obj/item/integrated_circuit/circuit in contents) if(!circuit.removable) - HTML += "Rename | " - HTML += "Move to Bottom" + HTML += "'[circuit.displayed_name] | " + HTML += "Rename | " + HTML += "Scan with Debugger | " + HTML += "Move to Bottom" HTML += "
" HTML += "
" @@ -112,11 +112,11 @@ for(var/obj/item/integrated_circuit/circuit in contents) if(circuit.removable) - HTML += "Rename | " - HTML += "Remove | " - HTML += "[circuit.displayed_name] | " + HTML += "Rename | " + HTML += "Scan with Debugger | " + HTML += "Remove | " + HTML += "Move to Bottom" HTML += "
" var/datum/browser/B = new(user, "assembly-[REF(src)]", name, 600, 400) diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm index dd998f63eb2..a9ae76d09b6 100644 --- a/code/modules/integrated_electronics/core/integrated_circuit.dm +++ b/code/modules/integrated_electronics/core/integrated_circuit.dm @@ -120,10 +120,10 @@ a creative player the means to solve many problems. Circuits are held inside an if(1) io = get_pin_ref(IC_INPUT, i) if(io) - words += "[io.display_data(io.data)]
" + words += "[io.display_pin_type()] [io.name] [io.display_data(io.data)]
" if(io.linked.len) for(var/datum/integrated_io/linked in io.linked) - words += "[linked.name] \ @ [io.display_pin_type()] [io.name] [io.display_pin_type()] [io.name] [io.display_data(io.data)]
" if(io.linked.len) for(var/datum/integrated_io/linked in io.linked) - words += "[linked.name] \ @ [io.name] [io.data?"\":"\"]
" + "[io.name] [io.data?"\":"\"]
" ) if(io.linked.len) for(var/datum/integrated_io/linked in io.linked) - words += "[linked.name] \ + words += "[linked.name] \ @ [linked.holder.displayed_name]
" HTML += "" diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index a6e5eaf1202..3a41cba9cb9 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -194,7 +194,7 @@ else dat += {"(Order Book by ISBN)

- "} var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT id, author, title, category FROM ss13_library ORDER BY [sortby]") query.Execute() diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index 6f6b93803ef..3c3d4623c5a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -183,9 +183,9 @@ var/dat = {" Activated Modules
- Module 1: [module_state_1 ? "[module_state_2]" : "No Module"]
- Module 3: [module_state_3 ? "
[module_state_1]" : "No Module"]
+ Module 2: [module_state_2 ? "
[module_state_2]" : "No Module"]
+ Module 3: [module_state_3 ? "
[module_state_3]" : "No Module"]

Installed Modules

"} @@ -200,7 +200,7 @@ else if(activated(O)) module_string += "[O]: Activated
" else - module_string += "[O]:
Activate
" var/obj/item/I = O if((istype(I, /obj/item) || istype(I, /obj/item/device)) && !(I.iscoil())) @@ -216,7 +216,7 @@ else if(activated(module.emag)) dat += "[module.emag]: Activated
" else - dat += "[module.emag]: Activate
" dat += resources diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 16b268fad85..e4342b230db 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -868,9 +868,9 @@ dat += {" Activated Modules
- Module 1: [module_state_1 ? "[module_state_2]" : "No Module"]
- Module 3: [module_state_3 ? "
[module_state_1]" : "No Module"]
+ Module 2: [module_state_2 ? "
[module_state_2]" : "No Module"]
+ Module 3: [module_state_3 ? "
[module_state_3]" : "No Module"]

Installed Modules

"} @@ -881,17 +881,17 @@ else if(activated(obj)) dat += "[obj]: Activated
" else - dat += "[obj]:
Activate
" if(emagged) if(activated(module.emag)) dat += "[module.emag]: Activated
" else - dat += "[module.emag]: Activate
" if(malf_AI_module) if(activated(module.malf_AI_module)) dat += "[module.malf_AI_module]: Activated
" else - dat += "[module.malf_AI_module]: Activate
" src << browse(HTML_SKELETON(dat), "window=robotmod") diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index a30de4da411..adf78e52b59 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -333,7 +333,7 @@ /mob/living/silicon/ai/raised_alarm(var/datum/alarm/A) var/cameratext = "" for(var/obj/machinery/camera/C in A.cameras()) - cameratext += "[(cameratext == "")? "" : "|"][C.c_tag]" to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])") diff --git a/html/changelogs/Batrachophreno-HrefClosures.yml b/html/changelogs/Batrachophreno-HrefClosures.yml new file mode 100644 index 00000000000..b428983176b --- /dev/null +++ b/html/changelogs/Batrachophreno-HrefClosures.yml @@ -0,0 +1,66 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: Batrachophrenoboocosmomachia + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixed unclosed hrefs; Integrated Circuits and Electronic Assembly UIs work again." + - bugfix: "Fixed unclosed hrefs; Exosuits 'being piloted by' text with link to pilot works again." + - bugfix: "Fixed unclosed hrefs; Show Held Item 'Take a closer look' text link works again." + - bugfix: "Fixed unclosed hrefs; additional clothing accessory Examine detail links work again." + - bugfix: "Fixed unclosed hrefs; AI/Borg ship alarm camera links work again." + - bugfix: "Fixed unclosed hrefs; borg/drone installed modules detail links works again." + - bugfix: "Fixed unclosed hrefs; various library computer links work again." + - bugfix: "Fixed unclosed hrefs; various pAI window links work again." + - bugfix: "Fixed unclosed hrefs; newscaster story comments work again."
TITLEAUTHORTITLECATEGORY