From 1ae6da36780981a2cee6208b34ff89bc3559f5ef Mon Sep 17 00:00:00 2001 From: Luca Conte Date: Mon, 12 Aug 2024 00:20:02 +0000 Subject: [PATCH] add different color if git branch is clean, change getcwd to getenv(pwd) --- main.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 8943ac5..173d344 100644 --- a/main.c +++ b/main.c @@ -46,7 +46,11 @@ int bgUserOther = C_L_YELLOW; int bgHost = C_L_CYAN; int bgUser; -int bgBranch = C_L_GRAY; + +int bgBranchClean = C_L_GRAY; +int bgBranchNotClean = C_D_GRAY; + +int bgBranch; int bgEnd = C_CYAN; int bgFolder[] = { C_WHITE, C_CYAN }; int numFolderColors = 2; @@ -70,8 +74,7 @@ void seperate(int col1, int col2) { } int main(void) { - char path_buf[1024]; - getcwd(path_buf, sizeof(path_buf)); + char* path_buf = getenv("PWD"); char hostname_buf[1024]; gethostname(hostname_buf, sizeof(hostname_buf)); @@ -87,6 +90,17 @@ int main(void) { if (fgets(branch, sizeof(branch), fp) == NULL) branch[0] = 0x00; fclose(fp); + int changes = 1; + if (strlen(branch) > 0) { + fp = popen("/usr/bin/git status --porcelain 2>/dev/null", "r"); + if (fp == NULL) exit(1); + char dummy[2]; + if (fgets(dummy, 2, fp) == NULL) { + changes = 0; + } + fclose(fp); + + } uid_t uid = getuid(); if (uid == 0) { @@ -142,6 +156,11 @@ int main(void) { if (strlen(branch) > 0) { + if (changes == 0) { + bgBranch = bgBranchClean; + } else { + bgBranch = bgBranchNotClean; + } bgcol(bgBranch); wprintf(L" "); printGlyph(BRANCH); @@ -150,6 +169,7 @@ int main(void) { if (branch[i] == '\n') break; wprintf(L"%c", branch[i]); } + wprintf(L" "); seperate(bgBranch, bgEnd); } bgcol(bgEnd);