Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср сен 20, 2017 6:58 am

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




Начать новую тему  Ответить на тему  [ 184 сообщения ]  На страницу Пред. 19 10 11 12 13 След.
Автор Сообщение
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 6:12 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
0CodErr писал(а):
а зачем это нужно в буфере обмена? Какая ядру разница?

Ядру разницы нет, но есть разница приложениям. Внутри себя они могут использовать все что душе программиста угодно, но вот в буфер засылать все что угодно - это создавать лишние проблемы. Так что лучше определиться со стандартом заранее, чтобы не было неожиданных сюрпризов.
0CodErr писал(а):
Я думаю, надо делать надёжно.
Или, как вариант, указывать тип содержимого(что-то вроде TEXT_CR, TEXT_LF, TEXT_CR_LF).

Лишний геморрой с дополнительными данными. Лучше уж единообразие для всех без исключения.

З.Ы. Также если сделать требование следовать одному стандарту, не придется писать лишний код, учитывающий все возможные варианты.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 7:02 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1002
Mario_r4, тогда есть вероятность, что придётся перед копированием в буфер обмена преобразовывать в единственно верный формат. Потому что файлы с различными EOL уже и так существуют, хотим мы этого или нет.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 7:27 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
0CodErr писал(а):
Mario_r4, тогда есть вероятность, что придётся перед копированием в буфер обмена преобразовывать в единственно верный формат. Потому что файлы с различными EOL уже и так существуют, хотим мы этого или нет.

Да, но не нужно тащить этот же бардак в реализацию буфера обмена. И придется преобразовывать только отличающиеся форматы. В Tinypad придется в любом случае преобразовывать, по причине собственного формата хранения во внутреннем буфере приложения. Я вообще склоняюсь к мысли остановиться на символе 0x0d (код 13) это все же даст некоторую экономию памяти, по сравнению с 0x0d 0x0a ну больших кусках текста.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 8:28 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1223
0CodErr писал(а):
Mario_r4, а зачем это нужно в буфере обмена? Какая ядру разница?
Mario_r4 писал(а):
Статья на википедии утверждает, что для надежности нужно использовать 0x0d 0x0a.
Я думаю, надо делать надёжно.
Или, как вариант, указывать тип содержимого(что-то вроде TEXT_CR, TEXT_LF, TEXT_CR_LF).


Text with only CR is nonsense.
To me it seems very simple, when writing text, use CR LF (for compatibility)
When reading text, parse only LF and ignore CR.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 8:47 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
hidnplayr писал(а):
To me it seems very simple, when writing text, use CR LF (for compatibility)
When reading text, parse only LF and ignore CR.

Why? After all, to any program we add support for clipboard from scratch. There is no established standard already. However, if we use 1 byte instead of 2 bytes, then a large amount of text, we can get savings of memory.

On the other hand, if the use of 2 byte code will simplify working with the clipboard, we can leave 2 bytes . I'm still thinking.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 9:20 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1223
Mario_r4 писал(а):
hidnplayr писал(а):
To me it seems very simple, when writing text, use CR LF (for compatibility)
When reading text, parse only LF and ignore CR.

Why? After all, to any program we add support for clipboard from scratch. There is no established standard already. However, if we use 1 byte instead of 2 bytes, then a large amount of text, we can get savings of memory.

On the other hand, if the use of 2 byte code will simplify working with the clipboard, we can leave 2 bytes . I'm still thinking.


Any program should accept any encoding, this has nothing to do with clipboard.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 9:40 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
hidnplayr писал(а):
Any program should accept any encoding, this has nothing to do with clipboard.

