Commit Graph

242 Commits (7fc761296f1609e39441059f2aedb2d546db5f00)

Author SHA1 Message Date
Marek Habersack 9ca8d9c9c6 Correctly cast `ncpp::Plane` to `ncplane*`
Fixes: https://github.com/dankamongmen/notcurses/issues/616

SIGSEGV was caused by an invalid cast.

Short explanation: PEBKAC

Long explanation: `Selector.hh`, `Plot.hh` and `MultiSelector.hh` did
not include `Plane.hh`, they merely declared `class Plane;` because
inclusion of `Plane.hh` would cause circular dependencies to appear and
the compiler would be unhappy.  On top of that, yours truly wrenched the
compiler's hands and caused it to believe that a pointer to `Plane` is
really a pointer to `ncplane*` which was quite a silly thing to do as
the compiler, not having included `Plane.hh` and thus not knowing full
definition of the type, wasn't able to look up the type cast operator in
`Plane`.

Don't abuse `reinterpret_cast`, kids!
4 years ago
nick black c08c9b7f7f
v1.4.3 4 years ago
nick black fc998510a0
CMake: only install static libs if built #625 4 years ago
nick black 00d63c0b69
add USE_STATIC option to CMake #625 4 years ago
nick black 7af027b895
ncpp unit tests: check get_instance exception #538 4 years ago
nick black 07e894c40c
v1.4.2.4 4 years ago
nick black c3bc4bb7f2
CMake: first stab at llvm-cov #620 4 years ago
nick black 32d3ae91c8
v1.4.2.3 4 years ago
nick black e132c6bb24
v1.4.2.2 4 years ago
nick black 49fb03655e
v1.4.2.1 4 years ago
nick black 38e67abd9d
v1.4.2 4 years ago
nick black 8b5b44cf36
v1.4.1 4 years ago
nick black 6a22040584
v1.4.0 4 years ago
nick black 76d29ac4cc
Export notcurses_LIBRARIES in CMake 4 years ago
nick black 261cfadf40
link math libraries into notcurses-demo #589 4 years ago
nick black d09f7c7899
CMake: check for qrcodegen/qrcodegen.h #572 4 years ago
nick black 20d0048838
CMake improvements/cleanup #565
Rather than inspecting CMAKE_BUILD_TYPE manually and setting
DEBUG_OPTIONS based off the results, set CMAKE_{C/CXX}_FLAGS_DEBUG,
and allow that to be picked up by CMake #565. Remove repeated -W
flags that were all over the place, making them global compiler
flags. Remove repeated FORTIFY=2 definition that was all over the
place, making it a global compiler definition. Remove all uses of
${DEBUG_FLAGS}. Also, since CMake doesn't define a CMAKE_BUILD_TYPE
by default, instead just setting neither debugging nor optimization
flags, in what seems a pretty fucking boneheaded move, set it by
default to RelWithDebInfo. ugh. Explicitly disuse unused PoC variables.
4 years ago
Marek Habersack e23d5baea4 [C++] Sync API changes
Added:

  * class FDPlane (`ncfdplane*`)
  * class Subproc (`ncsubproc*`)
  * NotCurses: get_inputready_fd (`notcurses_inputready_fd`)
  * Plane: qrcode (`ncplane_qrcode`)
  * class PlotBase: templated base class for Plot variations
  * class PlotU: `uint64_t` instantiation of PlotBase (aliased to previous
    `Plot` class for source compatibility), `ncuplot*`
  * class PlotD: `double` instantiation of PlotBase, `ncdplot*`
