From: "Sven Eden" <sven.eden@gmx.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/ufed:master commit in: /
Date: Wed, 23 Jan 2013 14:44:29 +0000 (UTC) [thread overview]
Message-ID: <1358952314.7d480726bfedba69db50d761f669829414fba53c.yamakuzure@gentoo> (raw)
commit: 7d480726bfedba69db50d761f669829414fba53c
Author: Sven Eden <sven.eden <AT> gmx <DOT> de>
AuthorDate: Wed Jan 23 14:45:14 2013 +0000
Commit: Sven Eden <sven.eden <AT> gmx <DOT> de>
CommitDate: Wed Jan 23 14:45:14 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/ufed.git;a=commit;h=7d480726
Change layout to have both the flag setting origin (make.defaults/make.conf) and the flag description scope (global, local, masked, installed) in separate columns.
---
ufed-curses-checklist.c | 116 +++++++++++++++++++++++++----------------------
ufed-curses.c | 18 +++++++
2 files changed, 80 insertions(+), 54 deletions(-)
diff --git a/ufed-curses-checklist.c b/ufed-curses-checklist.c
index f2cfcaf..c483d32 100644
--- a/ufed-curses-checklist.c
+++ b/ufed-curses-checklist.c
@@ -131,7 +131,7 @@ static void read_flags(void) {
line = getline(input);
if(NULL == line)
break;
- if(sscanf(line, "%n%*s%n %n%*s%n %n(%*[ +-])%n %d",
+ if(sscanf(line, "%n%*s%n %n%*s%n (%n%*[ +-]%n) %d",
&name.start, &name.end,
&on.start, &on.end,
&state.start, &state.end,
@@ -160,8 +160,13 @@ static void read_flags(void) {
flag->item.listline = lineNum;
flag->item.currline = 0;
- if(name.end - name.start + 11 > minwidth)
- minwidth = name.end - name.start + 11;
+ /* The minimum width of the left side display is:
+ * Space + Selection + Space + name + Space + Mask brackets.
+ * = 1 + 3 + 1 + strlen(name) + 1 + 2
+ * = strlen(name) + 8
+ */
+ if(name.end - name.start + 8 > minwidth)
+ minwidth = name.end - name.start + 8;
strncpy(flag->name, &line[name.start], name.end - name.start);
/* check and save current flag setting from configuration */
@@ -176,9 +181,9 @@ static void read_flags(void) {
ERROR_EXIT(-1, "flag->on can not be determined with \"%s\"\n", &line[on.start]);
/* check and set flag state */
- if(state.end - state.start != 4)
- ERROR_EXIT(-1, "state length is %d (must be 4)\n", state.end - state.start);
- strncpy(flag->state, &line[state.start], 4);
+ if(state.end - state.start != 2)
+ ERROR_EXIT(-1, "state length is %d (must be 2)\n", state.end - state.start);
+ strncpy(flag->state, &line[state.start], 2);
/* check and set flag item height */
flag->item.ndescr = ndescr;
@@ -252,7 +257,7 @@ static void read_flags(void) {
ERROR_EXIT(-1, "Flag %s has no description at line %d\n", flag->name, i);
// Note new max length if this line is longest:
- size_t fullWidth = 1 + strlen(flag->descr[i]) + (flag->pkgs[i] ? strlen(flag->pkgs[i] + 3) : 0);
+ size_t fullWidth = 1 + strlen(flag->descr[i]) + (flag->pkgs[i] ? strlen(flag->pkgs[i]) + 3 : 0);
if (fullWidth > maxDescWidth)
maxDescWidth = fullWidth;
@@ -339,23 +344,22 @@ static int drawflag(struct item *item, bool highlight) {
return 0;
}
- wmove(win(List), line, 0);
+ memset(buf, 0, sizeof(char) * (wWidth(List)+1));
/* print the selection, name and state of the flag */
- sprintf(buf, " %c%c%c %s%s%s%-*s %-4.4s ",
+ sprintf(buf, " %c%c%c %s%s%s%-*s ",
/* State of selection */
flag->on == ' ' ? '(' : '[',
flag->on == ' '
- ? flags->on == ' '
- ? flag->state[1] : ' '
+ ? flag->on == ' '
+ ? flag->state[0] : ' '
: flag->on,
flag->on == ' ' ? ')' : ']',
/* name */
flag->item.isMasked ? "(" : "", flag->name, flag->item.isMasked ? ")" : "",
/* distance */
- (int)(minwidth - (flag->item.isMasked ? 13 : 11) - strlen(flag->name)), "",
- /* current selection state */
- flag->state);
+ (int)(minwidth - (flag->item.isMasked ? 4 : 6) - strlen(flag->name)), " ");
+ // At this point buf is filled up to minwidth
/* print descriptions according to filters
* TODO: Implement installed/all filters
@@ -373,12 +377,11 @@ static int drawflag(struct item *item, bool highlight) {
break;
// Display flag state
- bool hasScope = flag->item.isGlobal && !flag->pkgs[idx] ? false : true;
- if (hasScope) {
- sprintf(buf + minwidth, " %c%c ",
- flag->item.isMasked ? 'M' : 'L',
- flag->isInstalled[idx] ? '*' : ' ');
- }
+ bool isGlobalDesc = flag->item.isGlobal && !flag->pkgs[idx] ? true : false;
+ sprintf(buf + minwidth, " %s %c%c ",
+ flag->state,
+ isGlobalDesc ? ' ' : flag->item.isMasked ? 'M' : 'L',
+ flag->isInstalled[idx] ? '*' : ' ');
// Assemble description line:
memset(desc, 0, maxDescWidth * sizeof(char));
@@ -392,9 +395,9 @@ static int drawflag(struct item *item, bool highlight) {
sprintf(desc, "%s", flag->descr[idx]);
// Now display the description line according to its horizontal position
- sprintf(buf + minwidth + (hasScope ? 5 : 0), "%-*.*s",
- wWidth(List)-minwidth - (hasScope ? 5 : 0),
- wWidth(List)-minwidth - (hasScope ? 5 : 0),
+ sprintf(buf + minwidth + 8, "%-*.*s",
+ wWidth(List)-minwidth - 8,
+ wWidth(List)-minwidth - 8,
strlen(desc) > (size_t)descriptionleft
? &desc[descriptionleft]
: "");
@@ -407,11 +410,9 @@ static int drawflag(struct item *item, bool highlight) {
// Finally put the line on the screen
mvwaddstr(win(List), line, 0, buf);
- // waddstr(win(List), buf);
- if (hasScope) {
- mvwaddch(win(List), line, minwidth, ACS_VLINE);
- mvwaddch(win(List), line, minwidth + 3, ACS_VLINE);
- }
+ mvwaddch(win(List), line, minwidth, ACS_VLINE); // Before state
+ mvwaddch(win(List), line, minwidth + 3, ACS_VLINE); // Between state and scope
+ mvwaddch(win(List), line, minwidth + 6, ACS_VLINE); // After scope
++line;
++idx;
++usedY;
@@ -439,6 +440,9 @@ static int callback(struct item **currentitem, int key) {
*fayt = '\0';
wattrset(win(Input), COLOR_PAIR(3));
mvwhline(win(Input), 0, 0, ' ', wWidth(Input));
+ mvwaddch(win(Input), 0, minwidth, ACS_VLINE); // Before state
+ mvwaddch(win(Input), 0, minwidth + 3, ACS_VLINE); // Between state and scope
+ mvwaddch(win(Input), 0, minwidth + 6, ACS_VLINE); // After scope
wrefresh(win(Input));
}
if(descriptionleft!=0 && key!=KEY_LEFT && key!=KEY_RIGHT) {
@@ -529,20 +533,22 @@ static int callback(struct item **currentitem, int key) {
return 1;
break;
case ' ': {
- // do not toggle masked flags using the keyboard
- if ((*currentitem)->isMasked)
- break;
- // Not masked? Then cycle through the states.
- switch (((struct flag *) *currentitem)->on) {
- case '+':
- ((struct flag *) *currentitem)->on = '-';
- break;
- case '-':
+ // Masked flags can be turned off, nothing else
+ if ( (*currentitem)->isMasked
+ && (' ' != ((struct flag *) *currentitem)->on) )
((struct flag *) *currentitem)->on = ' ';
- break;
- default:
- ((struct flag *) *currentitem)->on = '+';
- break;
+ else {
+ switch (((struct flag *) *currentitem)->on) {
+ case '+':
+ ((struct flag *) *currentitem)->on = '-';
+ break;
+ case '-':
+ ((struct flag *) *currentitem)->on = ' ';
+ break;
+ default:
+ ((struct flag *) *currentitem)->on = '+';
+ break;
+ }
}
if (*currentitem != &flags->item) {
drawflag(*currentitem, TRUE);
@@ -568,20 +574,22 @@ static int callback(struct item **currentitem, int key) {
break;
#ifdef NCURSES_MOUSE_VERSION
case KEY_MOUSE:
- // do not toggle masked flags using the double click
- if ((*currentitem)->isMasked)
- break;
- // Not masked? Then cycle through the states.
- switch (((struct flag *) *currentitem)->on) {
- case '+':
- ((struct flag *) *currentitem)->on = '-';
- break;
- case '-':
+ // Masked flags can be turned off, nothing else
+ if ( (*currentitem)->isMasked
+ && (' ' != ((struct flag *) *currentitem)->on) )
((struct flag *) *currentitem)->on = ' ';
- break;
- default:
- ((struct flag *) *currentitem)->on = '+';
- break;
+ else {
+ switch (((struct flag *) *currentitem)->on) {
+ case '+':
+ ((struct flag *) *currentitem)->on = '-';
+ break;
+ case '-':
+ ((struct flag *) *currentitem)->on = ' ';
+ break;
+ default:
+ ((struct flag *) *currentitem)->on = '+';
+ break;
+ }
}
if (*currentitem != &flags->item) {
drawflag(*currentitem, TRUE);
diff --git a/ufed-curses.c b/ufed-curses.c
index 0f5e94e..e4934ae 100644
--- a/ufed-curses.c
+++ b/ufed-curses.c
@@ -252,6 +252,9 @@ void draw() {
waddch(w, ' ');
waddch(w, ACS_ULCORNER);
whline(w, ACS_HLINE, wWidth(Top)-6);
+ mvwaddch(w, 4, minwidth + 3, ACS_TTEE); // Before state
+ mvwaddch(w, 4, minwidth + 6, ACS_TTEE); // Between state and scope
+ mvwaddch(w, 4, minwidth + 9, ACS_TTEE); // After scope
mvwaddch(w, 4, wWidth(Top)-3, ACS_URCORNER);
waddch(w, ' ');
wattrset(w, COLOR_PAIR(2) | A_BOLD);
@@ -281,6 +284,9 @@ void draw() {
waddch(w, ' ');
waddch(w, ACS_LLCORNER);
whline(w, ACS_HLINE, wWidth(Bottom)-6);
+ mvwaddch(w, 0, minwidth + 3, ACS_BTEE); // Before state
+ mvwaddch(w, 0, minwidth + 6, ACS_BTEE); // Between state and scope
+ mvwaddch(w, 0, minwidth + 9, ACS_BTEE); // After scope
mvwaddch(w, 0, wWidth(Bottom)-3, ACS_LRCORNER);
waddch(w, ' ');
wattrset(w, COLOR_PAIR(2) | A_BOLD);
@@ -330,6 +336,9 @@ void draw() {
w = win(Input);
wattrset(w, COLOR_PAIR(3));
mvwhline(w, 0, 0, ' ', wWidth(Input));
+ mvwaddch(w, 0, minwidth, ACS_VLINE); // Before state
+ mvwaddch(w, 0, minwidth + 3, ACS_VLINE); // Between state and scope
+ mvwaddch(w, 0, minwidth + 6, ACS_VLINE); // After scope
wnoutrefresh(w);
drawitems();
@@ -353,6 +362,9 @@ bool scrollcurrent() {
bool yesno(const char *prompt) {
wattrset(win(Input), COLOR_PAIR(4) | A_BOLD | A_REVERSE);
mvwhline(win(Input), 0, 0, ' ', wWidth(Input));
+ mvwaddch(win(Input), 0, minwidth, ACS_VLINE); // Before state
+ mvwaddch(win(Input), 0, minwidth + 3, ACS_VLINE); // Between state and scope
+ mvwaddch(win(Input), 0, minwidth + 6, ACS_VLINE); // After scope
waddstr(win(Input), prompt);
whline(win(Input), 'Y', 1);
wrefresh(win(Input));
@@ -364,6 +376,9 @@ bool yesno(const char *prompt) {
case 'N': case 'n':
wattrset(win(Input), COLOR_PAIR(3));
mvwhline(win(Input), 0, 0, ' ', wWidth(Input));
+ mvwaddch(win(Input), 0, minwidth, ACS_VLINE); // Before state
+ mvwaddch(win(Input), 0, minwidth + 3, ACS_VLINE); // Between state and scope
+ mvwaddch(win(Input), 0, minwidth + 6, ACS_VLINE); // After scope
wnoutrefresh(win(Input));
wrefresh(win(List));
return FALSE;
@@ -381,6 +396,9 @@ bool yesno(const char *prompt) {
draw();
wattrset(win(Input), COLOR_PAIR(4) | A_BOLD | A_REVERSE);
mvwhline(win(Input), 0, 0, ' ', wWidth(Input));
+ mvwaddch(win(Input), 0, minwidth, ACS_VLINE); // Before state
+ mvwaddch(win(Input), 0, minwidth + 3, ACS_VLINE); // Between state and scope
+ mvwaddch(win(Input), 0, minwidth + 6, ACS_VLINE); // After scope
waddstr(win(Input), prompt);
whline(win(Input), 'Y', 1);
wrefresh(win(Input));
next reply other threads:[~2013-01-23 14:44 UTC|newest]
Thread overview: 238+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-23 14:44 Sven Eden [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-11-07 14:25 [gentoo-commits] proj/ufed:master commit in: / Sven Eden
2020-05-02 8:38 Ulrich Müller
2019-09-27 6:42 Sven Eden
2019-09-27 6:39 Sven Eden
2019-09-24 17:57 Sven Eden
2019-09-24 17:56 Sven Eden
2019-04-07 15:17 David Seifert
2019-04-07 13:56 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2019-04-07 13:19 David Seifert
2015-02-12 15:47 Sven Eden
2015-02-11 9:03 Sven Eden
2014-11-10 9:59 Sven Eden
2014-10-28 11:43 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-26 10:26 Sven Eden
2014-02-25 8:18 Sven Eden
2014-02-25 8:18 Sven Eden
2014-02-25 8:18 Sven Eden
2014-02-25 8:18 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-11-25 21:43 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-20 8:30 Sven Eden
2013-09-11 7:09 Sven Eden
2013-09-11 6:31 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-11 6:04 Sven Eden
2013-09-10 12:37 Sven Eden
2013-09-10 6:36 Sven Eden
2013-09-10 6:36 Sven Eden
2013-09-10 6:36 Sven Eden
2013-09-10 6:36 Sven Eden
2013-09-10 6:36 Sven Eden
2013-09-10 6:36 Sven Eden
2013-09-10 6:36 Sven Eden
2013-07-22 9:34 Sven Eden
2013-07-22 6:09 Sven Eden
2013-07-22 6:09 Sven Eden
2013-04-09 7:22 Sven Eden
2013-04-09 7:22 Sven Eden
2013-04-09 7:22 Sven Eden
2013-04-08 7:18 Sven Eden
2013-04-03 13:39 Sven Eden
2013-03-05 16:53 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-03-05 16:49 Sven Eden
2013-02-21 10:02 Sven Eden
2013-02-19 15:16 Sven Eden
2013-02-19 13:34 Sven Eden
2013-02-18 7:22 Sven Eden
2013-02-15 8:36 Sven Eden
2013-02-15 8:36 Sven Eden
2013-02-15 8:36 Sven Eden
2013-02-14 8:35 Sven Eden
2013-02-14 8:35 Sven Eden
2013-02-14 8:35 Sven Eden
2013-02-13 9:23 Sven Eden
2013-02-13 9:23 Sven Eden
2013-02-13 9:23 Sven Eden
2013-02-13 9:23 Sven Eden
2013-02-13 9:23 Sven Eden
2013-02-12 10:51 Sven Eden
2013-02-12 10:51 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-12 9:01 Sven Eden
2013-02-06 9:09 Sven Eden
2013-02-06 9:09 Sven Eden
2013-02-05 18:06 Paul Varner
2013-02-05 13:53 Sven Eden
2013-02-05 13:53 Sven Eden
2013-02-05 11:24 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-03 14:32 Sven Eden
2013-02-02 20:49 Sven Eden
2013-02-02 10:11 Sven Eden
2013-02-02 9:47 Sven Eden
2013-02-02 9:47 Sven Eden
2013-02-02 9:47 Sven Eden
2013-02-01 21:12 Sven Eden
2013-02-01 21:12 Sven Eden
2013-02-01 21:12 Sven Eden
2013-02-01 16:04 Sven Eden
2013-02-01 15:55 Sven Eden
2013-02-01 15:26 Sven Eden
2013-02-01 14:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-02-01 10:49 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-24 10:15 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-23 12:05 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-19 21:43 Sven Eden
2013-01-16 13:43 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-16 12:56 Sven Eden
2013-01-08 11:02 Sven Eden
2013-01-02 8:47 Sven Eden
2013-01-02 8:01 Sven Eden
2013-01-02 8:01 Sven Eden
2012-11-20 17:31 Paul Varner
2012-11-20 17:25 Paul Varner
2012-10-23 16:13 Paul Varner
2012-10-23 16:13 Paul Varner
2012-10-23 16:13 Paul Varner
2012-10-23 16:01 Paul Varner
2012-10-22 20:42 Paul Varner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1358952314.7d480726bfedba69db50d761f669829414fba53c.yamakuzure@gentoo \
--to=sven.eden@gmx.de \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox