This commit adds support for deduplication of messages emitted by
PrintEdit(). It's a first pass, only supporting single-line messages and
ones no larger than 512 bytes.
It also fixes StringContains() to skip strings shorter than the search
substring, and emits a more sensible error on empty "output" value.
This commit replaces ClearCopyStringNoFormat() with
ClearCopyStringNoFormatOrTerminate(). All calls to that function
passed an implicitly 0-terminated string as the destination, meaning
that we don't need to 0-terminate them and, in not doing, we free up a
byte to store data.
It also deduplicates code as CopyBytes(), and does a little bounds
checking before actually trying to copy.
This commit adds support for configurably enabling closed captions by
default. Set the "default_cc_lang" in a config file, or "cc_lang" in the
[video] node of an .hmml file. Once set, videos which contain captions
for this langage will be initialised with these captions enabled.
New config setting:
default_cc_lang
New [video] node field:
cc_lang
This commit fixes ResizeFunction() to scroll back to the original Y
position, rather than the nexus (i.e. the grid or list), after resizing
the grid as a result of the window having been resized.
This is a hotfix made just to allow using a max-length "output" value.
Next commit should fix buffer overflows for all copies to implicitly
null-terminated destinations.
This commit makes the auto-derivation of name abbreviations code handle
quoted nicknames and lower-cased surname prefixes (e.g. du Pré). It also
upstreams the abbreviation to config parse time, and introduces config
fields in the person scope to allow overwriting the auto-derived ones.
Bug fixes:
• Fix null pointer dereference in InsertProjectIntoDB(), due to a
rogue WriteFromByteToPointer() call left in when removing the
_TopLevel() database modification functions in v0.10.14
• Fix config file locking by closing all config files on detecting
a config file change, even if we had no prior working config
• Increase IncludesSearch buffer size from 2 to 4KB
New config fields in the person scope:
• abbrev_initial
• abbrev_given_or_nickname
• abbrev_dotted_initial_and_surname
This commit aims to generalise database structures such that any block
may be traversed without the need for specific functions for each type.
Concretely, it replaces functions like SkipAsset() and SkipProject()
with a generic SkipHeaderedSectionRecursively(). The change also paves
the way for the plethora of new block types due in CINERA_DB_VERSION 6.
This commit aims to help Cinera instances coordinate themselves by
throwing an error upon being instructed to use a database or config
file currently in use by another instance.
• Renumber affected entries when inserting / deleting an entry of an
auto-numbered project
• Prohibit an entry from sharing an "output" with another entry
• Prohibit an entry's "output" from containing a slash
• Fix entry HTML deletion to use OutputLocation, not BaseFilename
New config options:
numbering_filename_prefix (string)
Defaults to $project
numbering_method
auto
filename_derived (default)
hmml_specified
numbering_start (number)
May be used to 0-index the set
numbering_unit (renamed from "unit")
numbering_zero_pad (boolean)
This commit also fixes the size of the "?" help button and category dots
when the wider site uses box-sizing: border-box
This is an unversioned interim commit with unfinalised code.
The threading code establishes job queues.
The code cleanup removes various _TopLevel functions pertaining to
database operations.
To use it, source the cinera_clear.js file at the position in the HTML
file to be obscured while further processing occurs. (Make sure not to
"defer" it.)
After processing is complete, call FlipClear()
• Fix segfault due to unconfigured role
• Add credit scope to the root scope's TypeSpec, permitting
credit = "$owner" { role = "host"; }
to be absorbed by all projects
• Make "unfound role" errors WaitForInput()
Features:
User-configurable roles and credits
Handle SIGINT to quit cleanly and avoid database corruption
Fixes:
Filesystem event monitoring handles directory creation / deletion
Fixed buffer overflow when trying to curl in a non-existent quote
The search page could auto-scroll to the top when the grid is not
displayed. This commit fixes that problem by ensuring that the grid
element has a width and height before seeking to auto-scroll to it.
Thanks to Leonardo Serafim Eid for the report
• Max{Height,Width}OfElement() should now produce saner values
• Video can now resize upon orientation change on mobile
• Search grid now sizes to the correct area
• CSS rule setting only tries to touch local stylesheets
• Video size may be based on the height if the width-based is too tall
• Auto-scrolling improvements:
• It now cannot oscillate
• It doesn't happen at all if scrolled to the very top / bottom
Thanks to @Freak_ on freenode for the report