ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [mdk-re] C/C++ question
@ 2001-04-30 14:09 Serge Skorokhodov
  2001-04-30 14:28 ` Egor Azanov
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Serge Skorokhodov @ 2001-04-30 14:09 UTC (permalink / raw)
  To: ALT Linux list

Здравствуйте!

Это звучит немножко оффтопик, но хочется посоветоваться.

В одной программе на "двухкрестовом" столкнулся со строчкой,
наподобие следующего отрывка:

char		buf[BUFSIZ];
// ...
if ( buf[0] == '\n' || buf[0] == '<cr>' )
                       ^^^^^^^^^^^^^^^^
{
   // ...
}

Ни я, ни компилятор этого места не поняли. Компилятору проще, он
пожаловасля на то, что вовремя не нашел парный ':). А я вообще
теряюсь в загадках. Я понимаю, что можно (в С) инициализировать
int с помощью двух символов, но можно ли так инициализировать
32-битный int? И на какой же интеллект компилятора все это
рассчитано, если предполагается, что надо разыменованый указатель
на char привести к разыменованному указателю на int только
потому, что в правой части оператора сравнения имеется символьный
литерал, который имеет смысл только для инициализации 32-битного
целого? Я из виндового мира, может, чего не понимаю? Просветите,
у кого есть время и молоко:)

Второй вопрос "чисто конкретный":) поиск по '<cr>' никак не идет
ни в nedit, ни в mc. Про спецсимволы вроде читал, но чего-то не
понимаю, как надо все оформить, чтобы стало искать именно такой
образец?

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-04-30 14:09 [mdk-re] C/C++ question Serge Skorokhodov
@ 2001-04-30 14:28 ` Egor Azanov
  2001-04-30 18:27   ` Serge Skorokhodov
  2001-04-30 17:51 ` Andrei Gerasimenko
  2001-04-30 21:28 ` Michael Ivanov
  2 siblings, 1 reply; 18+ messages in thread
From: Egor Azanov @ 2001-04-30 14:28 UTC (permalink / raw)
  To: mandrake-russian

>Здравствуйте!
>
>Это звучит немножко оффтопик, но хочется посоветоваться.
>
>В одной программе на "двухкрестовом" столкнулся со строчкой,
>наподобие следующего отрывка:
>
>char		buf[BUFSIZ];
>// ...
>if ( buf[0] == '\n' || buf[0] == '<cr>' )
>                       ^^^^^^^^^^^^^^^^
>{
>   // ...
>}
>
>Ни я, ни компилятор этого места не поняли. Компилятору проще, он
>пожаловасля на то, что вовремя не нашел парный ':). А я вообще
>теряюсь в загадках. Я понимаю, что можно (в С) инициализировать
>int с помощью двух символов, но можно ли так инициализировать
>32-битный int? И на какой же интеллект компилятора все это
>рассчитано, если предполагается, что надо разыменованый указатель
>на char привести к разыменованному указателю на int только
>потому, что в правой части оператора сравнения имеется символьный
>литерал, который имеет смысл только для инициализации 32-битного
>целого? Я из виндового мира, может, чего не понимаю? Просветите,
>у кого есть время и молоко:)
>
>Второй вопрос "чисто конкретный":) поиск по '<cr>' никак не идет
>ни в nedit, ни в mc. Про спецсимволы вроде читал, но чего-то не
>понимаю, как надо все оформить, чтобы стало искать именно такой
>образец?
>
Насколько я понял, требуется найти LF (он же \n) и CR (он же не <cr>, а \r). Поэтому и искать надо символ '\r'.

--
Egor Azanov
UIN: 88947344
<kr0n@mail.ru>



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-04-30 14:09 [mdk-re] C/C++ question Serge Skorokhodov
  2001-04-30 14:28 ` Egor Azanov
@ 2001-04-30 17:51 ` Andrei Gerasimenko
  2001-04-30 20:28   ` Serge Skorokhodov
  2001-04-30 21:28 ` Michael Ivanov
  2 siblings, 1 reply; 18+ messages in thread
From: Andrei Gerasimenko @ 2001-04-30 17:51 UTC (permalink / raw)
  To: mandrake-russian

Да, офтопик, но...

----- Original Message -----
From: "Serge Skorokhodov" <suralis@pisem.net>
To: "ALT Linux list" <mandrake-russian@altlinux.ru>
Sent: Monday, April 30, 2001 2:11 PM
Subject: [mdk-re] C/C++ question


> Здравствуйте!
>
> Это звучит немножко оффтопик, но хочется посоветоваться.
>
> В одной программе на "двухкрестовом" столкнулся со строчкой,
> наподобие следующего отрывка:
>
> char buf[BUFSIZ];
> // ...
> if ( buf[0] == '\n' || buf[0] == '<cr>' )
>                        ^^^^^^^^^^^^^^^^
> {
>    // ...
> }
>
> Ни я, ни компилятор этого места не поняли. Компилятору проще, он
> пожаловасля на то, что вовремя не нашел парный ':). А я вообще
> теряюсь в загадках. Я понимаю, что можно (в С) инициализировать
> int с помощью двух символов, но можно ли так инициализировать
> 32-битный int? И на какой же интеллект компилятора все это
> рассчитано, если предполагается, что надо разыменованый указатель
> на char привести к разыменованному указателю на int только
> потому, что в правой части оператора сравнения имеется символьный
> литерал, который имеет смысл только для инициализации 32-битного
> целого? Я из виндового мира, может, чего не понимаю? Просветите,
> у кого есть время и молоко:)

Как раз из виндового мира компилятор такое понимает, хотя и по-офтопиковски:
запускаем Visual Studio на следующий main.cpp:

#include <stdio.h>

char buf[200];

int main(void) {
 buf[0] = '<cr>';
 if (buf[0] == '<cr>')
  printf("aha!\n");
 printf("done\n");
    return 0;
}

имеем вывод done и следующую диагностику

main.cpp
h:\coding\tests\progtest\tlin\main.cpp(6) : warning C4305: '=' : truncation
from 'const int' to 'char'
h:\coding\tests\progtest\tlin\main.cpp(6) : warning C4309: '=' : truncation
of constant value
Linking...

Соответственно, результат компиляции (студия нумерует строки и с 0)

6:        buf[0] = '<cr>';
0040D678   mov         byte ptr [buf (004282b0)],3Eh
7:        if (buf[0] == '<cr>')
0040D67F   movsx       eax,byte ptr [buf (004282b0)]
0040D686   cmp         eax,3C63723Eh
0040D68B   jne         main+3Ah (0040d69a)

Как говорится, no comment.
............

> --
> Serge Skorokhodov aka suralis
> mailto:suralis@pisem.net
>
> _______________________________________________
> Mandrake-russian mailing list
> Mandrake-russian@altlinux.ru
> http://altlinux.ru/mailman/listinfo/mandrake-russian
>
>




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-04-30 14:28 ` Egor Azanov
@ 2001-04-30 18:27   ` Serge Skorokhodov
  0 siblings, 0 replies; 18+ messages in thread
From: Serge Skorokhodov @ 2001-04-30 18:27 UTC (permalink / raw)
  To: mandrake-russian

On Mon, 30 Apr 2001 14:31:11 +0400
"Egor Azanov" <kr0n@mail.ru> wrote:

> >Здравствуйте!

<skip>

> >Второй вопрос "чисто конкретный":) поиск по '<cr>' никак не идет
> >ни в nedit, ни в mc. Про спецсимволы вроде читал, но чего-то не
> >понимаю, как надо все оформить, чтобы стало искать именно такой
> >образец?
> >
> Насколько я понял, требуется найти LF (он же \n) и CR (он же не
> <cr>, а \r). Поэтому и искать надо символ '\r'.

Не хочет nedit искать '\r':( Пользователь обескуражен:(

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-04-30 17:51 ` Andrei Gerasimenko
@ 2001-04-30 20:28   ` Serge Skorokhodov
  0 siblings, 0 replies; 18+ messages in thread
From: Serge Skorokhodov @ 2001-04-30 20:28 UTC (permalink / raw)
  To: mandrake-russian

On Mon, 30 Apr 2001 17:53:05 +0400
"Andrei Gerasimenko" <gak@kaluga.ru> wrote:

> Да, офтопик, но...
> 
> ----- Original Message -----
> From: "Serge Skorokhodov" <suralis@pisem.net>
> To: "ALT Linux list" <mandrake-russian@altlinux.ru>
> Sent: Monday, April 30, 2001 2:11 PM
> Subject: [mdk-re] C/C++ question
> 
> 
> > Здравствуйте!
> >
> > Это звучит немножко оффтопик, но хочется посоветоваться.
> >
> > В одной программе на "двухкрестовом" столкнулся со строчкой,
> > наподобие следующего отрывка:
> >
> > char buf[BUFSIZ];
> > // ...
> > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> >                        ^^^^^^^^^^^^^^^^
> > {
> >    // ...
> > }
> >
> > Ни я, ни компилятор этого места не поняли. Компилятору проще, он
> > пожаловасля на то, что вовремя не нашел парный ':). А я вообще
> > теряюсь в загадках. Я понимаю, что можно (в С) инициализировать
> > int с помощью двух символов, но можно ли так инициализировать
> > 32-битный int? И на какой же интеллект компилятора все это
> > рассчитано, если предполагается, что надо разыменованый указатель
> > на char привести к разыменованному указателю на int только
> > потому, что в правой части оператора сравнения имеется символьный
> > литерал, который имеет смысл только для инициализации 32-битного
> > целого? Я из виндового мира, может, чего не понимаю? Просветите,
> > у кого есть время и молоко:)
> 
> Как раз из виндового мира компилятор такое понимает, хотя и по-офтопиковски:
> запускаем Visual Studio на следующий main.cpp:
> 
> #include <stdio.h>
> 
> char buf[200];
> 
> int main(void) {
>  buf[0] = '<cr>';
>  if (buf[0] == '<cr>')
>   printf("aha!\n");
>  printf("done\n");
>     return 0;
> }
> 
> имеем вывод done и следующую диагностику
> 
> main.cpp
> h:\coding\tests\progtest\tlin\main.cpp(6) : warning C4305: '='
> : truncation
> from 'const int' to 'char'
> h:\coding\tests\progtest\tlin\main.cpp(6) : warning C4309: '='
> : truncation
> of constant value
> Linking...
> 
> Соответственно, результат компиляции (студия нумерует строки и с 0)
> 
> 6:        buf[0] = '<cr>';
> 0040D678   mov         byte ptr [buf (004282b0)],3Eh
> 7:        if (buf[0] == '<cr>')
> 0040D67F   movsx       eax,byte ptr [buf (004282b0)]
> 0040D686   cmp         eax,3C63723Eh

У борланда примерно тоже (что на С, что на С++), только:

move	byte prt [buf], 0x3c
и
cmp	eax, 0x3e72633c		; байты переставлены

То, что по моему мнению подрузамевали авторы программы, а именно
сравнение без вызова ф-ции сравнения строк в BC5.5 делает сл. код:

char buf[] = "<cr>";
// ...
if ( ((int *)buf)[0] == '<cr>' )
// ...

> 0040D68B   jne         main+3Ah (0040d69a)
> 
> Как говорится, no comment.

В ARM однозначно говориться, что представление многолитерных констант
зависит от реализации и их лучше избегать. Меня интересует другое.
Является ли такая практика нормальной, хорошей и на каких соображениях
она основана. Я, собственно, совершенно не против. Просто хочется понять,
и мне, и установленному в Spring 2001 по умолчанию компилятору:)

И последнее, личное. Андрей, судя по адресу Вы можете передать привет
улице Чичерена, на которой прошла первая треть моей жизни:)

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-04-30 14:09 [mdk-re] C/C++ question Serge Skorokhodov
  2001-04-30 14:28 ` Egor Azanov
  2001-04-30 17:51 ` Andrei Gerasimenko
@ 2001-04-30 21:28 ` Michael Ivanov
  2001-05-03 12:30   ` Serge Skorokhodov
  2 siblings, 1 reply; 18+ messages in thread
From: Michael Ivanov @ 2001-04-30 21:28 UTC (permalink / raw)
  To: mandrake-russian

On 30 April 2001 14:11, you wrote:
>
 В одной программе на "двухкрестовом" столкнулся со строчкой,
> наподобие следующего отрывка:
>
> char		buf[BUFSIZ];
> // ...
> if ( buf[0] == '\n' || buf[0] == '<cr>' )
>                        ^^^^^^^^^^^^^^^^

А это не _один_ символ с кодом '\r'? По крайней мере nedit его
отображает именно так.

-- 
 \   / |			           |
 (OvO) |  Michael Ivanov                   |
 (^^^) |                                   |
  \^/  |      E-mail:  ivans@isle.spb.ru   |
  ^ ^  |                                   |



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-04-30 21:28 ` Michael Ivanov
@ 2001-05-03 12:30   ` Serge Skorokhodov
  2001-05-03 14:02     ` Sergey Vlasov
                       ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Serge Skorokhodov @ 2001-05-03 12:30 UTC (permalink / raw)
  To: mandrake-russian

On Mon, 30 Apr 2001 21:16:55 +0400
Michael Ivanov <ivans@isle.spb.ru> wrote:

> On 30 April 2001 14:11, you wrote:
> >
>  В одной программе на "двухкрестовом" столкнулся со строчкой,
> > наподобие следующего отрывка:
> >
> > char		buf[BUFSIZ];
> > // ...
> > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> >                        ^^^^^^^^^^^^^^^^
> 
> А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> отображает именно так.

Да, а я тут, старый дурень, дискуссии о симантике С-подобных
языков веду:)

Но, если честно, то мне еще непонятнее: В nedit это отображается
'<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
просмотре, и при редактировании просто ''. Как выяснить, какой же
символ в программе. Я всегда думал, что исходный текст есть
исходный текст, ascii есть ascii. А тут и я, и компилятор в
затруднении, и неизвестно, какая тулза из богатого инструментария
*nix может помочь:(

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-05-03 12:30   ` Serge Skorokhodov
@ 2001-05-03 14:02     ` Sergey Vlasov
  2001-05-03 15:54       ` Re[2]: " Serge Skorokhodov
  2001-05-03 20:24     ` Michael Ivanov
                       ` (2 subsequent siblings)
  3 siblings, 1 reply; 18+ messages in thread
From: Sergey Vlasov @ 2001-05-03 14:02 UTC (permalink / raw)
  To: mandrake-russian

On Tue, 1 May 2001 00:59:34 +0400
Serge Skorokhodov <suralis@pisem.net> wrote:

> On Mon, 30 Apr 2001 21:16:55 +0400
> Michael Ivanov <ivans@isle.spb.ru> wrote:
> 
> > On 30 April 2001 14:11, you wrote:
> > >
> >  В одной программе на "двухкрестовом" столкнулся со строчкой,
> > > наподобие следующего отрывка:
> > >
> > > char		buf[BUFSIZ];
> > > // ...
> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> > >                        ^^^^^^^^^^^^^^^^
> > 
> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> > отображает именно так.
> 
> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
> языков веду:)
> 
> Но, если честно, то мне еще непонятнее: В nedit это отображается
> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
> просмотре, и при редактировании просто ''. Как выяснить, какой же
> символ в программе. Я всегда думал, что исходный текст есть
> исходный текст, ascii есть ascii. А тут и я, и компилятор в
> затруднении, и неизвестно, какая тулза из богатого инструментария
> *nix может помочь:(

А откуда вообще программа с такими символами выползла? Вообще в таких
случаях в C[++] положено писать либо '\r', либо '\015'. А управляющим
символам в файле делать нечего.

Если таких мест много, можно сделать, например:

  perl -pi -e 's,\015,\\015,g' file.c



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re[2]: [mdk-re] C/C++ question
  2001-05-03 14:02     ` Sergey Vlasov
@ 2001-05-03 15:54       ` Serge Skorokhodov
  2001-05-03 19:12         ` Sergey Vlasov
  0 siblings, 1 reply; 18+ messages in thread
From: Serge Skorokhodov @ 2001-05-03 15:54 UTC (permalink / raw)
  To: Sergey Vlasov

Здравствуйте!

Sergey Vlasov пишет по-поводу [mdk-re] C/C++ question

SV> On Tue, 1 May 2001 00:59:34 +0400
SV> Serge Skorokhodov <suralis@pisem.net> wrote:

>> On Mon, 30 Apr 2001 21:16:55 +0400
>> Michael Ivanov <ivans@isle.spb.ru> wrote:
>> 
>> > On 30 April 2001 14:11, you wrote:
>> > >
>> >  В одной программе на "двухкрестовом" столкнулся со строчкой,
>> > > наподобие следующего отрывка:
>> > >
>> > > char              buf[BUFSIZ];
>> > > // ...
>> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
>> > >                        ^^^^^^^^^^^^^^^^
>> > 
>> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
>> > отображает именно так.
>> 
>> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
>> языков веду:)
>> 
>> Но, если честно, то мне еще непонятнее: В nedit это отображается
>> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
>> просмотре, и при редактировании просто ''. Как выяснить, какой же
>> символ в программе. Я всегда думал, что исходный текст есть
>> исходный текст, ascii есть ascii. А тут и я, и компилятор в
>> затруднении, и неизвестно, какая тулза из богатого инструментария
>> *nix может помочь:(

SV> А откуда вообще программа с такими символами выползла? Вообще в таких
SV> случаях в C[++] положено писать либо '\r', либо '\015'. А управляющим
SV> символам в файле делать нечего.

SV> Если таких мест много, можно сделать, например:

SV>   perl -pi -e 's,\015,\\015,g' file.c

Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
ishmail, я ей заинтересовался в связи с nmh (она указана, как
совместимый клиент на сайте nmh). Все места в одном файле, так
что изменить не сложно:), тем более, что собирается и работает
простым "выкомментом".

