I looked at the code, and PhotoStructure (and ExifTool) are actually behaving properly: some software (I believe Windows Explorer and others) incorrectly encodes keyword lists using a comma, which is why I had to add those separators in the first place.
PhotoStructure v1.1.0 didn’t support “empty” values for settings, so setting
keywordDelimiters="" would be ignored. I’ve fixed this in v2.0.0-alpha.1, and updated the settings documentation.
# | keywordDelimiters |
# PhotoStructure splits apart keywords, by default, when they are delimited by
# a comma or semicolon. For example, "car, blue, tree" will be interpreted as
# having the keywords "car", "blue", and "tree".
# Note that some software doesn't encode lists of keywords properly, so we
# have to include the comma and semicolon by default to handle these cases:
# but this makes keywords that contain a comma be split incorrectly. If the
# files in your library don't have this encoding issue, you can replace this
# setting with just an empty string to disable splitting.
# for more discussion.
# After changing this value, you must force-resync your library for the
# changes to take affect.
(Updated 2021-09-11 to support empty values: the prior solution using
-sep caused parsing issues elsewhere, and this solution is less surprising)