1. 24 Jun, 2020 3 commits
    • Matt Mascarenhas's avatar
      6eeb588a
    • Matt Mascarenhas's avatar
      b3470e0f
    • Matt Mascarenhas's avatar
      cinera.c: Sanitise Memory · 27486878
      Matt Mascarenhas authored
      Fixes / Improvements:
      
      •   Switch all growable arrays to use memory_book, rather than realloc()
      •   Lift a bunch of hardcoded string lengths and item counts
      •   malloc() the MemoryArena rather than calloc(), thus saving 3 MiB
      •   Reorganise HMMLToBuffers() to return from one place, the end
      •   Print indexing errors in the same style as config errors / warnings
      
      Diagnoses:
      
      •   Identified sources of "non-freed" memory usage and marked them +MEM.
          This may aid future work on further reducing memory / cycle usage.
      
      New config settings:
      
      •   suppress_prompts boolean
      27486878
  2. 03 Jun, 2020 1 commit
  3. 30 May, 2020 1 commit
    • Matt Mascarenhas's avatar
      cinera.c: Fix segfault and event handling · 0959fa27
      Matt Mascarenhas authored
      • Segfault was due to a read access violation on an unset entry pointer,
        which in turn was due to stale neighbourhood data. To fix it we simply
        reset the neighbourhood when starting to delete an entry. Additionally
        we now check that those entry pointers are set before accessing them.
      
      • Event handling of the trio of events triggered when vim saves a file.
        We now read in a second set of events while processing the first if we
        were on the verge of processing a deletion. If we get any more events,
        we continue to squash those ones if possible, to always end up having
        seen the entire trio of events associated with a file save, and then
        process it as an insertion / reinsertion, not a deletion.
      
      • Sort the asset landmarks by their offset.
      
      • Change GenerateTopicColours() to initially open cinera_topics.css as
        "r" to search it for the incoming topic, and only if that topic is
        absent reopen it as "a+", thus triggering an IN_CLOSE_WRITE event.
      0959fa27
  4. 24 May, 2020 2 commits
  5. 17 May, 2020 3 commits
    • Matt Mascarenhas's avatar
      Fix the 3-way filter associating · 8aa67a38
      Matt Mascarenhas authored
      Add the data-searchLocation attribute to the search results
      8aa67a38
    • Matt Mascarenhas's avatar
      Prevent file clashes · ce9a0e76
      Matt Mascarenhas authored
      Config parsing now errors-out when it detects clashes between:
          base_dir and search_location, and global_search_dir
          base_dir and player_location
      
      This prevents us from generating search / project pages of multiple
      projects (incl. global_search_dir) at the same location, which would
      screw up the asset landmarks.
      ce9a0e76
    • Matt Mascarenhas's avatar
      Fix global search page generation and filter · 877dbab5
      Matt Mascarenhas authored
      This change makes GenerateGlobalSearchPage() pass the Config to
      BuffersToHTML(), which in turn passes it on to GenerateNavigation(),
      thus preventing a null-pointer deference when setting the Theme.
      
      It also fixes the filter by using all three of baseURL, searchLocation
      and playerLocation to associate the filter and index elements.
      877dbab5
  6. 16 May, 2020 1 commit
    • Matt Mascarenhas's avatar
      Fix search_ and player_location related bugs · 9dfdc117
      Matt Mascarenhas authored
      On the search pages use the search_location and player_location, in
      addition to the base_url, to associate filter and index entries, such
      that the filter actually works.
      
      Fix the .index file location for projects with a search_location. As
      this is now consistent, we happen to fix a crash that happened when
      changing the search_location.
      
      New config option:
      
          deny_bespoke_templates
               Indexers may use the "template" attribute in the video node of
               an .hmml file to set a bespoke template for that entry,
               superseding any configured player_template. Setting
               "deny_bespoke_templates" to true prevents this.
      9dfdc117
  7. 14 May, 2020 1 commit
    • Matt Mascarenhas's avatar
      cinera.c: Memorable Templates · e2ea8fda
      Matt Mascarenhas authored
      • Pack all templates before sync'ing the projects
      • Delay generation of navigation bars until BuffersToHTML(), and free them
        when switching projects
      • Change many variably-lengthed items to use memory_book
      • Do not push on multiple support scopes with the same ID
      • Prevent crash when trying to snipe an asset checksum into an HTML file
        we were never permitted to create
      • Reorganise ReadFileIntoBuffer() and related functions into cinera.c
      
      New Template Tags:
      
          __CINERA_GLOBAL_NAV__
      e2ea8fda
  8. 10 May, 2020 4 commits
  9. 09 May, 2020 4 commits
    • Matt Mascarenhas's avatar
      3728c8aa
    • Matt Mascarenhas's avatar
      cinera.c: Bump the patch version · bd8c6b80
      Matt Mascarenhas authored
      bd8c6b80
    • Matt Mascarenhas's avatar
      c883bbb9
    • Matt Mascarenhas's avatar
      cinera.c: Config · 05518781
      Matt Mascarenhas authored
      Database version 5
      
      Major features:
          Config file parsing
          Multiple projects per instance
          Searching across multiple projects
          Art sprites, usable by project, medium and support
      
      Minor features:
          The search results are now sortable
          Optimised the search page sorting
      
      Fixes:
          More reliable file system monitoring
          Well-formed templates are now valid, even with the absence of assets
          Correctly resove ~ in paths
          Gracefully handle the lack of an internet connection
          Renamed "annotator" to "indexer"
          Removed PlayerURLPrefix, in favour of .hmml "output" parameter
      
      Replaced the flags collection with:
          -0 Dry-run mode
          -c Set the config file path
          -e Examine the database
          -v Print version
          -h Print help
      
      New template tags:
          __CINERA_NAV__ dropdown
          __CINERA_NAV__ horizontal
          __CINERA_NAV__ plain
          __CINERA_PROJECT_PLAIN__
      
      Deleted template tags:
          __CINERA_MENUS__
          __CINERA_SCRIPT__
      05518781
  10. 07 Mar, 2019 1 commit
  11. 03 Mar, 2019 2 commits
  12. 02 Mar, 2019 2 commits
  13. 05 Feb, 2019 1 commit
  14. 26 Oct, 2018 1 commit
  15. 05 Oct, 2018 1 commit
  16. 19 Sep, 2018 3 commits
  17. 17 Sep, 2018 1 commit
    • Matt Mascarenhas's avatar
      cinera.c: Revved resources · 3da53413
      Matt Mascarenhas authored
      Database version 4
      
      Revving resources involves hashing asset files and appending a query
      string to their URLs. Additionally we monitor asset files for changes
      and edit their new checksum hash into all HTML files citing them.
      
      This commit also introduces new template tags for assets (listed below)
      with which you may instruct Cinera to rev assets of your choice. There
      is further information about this in the help (-h) and the README.md
      
      Amongst other minor changes, we now support unset $XDG_CACHE_HOME and
      $HOME
          - Thanks to insofaras for wordexp()
      
      New flags:
          -Q Set query string
      
      New template tags:
          __CINERA_ASSET__
          __CINERA_CSS__
          __CINERA_IMAGE__
          __CINERA_JS__
      
      Renamed template tag:
          __CINERA_SEARCH__ (was __CINERA_INDEX__)
      3da53413
  18. 09 Aug, 2018 2 commits
  19. 15 Jul, 2018 1 commit
  20. 05 Jul, 2018 1 commit
  21. 03 Jul, 2018 1 commit
  22. 02 Jul, 2018 1 commit
  23. 23 Jun, 2018 2 commits