Сергей Скороходов 03.05.2001 suralis@pisem.net




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Re[2]: [mdk-re] C/C++ question
  2001-05-03 15:54       ` Re[2]: " Serge Skorokhodov
@ 2001-05-03 19:12         ` Sergey Vlasov
  2001-05-04 19:18           ` Serge Skorokhodov
  0 siblings, 1 reply; 18+ messages in thread
From: Sergey Vlasov @ 2001-05-03 19:12 UTC (permalink / raw)
  To: mandrake-russian

On Thu, 3 May 2001 15:57:41 +0300
Serge Skorokhodov <suralis@pisem.net> wrote:

> Здравствуйте!
> 
> Sergey Vlasov пишет по-поводу [mdk-re] C/C++ question
> 
> SV> On Tue, 1 May 2001 00:59:34 +0400
> SV> Serge Skorokhodov <suralis@pisem.net> wrote:
> 
> >> On Mon, 30 Apr 2001 21:16:55 +0400
> >> Michael Ivanov <ivans@isle.spb.ru> wrote:
> >> 
> >> > On 30 April 2001 14:11, you wrote:
> >> > >
> >> >  В одной программе на "двухкрестовом" столкнулся со строчкой,
> >> > > наподобие следующего отрывка:
> >> > >
> >> > > char              buf[BUFSIZ];
> >> > > // ...
> >> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> >> > >                        ^^^^^^^^^^^^^^^^
> >> > 
> >> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> >> > отображает именно так.
> >> 
> >> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
> >> языков веду:)
> >> 
> >> Но, если честно, то мне еще непонятнее: В nedit это отображается
> >> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
> >> просмотре, и при редактировании просто ''. Как выяснить, какой же
> >> символ в программе. Я всегда думал, что исходный текст есть
> >> исходный текст, ascii есть ascii. А тут и я, и компилятор в
> >> затруднении, и неизвестно, какая тулза из богатого инструментария
> >> *nix может помочь:(
> 
> SV> А откуда вообще программа с такими символами выползла? Вообще в
> таких
> SV> случаях в C[++] положено писать либо '\r', либо '\015'. А
> управляющим
> SV> символам в файле делать нечего.
> 
> SV> Если таких мест много, можно сделать, например:
> 
> SV>   perl -pi -e 's,\015,\\015,g' file.c
> 
> Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
> ishmail, я ей заинтересовался в связи с nmh (она указана, как
> совместимый клиент на сайте nmh). Все места в одном файле, так
> что изменить не сложно:), тем более, что собирается и работает
> простым "выкомментом".

Так там все по этому поводу в FAQ написано.

Я собирался посмотреть, но что-то мне от Motif стало тоскливо. :-(



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-05-03 12:30   ` Serge Skorokhodov
  2001-05-03 14:02     ` Sergey Vlasov
@ 2001-05-03 20:24     ` Michael Ivanov
  2001-05-03 21:22     ` Sergei
  2001-05-04  9:50     ` Mikhail Zabaluev
  3 siblings, 0 replies; 18+ messages in thread
