LINUX.ORG.RU

translate 0.3

 


1

4

Состоялся релиз программы translate, делающей парсинг словарей stardict намного удобнее.

Улучшения:

  • настраиваемое цветовое оформление;
  • постраничный вывод.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: DeadEye (всего исправлений: 3)

Идея классная (в частности, поддержка DIR_COLORS), реализация — довольно страшная.

Полистал исходник — сходу утечку памяти вижу https://github.com/xverizex/translate/blob/78d51d8c984fd95d8275e34718a1cd7fa5...

Попробуй собрать с флагами -Wall -Wextra -Werror -pedantic и еще прогнать через cppcheck и valgrind, например.

sbar
()
Ответ на: комментарий от annulen

А на чём ещё писать такую коротенькую програмку? С++ с тоннами рантайма или на каком либо интерпретируемом питоне?

drfaust ★★★★★
()
Ответ на: комментарий от drfaust

На любой скриптоте, которую знаешь, будет десять строчек кода и никаких багов

annulen ★★★★★
()

Куранин, ты опять выходишь на связь со своими поделками?

Radjah ★★★★★
()

Файл настроек должен лежать в $HOME/.translate.conf

Тогда уж лучше $HOME/.translate/translate.conf. или в .config положить.

upcFrost ★★★★★
()
Ответ на: комментарий от tcler

Это у него такой coding style, не доступный простым людям.

Deleted
()

Зачем писать новую юзерспейсную программу на C, да еще и не умея на нем писать?

и да

улучшение

исправление

f1u77y ★★★★
()
Ответ на: комментарий от drfaust

с тоннами рантайма

откуда такие требования? может, еще надо, чтобы это gcc 2.x какой-нибудь компилировал?

f1u77y ★★★★
()

В этом коде прекрасно все.

char *line = calloc(ws.ws_col + 14,sizeof(char));
memset(line,45,ws.ws_col + 14 );
ptr = line;
ptr += ws.ws_col >> 1;
char *cfile = calloc(strlen(file) + 18, sizeof(char));
ptr = ptr - strlen(file) + (strlen(file) >> 1);
sprintf(cfile,"\033[%sm%s\033[%sm",PATH,file,PUNKTIR);
strncpy(ptr,cfile,strlen(cfile));
printf("\033[%sm%s\033[0m\n",PUNKTIR,line);

mix_mix ★★★★★
()
Ответ на: комментарий от DELIRIUM

В чем сложность? На турнике висел?

vada ★★★★★
()

Ты от рута работешь? Не делай так

gnunixon ★★★
()

Еще и кофиг на русском...

gnunixon ★★★
()

Очень странный стиль, забитые в код строки на русском, коммиты с комментариями вида «улучшение»… Всё против людей. Я бы постеснялся такое показывать.

evilface ★★
()
Ответ на: комментарий от vada

каталоги = в эту опцию можно записать папки где будет словари

Лично я дальше уже боюсь. )

evilface ★★
()

Если вывод большой, то управление:

'q' выход.
пробел пропустить страницу.
любая другая ascii клавиша пропустить одну строку.


Для этого в моей системе есть less. И more есть. Зачем велосипедить?

evilface ★★
()

В общем, желаю автору учить языки. Все подряд. Английский, русский, C.

evilface ★★
()
Последнее исправление: evilface (всего исправлений: 1)
Ответ на: комментарий от u0atgKIRznY5

less не отображает цвета

4.2

-r or --raw-control-chars
Causes «raw» control characters to be displayed. The default is to display control characters using the caret notation; for example, a control-A (octal 001) is displayed as «^A». Warning: when the -r option is used, less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus, various display problems may result, such as long lines being split in the wrong place.

-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI «color» escape sequences are output in «raw» form. Unlike -r, the screen appearance is maintained correctly in most cases. ANSI «color» escape sequences are sequences of the form:

    ESC [ ... m

where the "..." is zero or more color specification characters For the purpose of keeping track of screen appearance, ANSI color escape sequences are assumed to not move the cursor. You can make less think that characters other than «m» can end ANSI color escape sequences by setting the environment variable LESSANSIENDCHARS to the list of characters which can end a color escape sequence. And you can make less think that characters other than the standard ones may appear between the ESC and the m by setting the environment variable LESSANSIMIDCHARS to the list of characters which can appear

Много раз видел цвета при просмотре через less (например, логи неудачных сборок портаж сохраняет «в цвете»)

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 2)