4 years ago
nick black 2f904449a7
drop -fkeep-inline-functions #543 4 years ago
nick black d4f71405d2
release-doc: remove unnecessary directive 4 years ago
nick black 05753bd91a
v1.3.3 4 years ago
nick black 7d1e3c77c8 oiio: image scaling #535, subimages for video #536 4 years ago
nick black 2c98639005
python: don't guard with DFSG_BUILD; we use USE_PYTHON 4 years ago
Nick Black 9a075ae5d0
Support image decoding with OpenImageIO #453 (#534)
* fedora: dep on OpenImageIO, and use it
* fedora: dep on libqrcodegen-devel
* fedora: BuildRequires OpenEXR-devel
* tight check on USE_MULTIMEDIA
* CMake: enable notcurses-view for ffmpeg OR oiio
* notcurses-view: don't reach into libav
* oiio: ncvisual_render() #453
* oiio: need our own properly-offset ncvisual_plane()
* `visual` poc: accept optional command line argument
* oiio: work for 3-channel images #453
* oiio: destroy ncvisual's plane if we own it #453
* notcurses_visual.3: s/FFmpeg/multimedia/g
4 years ago
nick black fe37d49c5d set soname on python module #530 4 years ago
nick black ecbd6ad54e
Get Python in-tree build working again 4 years ago
nick black 6ffbef3d74 cmake: openimageio discovery #453 4 years ago
nick black d81b3ef0cf start factoring out FFMpeg for OIIO plug #453 4 years ago
Nick Black 0e73b9d3d5
Floating-point ncplot, genericize ncplot (#531)
* compile ncplot as c++ generic #446
* add floating-point plots #446
4 years ago
nick black 04f90fa1ea
ncsubproc: launch processes, make pipes
link to LWN article in History section of README.md.
4 years ago
Nick Black fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
4 years ago
nick black 3a7e4139c4
Install Markdown files as documentation #512 4 years ago
nick black 1dad2c6b50
v1.3.2 4 years ago
nick black e00ef4aca9
prep for 1.3.1 4 years ago
nick black f644ed9e54
debian: notcursesI.osp #498 4 years ago
nick black 5880083022 CMake: don't install data/ .xcf files #498 4 years ago
nick black b4cf4f3a0d
CMake: supply -fkeep-inline-functions for notcurses 4 years ago
nick black 86e225dc4c prep for 1.3.0 #460 4 years ago
nick black 24a9343b0b
prep for 1.2.9 4 years ago
nick black 16fa94eb59
CMake: install python with USE_PYTHON #462 4 years ago
nick black 69b716f7f8 prep for 1.2.8 4 years ago
Nick Black 516b561d2a cmake: unify header installation #465 4 years ago
nick black 50b82648fc
CMakeLists.txt: note nckeys.h as PUBLIC_HEADER 4 years ago
nick black 89809d5b59 prep for 1.2.7 4 years ago
nick black 6d366380ed prep for 1.2.6 4 years ago
nick black cb7e844db1 unify notcurses-input+notcurses-keyplot #455 4 years ago
nick black c717673458 drop keyplot man page/cmake #455 4 years ago
Nick Black d66549d362
Prep for Fedora packaging (#452)
* jungle demo should be available outside of DFSG builds
* libav: blitters don't need FFMpeg
* CMake: threads independent of ffmpeg
* CMake: add USE_TESTS option to disable tests #450
* tetris: work without ffmpeg
* fedora: flesh out specfile #328
* menu poc: don't use ffmpeg at all
* compile PoCs with binary/include
* multiselect PoC: work without ffmpeg
4 years ago
nick black fffc1ee850
Extract colloquy; it's gone to its new home #320 4 years ago
nick black df3dc6b5bc
prep for 1.2.5 4 years ago
nick black dfd54f540a keyplot: ticker thead so we needn't provide input 4 years ago
nick black 24ac23e405 rust: don't use --locked 4 years ago
nick black 5e27499194 add notcurses-keyplot #430 4 years ago
nick black 7c6b655483 v1.2.4 4 years ago
Nick Black 52bdbc6724
ncplane_translate() accept NULL dest as standard plane #408 (#411)
* tetris man page
* tetris basic skeleton
* tetris: Ticker()
* README: fix up some obsolete terminology
* tetris: draw the game board
* tetris: add NewPiece()
* tetris: draw tetriminos
* tetris: check for stuck piece, move it down
* Accept NULL dst in ncplane_translate() #408
4 years ago
nick black 78fadafb8f notcurses++ needs PUBLIC notcurses linkage 4 years ago
Marek Habersack 3e78dd7d1f [C++] API sync
New classes:

   * MultiSelector (`ncmultiselector_*`)

Added:

   * Direct: cursor_{enable,disable}
   * Plane: high_gradient (`ncplane_highgradient`)
   * Plane: high_gradient_sized (`ncplane_highgradient_sized`)
   * Plane: rotate_cw (`ncplane_rotate_cw`)
   * Plane: rotate_ccw (`ncplane_rotate_ccw`)

Updated:

   * NotCurses: added all the margin initializers to the default options
4 years ago
nick black ac683e21d2
v1.2.3 4 years ago
nick black e72111ac8b
v1.2.2 4 years ago
nick black 3483f019e3
NOTCURSES_SHARE: purely a C thing now #363 4 years ago
nick black 93c8860c13
Install to CMAKE_INSTALL_DATADIR, though #363 4 years ago
nick black e070c73f63
Allow NOTCURSES_SHARE to be specified #363 4 years ago
nick black bd015434e6
CMake: provide --locked --release 4 years ago
nick black 8e2e1d26b8
python: final fix for arch packaging #357 4 years ago
nick black adfbedf3ef
python: prep to install with DESTDIR 4 years ago
nick black 447ca1f3b9
unlock the python build secret #357 4 years ago
nick black 33b8ad0518
Don't build doxygen by default 4 years ago
nick black 1c05fdb013
python: --single-version-externally-managed 4 years ago
nick black 83e73fb429
install notcurses-pydemo #359 4 years ago
Nick Black e5d6685c92
No locks, more lox #290 (#358)
* README/CMake: only require doctest 2.3.5

* man pages: remove talk of locking #290

* Remove locking from notcurses core #290

* Purge locking from notcurses core #290
4 years ago
nick black 887d4f1f79
switch subtitles to HIGHCONTRAST, big improvement! =D 4 years ago
nick black 4bea8048d4
CMake/Rust: hack in the full rust build #101 4 years ago
nick black b2210f0cf9
Rust: build libnotcurses-sys from CMake #320 4 years ago
Nick Black e6637e81cc
Prep for serious rusting #101 (#354)
* CMake: add USE_PANDOC, USE_DOXYGEN options #101
* README: mention rust
* start integrating rust into build #101
* CMake: add USE_NETWORK option for cargo
* Debian: build-dep on doxygen
* rust: colloquy checks in Cargo.lock
* extract NCKEY defines into their own include
* colloquy: use clap to parse CLI args
* CMake: unify option namespace
* Python: update include path
* Rust: fix up --frozen workings for -DUSE_NETWORK=off
* CMake: abstract out colloquy a little
* Sync direct.hh to the New Way
4 years ago
nick black 2dc103f447 update primary versions to 1.2.1 for new cycle 4 years ago
nick black 2b08c53075 prep for 1.2.0 4 years ago
nick black 39d5063518
Yank out our copy of doctest, use system copy 4 years ago
Marek Habersack fc264677f5 Sync C++ wrapper with the latest API changes
New classes:

 * Direct (`ncdirect_*`)
 * Menu (`ncmenu_*`)
 * Selector (`ncselector_*`)

Updates:

 * Plane: added copy constructors (mapped to `ncplane_dup`)
 * Plane: added `perimeter` (`ncplane_perimeter`)
 * Plane: added `polyfill` (`ncplane_polyfill`)
 * Plane: added `blit_bgrx` (`ncblit_bgrx`)
 * Plane: added `blit_rgba` (`ncblit_rgba`)
4 years ago
nick black 887726b0d9 Debian: move all symbols/history to 1.1.8 5 years ago
nick black cda600a4aa :/ 5 years ago
nick black b8adfe1a39 Debian/python: make module runnable #335 5 years ago
nick black acbff55994 so deeply sick of python packaging woes #335 5 years ago
nick black 1626c9f9ab
cmake: use pkg-config static results for static lib #330 5 years ago
nick black 53df21b977
python: run sdist in build process 5 years ago
nick black a05e54ca7e CMake: remove deb logic #326 5 years ago
nick black 43e6d6577d
debian: python woes 5 years ago
nick black 3aa969f2a7 CMake: build static library #330 5 years ago
nick black c82cb66fab
CMake: install notcurses-tester 5 years ago
nick black c690e2db27 cmake: fix up avutil includes 5 years ago
nick black e6c024216a
Debian: drop versioned dep on g++ 5 years ago
nick black 8256b2331e
CMake: explicitly pull in avutil 5 years ago
nick black 4c334aaf2b
CMake: explicitly link in avcodec 5 years ago
nick black 74775b97ec
enmetric->ncmetric #324 5 years ago
nick black c519c95fff
panelreel -> ncreel #324 5 years ago
nick black b284901d18
prep for 1.1.6 5 years ago
nick black 116453bfec notcurses-demo(1): add note about DFSG build #316 5 years ago
nick black ab3a91c5d0
python for ncdirect 5 years ago
nick black 0271ba5abf python: fix debuild when no notcurses is present 5 years ago
nick black aea6cdab08
CMake: isometrize data for testing 5 years ago
nick black 31a07dab33
menu: extend across width of screen #179 5 years ago