Introduction
Introduction Statistics Contact Development Disclaimer Help
youtube/gopher: print views with thousand separator - frontends - front-ends fo…
Log
Files
Refs
README
LICENSE
---
commit 7385c0b104dea41686519ed734825da88ca2fb32
parent 4dcebc72f5a00e9b94a8e2338fb0127662933fa3
Author: Hiltjo Posthuma <[email protected]>
Date: Tue, 7 Mar 2023 19:26:17 +0100
youtube/gopher: print views with thousand separator
Diffstat:
M youtube/gopher.c | 31 +++++++++++++++++++++++++++++…
1 file changed, 29 insertions(+), 2 deletions(-)
---
diff --git a/youtube/gopher.c b/youtube/gopher.c
@@ -42,6 +42,32 @@ info(const char *s)
line('i', s, "");
}
+/* print views with thousand separators */
+static void
+printviews(const char *s)
+{
+ const char *p;
+ int ndigits = 0;
+
+ /* first count all digits */
+ for (p = s; *p; p++)
+ if (*p >= '0' && *p <= '9')
+ ndigits++;
+
+ for (p = s; *p; p++) {
+ if (!(*p >= '0' && *p <= '9'))
+ continue;
+
+ putchar(*p);
+ ndigits--;
+
+ /* show separator on every 3 digits and when there are
+ digits remaining */
+ if ((ndigits % 3) == 0 && ndigits > 0)
+ putchar(',');
+ }
+}
+
void
header(void)
{
@@ -144,7 +170,7 @@ render_search(struct search_response *r)
}
if (v->viewcount[0]) {
OUT("iViews: ");
- OUTTEXT(v->viewcount);
+ printviews(v->viewcount);
printf("\t%s\t%s\t%s\r\n", "", host, port);
}
}
@@ -198,7 +224,8 @@ render_video(struct video_response *r)
}
OUT("iViews: ");
- printf("%ld", r->viewcount);
+ snprintf(buf, sizeof(buf), "%ld", r->viewcount);
+ printviews(buf);
printf("\t%s\t%s\t%s\r\n", "", host, port);
if (r->publishdate[0]) {
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.