However, this increases the number of possible choices and therefore inflates code. I've come across in Windows with the situation where the standard Notepad does not understand line breaks. If the conditions for the buffer exchange would be more rigid, then such situations can be avoided in principle.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 9:42 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1002
hidnplayr писал(а):
Text with only CR is nonsense.
For example:http://en.wikipedia.org/wiki/End_of_line#Representations
Цитата:
    LF: Multics, Unix and Unix-like systems (GNU/Linux, OS X, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS and others.
    CR+LF: Microsoft Windows, DEC TOPS-10, RT-11 and most other early non-Unix and non-IBM OSes, CP/M, MP/M, DOS (MS-DOS, PC DOS, etc.), Atari TOS, OS/2, Symbian OS, Palm OS, Amstrad CPC
    LF+CR: Acorn BBC and RISC OS spooled text output.
    CR: Commodore 8-bit machines, Acorn BBC, ZX Spectrum, TRS-80, Apple II family, Mac OS up to version 9 and OS-9
    RS: QNX pre-POSIX implementation.
I'm not sure, maybe it actually nonsense.


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Вс дек 01, 2013 9:57 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1223
0CodErr писал(а):
hidnplayr писал(а):
Text with only CR is nonsense.
For example:http://en.wikipedia.org/wiki/End_of_line#Representations
Цитата:
    LF: Multics, Unix and Unix-like systems (GNU/Linux, OS X, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS and others.
    CR+LF: Microsoft Windows, DEC TOPS-10, RT-11 and most other early non-Unix and non-IBM OSes, CP/M, MP/M, DOS (MS-DOS, PC DOS, etc.), Atari TOS, OS/2, Symbian OS, Palm OS, Amstrad CPC
    LF+CR: Acorn BBC and RISC OS spooled text output.
    CR: Commodore 8-bit machines, Acorn BBC, ZX Spectrum, TRS-80, Apple II family, Mac OS up to version 9 and OS-9
    RS: QNX pre-POSIX implementation.
I'm not sure, maybe it actually nonsense.


MAC OS 9 was discontinued in 2002, should we still care? maybe.. maybe not :)

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


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

Зарегистрирован: Вт май 08, 2007 12:44 am
Сообщения: 340
Mario_r4
If you want single-byte line break, single LF (Unix style) is better than single CR (Mac style), unless you also want to define your own, incompatible, Kolibri-only format, assumes programs must be written from scratch or specially adopted to Kolibri.

_________________
Разработчик языка программирования Кантор


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Пн дек 02, 2013 12:03 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Ok, let the majority will be right again - I'm tired of arguing with you guys. Time will heal all.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Ср дек 11, 2013 10:41 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
SVN r.4343 - изменил документацию, добавил текст с блочным выделением.
Вложение:
clipboard_container_rus.txt [1.69 КБ]
72 скачивания

Вложение:
clipboard_container_eng.txt [1.08 КБ]
68 скачиваний

Если кто может подправить мой кривоватый английский перевод, то просьба сделать, можно даже на SVN сразу.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Чт янв 02, 2014 1:04 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1073
А нумерация слотов идет с нуля или единицы?

_________________
я лишь учусь


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Чт янв 02, 2014 1:09 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
punk_joker писал(а):
А нумерация слотов идет с нуля или единицы?

С нуля разумеется. Я же программист, а не гуманитарий. :mrgreen:

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Общесистемный буфер обмена
СообщениеДобавлено: Чт янв 02, 2014 1:46 am 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1073
Если я правильно понял, то при записи номер слота не указывается, но при чтении его указать необходимо. В какой слот тогда происходит запись?

Спойлер: Показать
======================================================================
====================== Функция 54, подфункция 2 ======================
================== Считать данные из буфера обмена. ==================
======================================================================
Параметры:
* eax = 54 - номер функции
* ebx = 2 - номер подфункции
* eсx = номер слота
* edx = не используется, оставлено для единообразия
* esi = указатель на буфер под копируемые данные
Возвращаемое значение:
* eax = 0 - успешно
* eax = 1 - ошибка
* eax = -1 - отсутствует область главного списка

======================================================================
====================== Функция 54, подфункция 3 ======================
================== Записать данные в буфер обмена. ===================
======================================================================
Параметры:
* eax = 54 - номер функции
* ebx = 3 - номер подфункции
* eсx = не используется, оставлено для единообразия
* edx = количество копируемых байт
* esi = указатель на буфер под копируемые данные
Возвращаемое значение:
* eax = 0 - успешно
* eax = 1 - ошибка
* eax = -1 - отсутствует область главного списка

_________________
я лишь учусь


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и 1 гость


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

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