Xcode + swift + Darwin.ncurses = "A_BOLD not found" compilation error. I can't get bright colors
Asked Answered
A

1

1

I'm creating a silly utility under XCode 10.2.1, with a swift + ncurses template. The compilation environment seems amazingly easy to setup:

1.- You import some Darwin.ncurses at the beginning of your main.swift file

2.- You start to invoke the typical ncurses primitives (to create some "color brushes")

3.- You addstrings to the ncurses canvas and your text appears happily rendered.

So far so good, but I need something more than the 8 dark colors my Darwin.ncurses apparently gives. I googled a bit and then I discovered I should emit the "A_BOLD" attribute to my "ncurses attribute manager"™ besides my color brush.

Ok then, that's what I did right before printing my texts, using variations of this instruction:

attron(A_BOLD) 

What happened next? Xcode complains (at compilation time) with a "I have no idea what's an A_BOLD".

Apparently all other people with doubts about ncurses complain about their terminals not being able to render bright/bold colors (as their terminals are normally configured wrongly for bright colors). But my terminal IS configured ok. My problem is at compilation time and I have not the slightest idea about what to do, and what to change to render pure white letters.

All other people seem to be able to compile their ncurses code using the (apparently standard) A_BOLD attribute, why can't I? Is there a different/better Darwin.ncurses alternative which I should use instead?

Thanks.

PS: Here I've added some code snippet so you can see how my code makes Xcode choke:

import Foundation
import Darwin.ncurses

initscr()
start_color()
noecho()    // Turn on noecho, though it doesn't matter in this example
curs_set(1) // 0 is invisible, 1 is visible, 2 is very visible

init_pair(1, Int16(COLOR_WHITE), Int16(COLOR_BLUE) )
init_pair(2, Int16(COLOR_WHITE), Int16(COLOR_GREEN) )


move(0, 0)    
attron(COLOR_PAIR(1))
addstr("text 1")
attroff(COLOR_PAIR(1))
// nice text appears on screen (with dark dull color palette)

move(2, 0)
attron(COLOR_PAIR(2))
addstr("text 2")
attroff(COLOR_PAIR(2))
// nice text appears below (with dark dull color palette also)

attron(A_BOLD)  //  <-- THIS line is the one complaining
addstr("text 3")
attroff(A_BOLD) //  <-- THIS line is also complaining

attron(COLOR_PAIR(2)|A_BOLD)  //  <-- THIS line is also complaining
addstr("text 4")
attroff(COLOR_PAIR(2)|A_BOLD) //  <-- THIS line is also complaining

refresh()    
Anette answered 22/5, 2019 at 15:15 Comment(0)
G
0

A less-than-ideal solution is to simply redefine everything, just like this SwiftNCurses wrapper has done.

Grandma answered 26/4 at 6:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.