Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн дек 11, 2017 7:10 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 175 сообщений ]  На страницу Пред. 18 9 10 11 12
Автор Сообщение
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Пн дек 01, 2014 2:39 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1601
Не переход на tup, а переход с gcc3 на gcc4. И не поломал, а показал, что код неправильный и выходит за границы массива. Локальные переменные немного по-другому легли, и там, где был нуль, стала буква "p". r5207

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Пт ноя 27, 2015 2:55 pm 
Не в сети

Зарегистрирован: Вс авг 09, 2015 3:41 pm
Сообщения: 82
shell.inc
В функцию shell.wait нужно добавить выход по тайм-ауту, иначе программа зависает в случае, если она была вызвана не из shell.


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Сб май 20, 2017 11:04 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Вроде в ту тему попал. Почему, когда я вставляю копированную строку с путём к файлу перед командой cd в shell, то при вставке, удаляется команда cd? Можно ли это как-то исправить? :roll:

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Вс май 21, 2017 4:41 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 269
JohnXenox писал(а):
Вроде в ту тему попал. Почему, когда я вставляю копированную строку с путём к файлу перед командой cd в shell, то при вставке, удаляется команда cd? Можно ли это как-то исправить? :roll:

Конечно можно.

Если сам заинтересован, могу подсказать где - шелл одна из самых простых программ Колибри, и написана на С. Нужно?


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Вс май 21, 2017 5:17 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 18, 2017 2:29 am
Сообщения: 66
Siemargl писал(а):
Если сам заинтересован, могу подсказать где - шелл одна из самых простых программ Колибри, и написана на С. Нужно?

Я бы не прочь поправить, но к сожалению, не умею программировать на С, только мальца на bash shell. :oops:

_________________
The Glass is Always Half Full! :mrgreen:


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Ср сен 27, 2017 9:52 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
Shell 0.7.7
* help теперь выводит список комманд в три колонки
* ps теперь выводит размер ОЗУ, используемый процессом
* ls теперь выводит все файлы не в одну, а в несколько колонок, размер колонок расчитывается исходя из самого длинного имени файла в папке, старый вывод списком по прежнему доступен через ключ '-1'

Я почти уверен, что в файле http://websvn.kolibrios.org/filedetails ... 2Fstring.c в функции strnicmp ошибка.
Оно требует количество символов на 1 меньше. Т.е. в коде сейчас strnicmp(param, "-1", 1), хотя я думаю что нужно 2, но с ним не работает.
Буду рад, если кто-то подтвердит или опровергнет.

Вообще очень нравится SHELL из-за простоты сборки.

Приму замечанию по коду.


Вложения:
shel_077.png
shel_077.png [ 15.94 КБ | 227 просмотров ]

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Чт сен 28, 2017 10:59 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 751
Цитата:
Я почти уверен, что в файле http://websvn.kolibrios.org/filedetails ... 2Fstring.c в функции strnicmp ошибка.
Оно требует количество символов на 1 меньше.

думаю что pc++; нужно перенести перед проверкой if (*string1=='\0' || pc == count) может так получится
Код:
int    strnicmp(const char* string1, const char* string2, unsigned count)
{
int pc = 0;
while (1)
        {
        if (toupper(*string1)<toupper(*string2))
                return -1;
        if (toupper(*string1)>toupper(*string2))
                return 1;
 
        pc++;
        if (*string1=='\0' || pc == count)
                return 0;
 
        string1++;
        string2++;
        }
}


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Пт сен 29, 2017 8:43 am 
Не в сети

Зарегистрирован: Вс авг 09, 2015 3:41 pm
Сообщения: 82
IgorA писал(а):
думаю что pc++; нужно перенести перед проверкой if (*string1=='\0' || pc == count) может так получится

и проверку исправить на
if (*string1=='\0' || pc >= count)
Иначе получится бесконечный цикл, если 3 параметр <= 0.


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Пт сен 29, 2017 9:21 am 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 269
Код:
int    _strnicmp(const char* string1, const char* string2, unsigned count)
{
unsigned pc = 0;
while (pc < count)
        {
        if (toupper(*string1)<toupper(*string2))
                return -1;
        if (toupper(*string1)>toupper(*string2))
                return 1;
 
        if (*string1=='\0')
               break;
 
        string1++;
        string2++;
        pc++;
        }
return 0;
}


Ray, unsigned не бывает отрицательным


Вернуться к началу
 Заголовок сообщения: Re: Очень функциональный шелл
СообщениеДобавлено: Пт сен 29, 2017 11:53 am 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1082
Думаю, можно сделать по аналогии
http://bxr.su/OpenBSD/sys/lib/libkern/strncasecmp.c
http://bxr.su/OpenBSD/lib/libc/string/strcasecmp.c
Как впрочем и всё остальное.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 175 сообщений ]  На страницу Пред. 18 9 10 11 12

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB