Очень функциональный шелл

...
  • А как у него с поддержкой папок? Можно, например, использовать пути к папкам на жёстком диске?
  • с папками должно быть всё в порядке, так как используется 70-я ф-ция. пробовал перемещаться по каталогам жёсткого диска (особое внимание обратил на папку system32 - заходит и выдаёт список файлов без проблем), а также cd и dvd - тоже проблем не было.


    2 all
    обнаружил, что не работает команда alias :( хотелось бы узнать - у кого работает, а у кого нет?
  • Дал команду:

    Code: Select all

    /rd/kerpack /hd0/1/Kolibri/kernel.mnt
    Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?
  • правильно: /rd/1/kerpack
    Из хаоса в космос
  • Я тут опечатался, так и писал: /rd/1/kerpack. Но не сработало...
  • по-моему, kerpack не принимает параметры, а работает только с ядром на рамдиске. А если и работает, то нужно посмотреть в исходниках с помощью какой ф-ции там происводятся файловые операции (должна быть 70-я). а к shell'у по этому вопросу претензий не должно быть - я всегда после установки нового ядра запускаю kerpack из shell, правда без параметров
  • Ну вот, допустим, такая ситуация: я собрал ядро на hd, а скопировать сразу на rd не могу, потому что не хватает места. Приходится лезть в винду и запускать kerpack под эмулятором, потом опять перезагружаться и копировать. И так всегда...
  • Ну так это вопрос к автору kerpack, а не shell'a.
  • В последних версиях грохнулось редактирование введённой строки (стрелки влево/вправо, вставка символов в середину строки). Если это из-за того, что для поддержки истории пришлось отказаться от gets, то сообщаю о наличии функции gets2, которая позволяет вызывающей программе делать всё, что ей угодно, при нажатии на "нестандартные" клавиши типа up/down/Tab.
    Albom wrote:
    Это запоминание было и в ДОСе по стрелочке вверх, по табу оно подставляет имя файла.
    по-моему не было там запоминания по стрелочке вверх, а только по стрелочке вправо - запоминание последней команды. А таба и поныне нет (по-крайней мере я в 2000 проверил - НЕТУ!!!)
    В ДОСе действительно запоминалась только последняя введённая строка, в винде появилась нормальная память введённых команд. А таб уже давно есть, начиная с XP.
    Nable wrote:Исправление простое - вместо printf(&string) писать printf("%s",&string), где string - твоя строка. Да это медленнее и больше, зато надёжнее.
    Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string).
    Shell показал, что всё вроде бы сработало, но нет - файл /hd0/1/Kolibri/kernel.mnt не изменился! Почему? Какая программа это не поддерживает: shell или kerpack?
    Этого не поддерживает kerpack, которая задумывалась как простая программа, которая сжимает ядро на рамдиске без всяких дополнительных наворотов.
    Ушёл к умным, знающим и культурным людям.
  • Какие извраты... Есть же функция puts(&string), которая в консольной библиотеке именуется con_write_asciiz(&string)
    printf более функциональна, чем puts. так, например, можно обрамить выводимую строку пустыми (printf("\n%s\n", string)) или сделать конкетацию при выводе (printf("%s%s", s1, s2)), а с puts сделать такое сложнее
  • printf более функциональна, чем puts.
    Разумеется. Но речь-то шла о том, как заменить конкретный вызов printf(str), который должен просто напечатать строку, а в этом случае вызвать puts таки проще.
  • не прошло и полгода...
    в общем, в коде будут серьёзные изменения. но когда - не знаю.
    пока же версия с исправленными ошибками.
    работает команда alias, добавлена команда clear.
    Attachments
    Исходники
    Downloaded 291 times
    shell-0.4.1.zip (5.89 KiB)
    Downloaded 311 times
  • Albom,
    писать консольные проги для использования в shell можно?? или надо сам shell ковырять?
  • пока нельзя :(
    я ещё не определился с механизмом связи такого приложения и shell. надо разбираться в IPC... или воплощать свою идею по поводу специального формата консольных приложений - в виде библиотек coff. вопрос только - как shell должен экспортировать ф-ции ввода/вывода? (да, именно shell!) жду предложений.
  • Who is online

    Users browsing this forum: No registered users and 5 guests