From: Michael Ivanov @ 2001-05-03 20:24 UTC (permalink / raw)
  To: mandrake-russian

On  1 May 2001 00:59, you wrote:
> On Mon, 30 Apr 2001 21:16:55 +0400
>
> Michael Ivanov <ivans@isle.spb.ru> wrote:
> > On 30 April 2001 14:11, you wrote:
> >
> >  В одной программе на "двухкрестовом" столкнулся со строчкой,
> >
> > > наподобие следующего отрывка:
> > >
> > > char		buf[BUFSIZ];
> > > // ...
> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> > >                        ^^^^^^^^^^^^^^^^
> >
> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> > отображает именно так.
>
> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
> языков веду:)
>
> Но, если честно, то мне еще непонятнее: В nedit это отображается
> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
> просмотре, и при редактировании просто ''. Как выяснить, какой же
> символ в программе. Я всегда думал, что исходный текст есть
> исходный текст, ascii есть ascii. А тут и я, и компилятор в
> затруднении, и неизвестно, какая тулза из богатого инструментария
> *nix может помочь:(
Нет, это просто исходник кривой. Спецсимволы в C положено задавать
с помощью escape-последовательностей (в вашем случае \r). А тулза
есть, sed называется: "sed -e 's/^M/\\r/'" :-)

P.S.: Только ^M с терминала нужно вводить как неинтерпретируемый
спецсимвол: ctrl+V ctrl+M

-- 
 \   / |			           |
 (OvO) |  Michael Ivanov                   |
 (^^^) |      Voice:   +7 (812) 328-1907   |
  \^/  |      E-mail:  ivans@isle.spb.ru   |
  ^ ^  |                                   |



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-05-03 12:30   ` Serge Skorokhodov
  2001-05-03 14:02     ` Sergey Vlasov
  2001-05-03 20:24     ` Michael Ivanov
@ 2001-05-03 21:22     ` Sergei
  2001-05-04  9:50     ` Mikhail Zabaluev
  3 siblings, 0 replies; 18+ messages in thread
From: Sergei @ 2001-05-03 21:22 UTC (permalink / raw)
  To: mandrake-russian

 1 Май 2001 00:59 Вы написали:
> On Mon, 30 Apr 2001 21:16:55 +0400
>
> Michael Ivanov <ivans@isle.spb.ru> wrote:
> > On 30 April 2001 14:11, you wrote:
> >
> >  В одной программе на "двухкрестовом" столкнулся со строчкой,
> >
> > > наподобие следующего отрывка:
> > >
> > > char		buf[BUFSIZ];
> > > // ...
> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> > >                        ^^^^^^^^^^^^^^^^
> >
> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> > отображает именно так.
>
> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
> языков веду:)
>
> Но, если честно, то мне еще непонятнее: В nedit это отображается
> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
> просмотре, и при редактировании просто ''. Как выяснить, какой же
> символ в программе. Я всегда думал, что исходный текст есть
> исходный текст, ascii есть ascii. А тут и я, и компилятор в
> затруднении, и неизвестно, какая тулза из богатого инструментария
> *nix может помочь:(
Попробуйте в mc в режиме просмотра нажать F4 и найти то место, где лежит этот 
символ.

-- 
С уважением, Епифанов Сергей



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [mdk-re] C/C++ question
  2001-05-03 12:30   ` Serge Skorokhodov
                       ` (2 preceding siblings ...)
  2001-05-03 21:22     ` Sergei
@ 2001-05-04  9:50     ` Mikhail Zabaluev
  3 siblings, 0 replies; 18+ messages in thread
From: Mikhail Zabaluev @ 2001-05-04  9:50 UTC (permalink / raw)
  To: mandrake-russian

Hello Serge,

On Tue, May 01, 2001 at 12:59:34AM +0400, Serge Skorokhodov wrote:
>
> On Mon, 30 Apr 2001 21:16:55 +0400
> Michael Ivanov <ivans@isle.spb.ru> wrote:
> 
> > On 30 April 2001 14:11, you wrote:
> > >
> >  В одной программе на "двухкрестовом" столкнулся со строчкой,
> > > наподобие следующего отрывка:
> > >
> > > char		buf[BUFSIZ];
> > > // ...
> > > if ( buf[0] == '\n' || buf[0] == '<cr>' )
> > >                        ^^^^^^^^^^^^^^^^
> > 
> > А это не _один_ символ с кодом '\r'? По крайней мере nedit его
> > отображает именно так.
> 
> Да, а я тут, старый дурень, дискуссии о симантике С-подобных
> языков веду:)
> 
> Но, если честно, то мне еще непонятнее: В nedit это отображается
> '<cr>', в xemacs -- '^M', а мс его вообще не отображает, и при
> просмотре, и при редактировании просто ''. Как выяснить, какой же
> символ в программе. Я всегда думал, что исходный текст есть
> исходный текст, ascii есть ascii. А тут и я, и компилятор в
> затруднении, и неизвестно, какая тулза из богатого инструментария
> *nix может помочь:(

xxd или hexdump :)
\0x0d вообще чужд Unix. Но редакторы, особенно матерые, vi или emacs,
такие символы стараются отображать и редактировать. По крайней мере их
можно удалять :) А насчет исходного текста - я не уверен, что этот
символ вообще разрешено употреблять как он есть в стандарте C.
Пользуйтесь '\r', '\0xd' или '\015'.

-- 
Stay tuned,
  MhZ                                     JID: mookid@jabber.org
___________
F:	When into a room I plunge, I
	Sometimes find some VIOLET FUNGI.
	Then I linger, darkly brooding
	On the poison they're exuding.
		-- The Roguelet's ABC



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Re[2]: [mdk-re] C/C++ question
  2001-05-03 19:12         ` Sergey Vlasov
@ 2001-05-04 19:18           ` Serge Skorokhodov
  2001-05-04 19:22             ` Sergey Vlasov
  0 siblings, 1 reply; 18+ messages in thread
From: Serge Skorokhodov @ 2001-05-04 19:18 UTC (permalink / raw)
  To: mandrake-russian

On Thu, 3 May 2001 19:15:09 +0400
Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:

<skip>

> > SV> А откуда вообще программа с такими символами выползла? Вообще в таких 
> > SV> случаях в C[++] положено писать либо '\r', либо '\015'. А управляющим
> > SV> символам в файле делать нечего.
> > 
> > SV> Если таких мест много, можно сделать, например:
> > 
> > SV>   perl -pi -e 's,\015,\\015,g' file.c
> > 
> > Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
> > ishmail, я ей заинтересовался в связи с nmh (она указана, как
> > совместимый клиент на сайте nmh). Все места в одном файле, так
> > что изменить не сложно:), тем более, что собирается и работает
> > простым "выкомментом".
> 
> Так там все по этому поводу в FAQ написано.
> 
> Я собирался посмотреть, но что-то мне от Motif стало тоскливо. :-(

Нет, у меня с Motif'ом все спокойнь:) А вот с ishmail'ом нет:(

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Re[2]: [mdk-re] C/C++ question
  2001-05-04 19:18           ` Serge Skorokhodov
@ 2001-05-04 19:22             ` Sergey Vlasov
  2001-05-04 20:30               ` Serge Skorokhodov
  0 siblings, 1 reply; 18+ messages in thread
From: Sergey Vlasov @ 2001-05-04 19:22 UTC (permalink / raw)
  To: mandrake-russian

On Fri, 4 May 2001 19:21:48 +0400
Serge Skorokhodov <suralis@pisem.net> wrote:

> On Thu, 3 May 2001 19:15:09 +0400
> Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:
> 
> <skip>
> 
> > > SV> А откуда вообще программа с такими символами выползла? Вообще в
> таких 
> > > SV> случаях в C[++] положено писать либо '\r', либо '\015'. А
> управляющим
> > > SV> символам в файле делать нечего.
> > > 
> > > SV> Если таких мест много, можно сделать, например:
> > > 
> > > SV>   perl -pi -e 's,\015,\\015,g' file.c
> > > 
> > > Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
> > > ishmail, я ей заинтересовался в связи с nmh (она указана, как
> > > совместимый клиент на сайте nmh). Все места в одном файле, так
> > > что изменить не сложно:), тем более, что собирается и работает
> > > простым "выкомментом".
> > 
> > Так там все по этому поводу в FAQ написано.
> > 
> > Я собирался посмотреть, но что-то мне от Motif стало тоскливо. :-(
> 
> Нет, у меня с Motif'ом все спокойнь:) А вот с ishmail'ом нет:(

Нет - это как? После прочтения его FAQ и выполнения предписанных замен все
равно не компилируется? Или другие проблемы?




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Re[2]: [mdk-re] C/C++ question
  2001-05-04 19:22             ` Sergey Vlasov
@ 2001-05-04 20:30               ` Serge Skorokhodov
  2001-05-04 20:38                 ` Sergey Vlasov
  0 siblings, 1 reply; 18+ messages in thread
From: Serge Skorokhodov @ 2001-05-04 20:30 UTC (permalink / raw)
  To: mandrake-russian

On Fri, 4 May 2001 19:25:50 +0400
Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:

> On Fri, 4 May 2001 19:21:48 +0400
> Serge Skorokhodov <suralis@pisem.net> wrote:
> 
> > On Thu, 3 May 2001 19:15:09 +0400
> > Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:
> > 
> > <skip>
> > 
> > > > SV> А откуда вообще программа с такими символами выползла? Вообще в  таких 
> > > > SV> случаях в C[++] положено писать либо '\r', либо '\015'. А управляющим
> > > > SV> символам в файле делать нечего.
> > > > 
> > > > SV> Если таких мест много, можно сделать, например:
> > > > 
> > > > SV>   perl -pi -e 's,\015,\\015,g' file.c
> > > > 
> > > > Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
> > > > ishmail, я ей заинтересовался в связи с nmh (она указана, как
> > > > совместимый клиент на сайте nmh). Все места в одном файле, так
> > > > что изменить не сложно:), тем более, что собирается и работает
> > > > простым "выкомментом".
> > > 
> > > Так там все по этому поводу в FAQ написано.
> > > 
> > > Я собирался посмотреть, но что-то мне от Motif стало тоскливо. :-(
> > 
> > Нет, у меня с Motif'ом все спокойнь:) А вот с ishmail'ом нет:(
> 
> Нет - это как? После прочтения его FAQ и выполнения
> предписанных замен все равно не компилируется? Или другие проблемы?

Да нет, программу-то компилироваться заставить легко. Просто она,
похоже, сыровата еще. Короче -- надо разбираться. Вот и будем
разбираться. А сами знаете как здорово, когда два и более
"мылеров" в одной системе:) Кстати, наверняка в списке много
людей, кто имеет в этом опыт. Для экспериментов с другой
мыльницей лучше всего специального пользователя создать?

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Re[2]: [mdk-re] C/C++ question
  2001-05-04 20:30               ` Serge Skorokhodov
@ 2001-05-04 20:38                 ` Sergey Vlasov
  2001-05-04 23:37                   ` Serge Skorokhodov
  0 siblings, 1 reply; 18+ messages in thread
From: Sergey Vlasov @ 2001-05-04 20:38 UTC (permalink / raw)
  To: mandrake-russian

On Fri, 4 May 2001 20:35:57 +0400
Serge Skorokhodov <suralis@pisem.net> wrote:

> On Fri, 4 May 2001 19:25:50 +0400
> Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:
> 
> > On Fri, 4 May 2001 19:21:48 +0400
> > Serge Skorokhodov <suralis@pisem.net> wrote:
> > 
> > > On Thu, 3 May 2001 19:15:09 +0400
> > > Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:
> > > 
> > > <skip>
> > > 
> > > > > SV> А откуда вообще программа с такими символами выползла?
> Вообще в  таких 
> > > > > SV> случаях в C[++] положено писать либо '\r', либо '\015'. А
> управляющим
> > > > > SV> символам в файле делать нечего.
> > > > > 
> > > > > SV> Если таких мест много, можно сделать, например:
> > > > > 
> > > > > SV>   perl -pi -e 's,\015,\\015,g' file.c
> > > > > 
> > > > > Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
> > > > > ishmail, я ей заинтересовался в связи с nmh (она указана, как
> > > > > совместимый клиент на сайте nmh). Все места в одном файле, так
> > > > > что изменить не сложно:), тем более, что собирается и работает
> > > > > простым "выкомментом".
> > > > 
> > > > Так там все по этому поводу в FAQ написано.
> > > > 
> > > > Я собирался посмотреть, но что-то мне от Motif стало тоскливо. :-(
> > > 
> > > Нет, у меня с Motif'ом все спокойнь:) А вот с ishmail'ом нет:(
> > 
> > Нет - это как? После прочтения его FAQ и выполнения
> > предписанных замен все равно не компилируется? Или другие проблемы?
> 
> Да нет, программу-то компилироваться заставить легко. Просто она,
> похоже, сыровата еще. Короче -- надо разбираться. Вот и будем
> разбираться. А сами знаете как здорово, когда два и более
> "мылеров" в одной системе:) Кстати, наверняка в списке много
> людей, кто имеет в этом опыт. Для экспериментов с другой
> мыльницей лучше всего специального пользователя создать?

Да, видимо, так будет лучше. А то глюков не оберешься. С флагами будет
черт знает что твориться - вроде формат ящика и одинаковый, но прочитанные
письма метятся совершенно разными способами.

Кстати, это чудо по-русски хоть умеет? Как там с кодировками? Если как
обычно, наплевательское отношение, может, и ковыряться не стоит.



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: Re[2]: [mdk-re] C/C++ question
  2001-05-04 20:38                 ` Sergey Vlasov
@ 2001-05-04 23:37                   ` Serge Skorokhodov
  0 siblings, 0 replies; 18+ messages in thread
From: Serge Skorokhodov @ 2001-05-04 23:37 UTC (permalink / raw)
  To: mandrake-russian

On Fri, 4 May 2001 20:41:27 +0400
Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:

> On Fri, 4 May 2001 20:35:57 +0400
> Serge Skorokhodov <suralis@pisem.net> wrote:
> 
> > On Fri, 4 May 2001 19:25:50 +0400
> > Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:
> > 
> > > On Fri, 4 May 2001 19:21:48 +0400
> > > Serge Skorokhodov <suralis@pisem.net> wrote:
> > > 
> > > > On Thu, 3 May 2001 19:15:09 +0400
> > > > Sergey Vlasov <vsu@mivlgu.murom.ru> wrote:
> > > > 
> > > > <skip>
> > > > 
> > > > > > SV> А откуда вообще программа с такими символами выползла? Вообще в  таких 
> > > > > > SV> случаях в C[++] положено писать либо '\r', либо '\015'. А управляющим
> > > > > > SV> символам в файле делать нечего.
> > > > > > 
> > > > > > SV> Если таких мест много, можно сделать, например:
> > > > > > 
> > > > > > SV>   perl -pi -e 's,\015,\\015,g' file.c
> > > > > > 
> > > > > > Спасибо, я просто дешево купился на '<cr>' в nedit:) Программа
> > > > > > ishmail, я ей заинтересовался в связи с nmh (она указана, как
> > > > > > совместимый клиент на сайте nmh). Все места в одном файле, так
> > > > > > что изменить не сложно:), тем более, что собирается и работает
> > > > > > простым "выкомментом".
> > > > > 
> > > > > Так там все по этому поводу в FAQ написано.
> > > > > 
> > > > > Я собирался посмотреть, но что-то мне от Motif стало тоскливо. :-(
> > > > 
> > > > Нет, у меня с Motif'ом все спокойнь:) А вот с ishmail'ом нет:(
> > > 
> > > Нет - это как? После прочтения его FAQ и выполнения
> > > предписанных замен все равно не компилируется? Или другие проблемы?
> > 
> > Да нет, программу-то компилироваться заставить легко. Просто она,
> > похоже, сыровата еще. Короче -- надо разбираться. Вот и будем
> > разбираться. А сами знаете как здорово, когда два и более
> > "мылеров" в одной системе:) Кстати, наверняка в списке много
> > людей, кто имеет в этом опыт. Для экспериментов с другой
> > мыльницей лучше всего специального пользователя создать?
> 
> Да, видимо, так будет лучше. А то глюков не оберешься. С флагами будет
> черт знает что твориться - вроде формат ящика и одинаковый, но
> прочитанные письма метятся совершенно разными способами.
> 
> Кстати, это чудо по-русски хоть умеет? Как там с кодировками? Если как
> обычно, наплевательское отношение, может, и ковыряться не
> стоит.

По-настоящему не смотрел. Но мне показалось, что среди
мейнтейнеров есть "наши люди". Так что надежда есть. 

-- 
Serge Skorokhodov aka suralis
mailto:suralis@pisem.net



^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2001-05-04 23:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-30 14:09 [mdk-re] C/C++ question Serge Skorokhodov
2001-04-30 14:28 ` Egor Azanov
2001-04-30 18:27   ` Serge Skorokhodov
2001-04-30 17:51 ` Andrei Gerasimenko
2001-04-30 20:28   ` Serge Skorokhodov
2001-04-30 21:28 ` Michael Ivanov
2001-05-03 12:30   ` Serge Skorokhodov
2001-05-03 14:02     ` Sergey Vlasov
2001-05-03 15:54       ` Re[2]: " Serge Skorokhodov
2001-05-03 19:12         ` Sergey Vlasov
2001-05-04 19:18           ` Serge Skorokhodov
2001-05-04 19:22             ` Sergey Vlasov
2001-05-04 20:30               ` Serge Skorokhodov
2001-05-04 20:38                 ` Sergey Vlasov
2001-05-04 23:37                   ` Serge Skorokhodov
2001-05-03 20:24     ` Michael Ivanov
2001-05-03 21:22     ` Sergei
2001-05-04  9:50     ` Mikhail Zabaluev

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git