Хватать постить однострочники в новости...

RazrFalcon ★★★★★
()
Ответ на: комментарий от AlexKiriukha

Если автор норм воспринимает критику.

Почитайте его сообщения. Там клиника.

RazrFalcon ★★★★★
()
Ответ на: комментарий от u0atgKIRznY5

А если не секрет, зачем ассемблерная вставка?
Любой const char *str = "blabla"; и так попадёт в .rodata. (Без const тоже, но так делать не надо).

evilface ★★
()
Ответ на: комментарий от u0atgKIRznY5

less не отображает цвета

поклеп. less -R в помощь.

bormant ★★★★★
()
Ответ на: комментарий от evilface

В моём случае я узнаю перевод с помощью одной программы, и это будет быстрее, чем твой вариант из двух программ с дополнительными опциями, чтобы узнать перевод одного слова.

./translate слово

вот твой вариант

./translate слово | less -R

Для меня эффективность моей программы важнее, чем твой способ, который сам по себе уже дольше подготавливать команды.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от Deleted

Две программы в процессе будут участвовать. А у меня одна. У меня лучше сделано, чем ваш предлагаемый вариант.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от val-amart

Это ты в `искусство программирования для unix` прочитал. Типа, лучше несколько простых программ сделать вместо одной сложной? Моя программа не нуждается в дополнительной программе.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

Это ты в `искусство программирования для unix`

А ещё это принцип KISS.


Моя программа не нуждается в дополнительной программе

И гораздо сложнее, а значит, вероятность ошибок, как и сложность сопровождения и много чего ещё, сильно выше

XMs ★★★★★
()
Ответ на: комментарий от XMs

Сложность сопровождения, это когда 4 млн строк кода линукс и 4 тыс. строк кода minix.

У меня программа не аналог less и more. Данный функционал часть программы, а не клон или аналог вышеназванных.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

У меня программа не аналог less и more

Верно. Это helloworld, реализуемый любым скриптовым языком гораздо быстрее и проще. И если б ты так и сделал, вопросов бы ни у кого не было. Разве что на новость это бы не тянуло ну вообще никак (да и сейчас непонятно, зачем подтвердили)

XMs ★★★★★
()
Ответ на: комментарий от XMs

О, наверное у тебя есть идея, о том, как можно сделать это с помощью скриптового языка, который будет быстрей и проще выполнится. Давай сюда сценарий, я сравню производительность.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

быстрей

Это никому не нужно для таких задач. По-твоему, всё, что может работать быстрей, должно работать быстрей не смотря ни на что?

XMs ★★★★★
()
Ответ на: комментарий от XMs

Откуда тебе знать, если ты один пишешь что это никому не нужно. Ну вот ты говоришь что проще, проще она может быть написана, а выполнятся долго. Что может работать быстрее, будет работать быстрее.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5

ты один пишешь что это никому не нужно

translate 0.3 (комментарий), translate 0.3 (комментарий) — как ты думаешь, почему они это пишут?


проще она может быть написана

Вот именно. Проще писать, пусть и ценой скольких-то там тактов на интерпретацию. Время разработчика много ценнее машинного. И пока ты пишешь свой велосипед (сотни строк кода), при прочих равных, тот, кто выберет более подходящий инструмент (читай: язык программирования), наклепает их с десяток, да ещё время останется

XMs ★★★★★
()
Ответ на: комментарий от XMs

Всё зависит от опыта и знаний. Я стараясь применять быстродействие буду накапливать знания и опыт в этом направлении. Это мне понадобиться. Насчёт твоего примера, так они будут знать функции и алгоритмы. А я буду знать больше.

u0atgKIRznY5
() автор топика

Мне кажется, что таких упоротых велосипедистов порой специально подтверждают, чтобы народ повеселить.

anonymous
()
Ответ на: комментарий от anonymous

Ну да, и зачем им клепать так много одинаковых программ. А кстати бывает очень смешно читать историю переписки. Тем более, у моей программы нет аналогов. И зачем обсуждать функцию в моей программе, может ещё fopen обсуждать, типа зачем fopen использовать, если есть cat. Зачем находить похожие по функционалу программы? Функция постраничного вывода это часть программы. У меня программа для удобного перевода слова, даже если нет иксов, то всё равно удобно будет использовать.

u0atgKIRznY5
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.