1
1

use the locale's thousand seperator, if available

Этот коммит содержится в:
Chris West (Faux) 2013-01-13 12:35:25 +00:00
родитель fdd86924e5
Коммит c4f5f370ac
3 изменённых файлов: 17 добавлений и 1 удалений

Просмотреть файл

@ -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)

Просмотреть файл

@ -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 *);