use the locale's thousand seperator, if available
Этот коммит содержится в:
родитель
fdd86924e5
Коммит
c4f5f370ac
@ -246,6 +246,7 @@ static void init_nc() {
|
||||
/* main program */
|
||||
int main(int argc, char **argv) {
|
||||
setlocale(LC_ALL, "");
|
||||
read_locale();
|
||||
argv_parse(argc, argv);
|
||||
|
||||
if(dir_ui == 2)
|
||||
|
14
src/util.c
14
src/util.c
@ -28,9 +28,11 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ncurses.h>
|
||||
#include <locale.h>
|
||||
|
||||
int winrows, wincols;
|
||||
int subwinr, subwinc;
|
||||
char thou_sep;
|
||||
|
||||
|
||||
char *cropstr(const char *from, int s) {
|
||||
@ -88,7 +90,7 @@ char *fullsize(int64_t from) {
|
||||
while(i--) {
|
||||
dat[j++] = tmp[i];
|
||||
if(i != 0 && i%3 == 0)
|
||||
dat[j++] = '.';
|
||||
dat[j++] = thou_sep;
|
||||
}
|
||||
dat[j] = '\0';
|
||||
|
||||
@ -96,6 +98,16 @@ char *fullsize(int64_t from) {
|
||||
}
|
||||
|
||||
|
||||
void read_locale() {
|
||||
char *locale_thou_sep = localeconv()->thousands_sep;
|
||||
if (locale_thou_sep && 1 == strlen(locale_thou_sep)) {
|
||||
thou_sep = locale_thou_sep[0];
|
||||
} else {
|
||||
thou_sep = '.';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int ncresize(int minrows, int mincols) {
|
||||
int ch;
|
||||
|
||||
|
@ -71,6 +71,9 @@ char *formatsize(int64_t );
|
||||
/* int2string with thousand separators */
|
||||
char *fullsize(int64_t);
|
||||
|
||||
/* read locale information from the environment */
|
||||
void read_locale();
|
||||
|
||||
/* recursively free()s a directory tree */
|
||||
void freedir(struct dir *);
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user