Sponsored Content
Top Forums Shell Programming and Scripting zsh, prompt, variable expansion, ANSI color sequences Post 302632839 by galanom on Tuesday 1st of May 2012 01:09:02 AM
Old 05-01-2012
zsh, prompt, variable expansion, ANSI color sequences

Hi!

I am using latest ZSH and I have setopt prompt_subst

I have a global hash array variable which contains some color definitions with color names as keys and 256-color ANSI codes (with %{ and %}) as values, eg %{\e[38;5;51m%}

If at function precmd() I set prompt as

Code:
PS1="$FG[red5] Hello World (%M) > "

or
Code:
PS1=$'$FG[red5] Hello World (%M) > '

then it becomes
Code:
\e[38;5;196m Hello World (localhost) >

As you see %{ and %} were removed, but ANSI code remained.

If I set
Code:
PS1=$(print -P "$FG[red5] Hello World (%M) > ")

then prompt appears as expected, but zsh does not calculate it's length correctly (it thinks that it's length is as if control sequences were printable), and tab completion transfers the command way further.

I think that a possible solution would be that the array did not include the %{ and %} and using something like %{$FG[red5]%} to set the color, but it's ugly.

I know there is built-in support for colors but it's only 16 color.

Any help please?
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to change prompt color when changing path

Hi all, Can you tell me how to change the prompt color (only the path part) when I chnange directory with "cd"? I use the sequence below in ".bashrc" (Solaris 8) to change my prompt colors and I'd like to modify it to change the path color when I cange directory. PSC() { echo -ne "\"; }... (0 Replies)
Discussion started by: majormark
0 Replies

2. Shell Programming and Scripting

tcsh/csh: set prompt in production to color red

Hi folks This is our prompt at the moment oracle@pinkipinki:/opt/oracle> grep 'set prompt' .cshrc set prompt = "$user@`uname -n`:$cwd> " We wish to have in production the same prompt, but red. Howto do that? I tried a lot a internet manuals, but it doesn't work. (1 Reply)
Discussion started by: slashdotweenie
1 Replies

3. Programming

why the implementatoin of Bakery algorithm in ANSI C does not work in ANSI C

I follow the description of wiki (Lamport's bakery algorithm - Wikipedia, the free encyclopedia), then implement that algorithm in C, but it doesn't work, Starving is still here, is the implementation worry? Only print out: Thread ID: 0 START! Thread ID: 0 END! Thread ID: 0 START!... (2 Replies)
Discussion started by: sehang
2 Replies

4. Shell Programming and Scripting

how to find the value of a variable in zsh?

I have a zsh script written by someone else, I am trying to modify it to work on slightly different data -problem is I know nothing about shell scripting. I am trying to muddle through this myself since I need to learn but can someone tell me how to debug a script? ie. I want to display the value... (6 Replies)
Discussion started by: cmp260
6 Replies

5. Programming

Does ansi c support variable-length array?

I successfully compiled code like below. #include<stdio.h> #include<string.h> int main() { int co = 9; char a; strcpy(a, "hahahah"); printf("co=%d\n", co); printf("a=%s\n", a); return 0; } (7 Replies)
Discussion started by: vistastar
7 Replies

6. Programming

Using ANSI color codes in gcc compiled program

I have put some yellow color codes and works well. I call the funstion using print_usage(stderr, 0); I would like to know if there is any way, to store the ansi color codes in variables and then call them inside fprintf. Or have a format followed by the strings I want to output. ... (5 Replies)
Discussion started by: kristinu
5 Replies

7. Shell Programming and Scripting

Color prompt with file numbers does not work anymore

I have used this color prompt on my servers for long time, in file ~\.bashrc Black="\" Dark="\" Blue="\" LBlue="\" Green="\" LGreen="\" Cyan="\" LCyan="\" Red="\" LRed="\" Purple="\" LPurple="\" Brown="\" Yellow="\" LGray="\" White="\" Reset="\" PS1="$Yellow\u@\h $LBlue\w... (4 Replies)
Discussion started by: Jotne
4 Replies
bitmap_mask_color(3alleg4)                                        Allegro manual                                        bitmap_mask_color(3alleg4)

NAME
bitmap_mask_color - Returns the mask color of the specified bitmap. Allegro game programming library. SYNOPSIS
#include <allegro.h> int bitmap_mask_color(BITMAP *bmp); DESCRIPTION
Returns the mask color for the specified bitmap (the value which is skipped when drawing sprites). For 256-color bitmaps this is zero, and for truecolor bitmaps it is bright pink (maximum red and blue, zero green). A frequent use of this function is to clear a bitmap with the mask color so you can later use this bitmap with masked_blit() or draw_sprite() after drawing other stuff on it. Example: /* Replace mask color with another color. */ for (y = 0; y h; y++) for (x = 0; x w; x++) if (getpixel(bmp, x, y) == bitmap_mask_color(bmp)) putpixel(bmp, x, y, another_color); SEE ALSO
MASK_COLOR_8(3alleg4), set_color_depth(3alleg4), bitmap_color_depth(3alleg4), ex3d(3alleg4), exmouse(3alleg4), expat(3alleg4) Allegro version 4.4.2 bitmap_mask_color(3alleg4)
All times are GMT -4. The time now is 08:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy