-
-
Notifications
You must be signed in to change notification settings - Fork 112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fixing stylemask related functions parameter & return type #2200
Comments
whooooooa there homie; why are you exporting anything from |
not exporting that, just diving into the rabbit hole from the public api to see the root of the declared types... I wasn't sure whether just casting to u16 was enough. Is what I actually did in the commits ok? |
Is what I actually did in the commits ok?
no. you've broken ABI compatibility, i believe.
a program already compiled against notcurses will be expected an
unsigned to be returned. without a recompile, it will handle the
new, likely smaller return value improperly.
also, whenever you change public function signatures, they need
be updated in the USAGE.md and man pages in doc/man/man3.
|
I'm sorry, I've reverted the changes. |
no problem, man, thanks! |
Would you like to leave this open to tackle this somewhen in the future? |
I've gone ahead and added this to #1777, where I'm listing all the things to change upon movement to ABI3. I'l go ahead and close this one up. In the meantime, you may assume that no values greater than 0xffff will be returned from these functions. |
* [heuristics] GNU screen 4x never has rgb * [BitmapSmoothMove] only WARN in test until sixel supports this #2258 * add minimal example for #2266 * contour: enable sextants * interp PoC: clean up ncvisual #2266 * ncselector_options: constify string arguments * Constify strings in selector/mselector_items Use internal types to track items within the selector/mselector widgets, rather than pressing the user-provided item structs into double-duty. With this change, we can constify the strings within those user-provided items. Do so, also removing the internal-side elements. Update documentation. Closes #2267. * constify ncmenu_item/_section strings * Use Windows pipes for input readiness notification (#2263) * [windows] use CreatePipe for input #2244 * [input] read and write to Windows readiness handles #2244 * inputready_fd: not on windows, alas * for now, if it's on windows, it's windows terminal #2248 * tabbed janitorial work clean up memory leak of tab names ignore NCTYPE_RELEASE in tabbed PoC constify strings in nctabbed_options * notcurses-demo FPS graph: back to straight seconds * [info] expand some emoji into proper literals * drop textplay PoC * remove poc for issue #2266 * constify ncselector_item reference fix #2270 * [ncplayer] restore pause functionality with NCTYPE_RELEASE * stop pushing termtype to interrogate_terminfo * menu PoC: ignore NCTYPE_RELEASE * properly name Windows Terminal * [windows] HANDLE, not PHANDLE * ncvisual_render -> ncvisual_blit (core/test) #1462 * ncvisual_render -> ncvisual_blit (docs) * ncvisual_render -> ncvisual_blit (nctetris) * [keller] fix up for ncvisual_blit() #1462 * stacking tests: ncvisual_render() -> ncvisual_blit() #1462 * all PoCs: ncvisual_render -> ncvisual_blit #1462 * restore ncvisual_inflate(), for now * pixel PoC / ncneofetch -> ncvisual_blit() #1462 * notcurses-info: ncvisual_blit, inline all emoji #1462 * rotate PoCpp: ncvisual_blit() #1462 * xray/grid: ncvisual_blit() #1462 * remove last instances of ncvisual_render() #1462 * remove old-style notcurses_ rendering functions Make notcurses_render() a static inline wrapper around ncpile_render(). Remove the deprecated notcurses_render_to_file() and ncpile_render_to_file(). ABI3 work #1777. * ncstrwidth() becomes static inline wrapper #1777 * remove deprecated ncvisual_subtitle() * kill ncvisual_inflate(), long deprecated #1777 * remove deprecated palette256 wrappers #1777 * kill ncplane_new() #1777 * remove deprecated renderfp field from notcurses_options #1777 * reorder ncstats fields to match documentation #1777 * kill deprecated style functions #1777 * ncplane_move{top, bottom} become static inline #1777 * fix up move_above()/move_below() #1777 * ncplane_pixelgeom -> ncplane_pixel_geom() #1777 * ncstyle functions ought return uint16_t #1777 #2200 * ncvisualplane_create: provide new pile functionality #1462 * introduce ncvisual_blit() #1462 * reduce ncvisual_render() to wrapper around ncvisual_blit() #1462 * convert most ncvisual_render()s to ncvisual_blit() #1642 Co-authored-by: joseLuís <joseluis@andamira.net>
Long-planned changes for API/ABI3 #1777 * remove old-style notcurses_ rendering functions * Make notcurses_render() a static inline wrapper around ncpile_render(). Remove the deprecated notcurses_render_to_file() and ncpile_render_to_file(). * ncstrwidth() becomes static inline wrapper #1777 * remove deprecated ncvisual_subtitle() * kill ncvisual_inflate(), long deprecated #1777 * remove deprecated palette256 wrappers #1777 * kill ncplane_new() #1777 * remove deprecated renderfp field from notcurses_options #1777 * reorder ncstats fields to match documentation #1777 * kill deprecated style functions #1777 * ncplane_move{top, bottom} become static inline #1777 ** ncplane_pixelgeom -> ncplane_pixel_geom() #1777 * ncstyle functions ought return uint16_t #1777 #2200 * ncvisualplane_create: provide new pile functionality #1462 * [heuristics] GNU screen 4x never has rgb * [BitmapSmoothMove] only WARN in test until sixel supports this #2258 * contour: enable sextants * interp PoC: clean up ncvisual #2266 * ncselector_options: constify string arguments * Constify strings in selector/mselector_items Use internal types to track items within the selector/mselector widgets, rather than pressing the user-provided item structs into double-duty. With this change, we can constify the strings within those user-provided items. Do so, also removing the internal-side elements. Update documentation. Closes #2267. * constify ncmenu_item/_section strings * constify strings in nctabbed_options * notcurses-demo FPS graph: back to straight seconds * remove unused wchar_from_utf8() * nstrwidth_valid(): properly initialize bytes/width * [ncneofetch] use GetSystemInfo on Windows
I started fixing
ncdirect_styles
parameter to be const, like the analogousncplane_styles
function, but then I've found more related things I could fix a little. So I changed the return type touint16_t
for the public API functions that return a stylemask. Those arenccell_styles
,ncdirect_styles
,ncdirect_supported_styles
andnotcurses_supported_styles
.What I've not dared to change are the private
unsigned supported_styles
field from thetinfo
structure in thetermdesc.h
file, nor theterm_supported_styles
return type, but maybe they ought to be updated too.The text was updated successfully, but these errors were encountered: