Eddy_Em 2 June 10, 2022 Posted June 10, 2022 · Report post Попробую код внутрь спойлера вставить: // count steps @tim 14/15/16 void addmicrostep(uint8_t i){ static volatile uint16_t microsteps[MOTORSNO] = {0}; // current microsteps position if(esw_block(i)) stopflag[i] = 1; // turn on stop flag if end-switch was active if(++microsteps[i] == the_conf.microsteps[i]){ microsteps[i] = 0; stppos[i] += motdir[i]; uint8_t stop_at_pos = 0; if(motdir[i] > 0){ if(stppos[i] >= targstppos[i]){ // reached stop position stop_at_pos = 1; } }else{ if(stppos[i] <= targstppos[i]){ stop_at_pos = 1; } } if(stopflag[i] || stop_at_pos){ // stop NOW if(stopflag[i]) targstppos[i] = stppos[i]; // keep position (for keep flag) stopflag[i] = 0; mottimers[i]->CR1 &= ~TIM_CR1_CEN; // stop timer if(the_conf.motflags[i].donthold) MOTOR_DIS(i); // turn off power if(stallflags[i] == STALL_STOP){ stallflags[i] = STALL_NO; state[i] = STP_STALL; }else state[i] = STP_RELAX; SEND("MOTOR"); bufputchar('0'+i); SEND(" stop @"); printi(stppos[i]); newline(); } } } Quote Share this post Link to post Share on other sites More sharing options...
Eddy_Em 2 June 10, 2022 Posted June 10, 2022 (edited) · Report post Все равно не работает: жабоскрипт ломает все форматирование исходного кода: хоть ты его вставляй в теги через ctrl+c, хоть средней кнопкой мыши! Вроде бы раньше этого бага не было, форматирование не ломалось. Если отключить жабоскрипт, вообще невозможно ничего сделать. И да, неправильно работает режим редактирования: там уже содержимое тегов отображается как веб. А должно отображаться натурально: чтобы все теги было видно и можно было нормально править. Скажем, я не смог добавить текст к предыдущему сообщению! Почему нельзя форму ввода сообщения сделать обычной веб-формой ввода текста? Зачем эти жабоскриптовские извращения??? Ввел текст, нажал `Save`, оно "улетело". Для любителей кнопочки потыкать можно было бы менюшку сделать, которая автоматом вставляла бы теги. Edited June 10, 2022 by Eddy_Em Quote Share this post Link to post Share on other sites More sharing options...
k155la3 27 June 10, 2022 Posted June 10, 2022 · Report post В 10.06.2022 в 14:49, makc сказал: Сначала вставляем тег спойлера, в него вставляем код, далее в код вставляем текст. Попробуйте так. Да, так все норм. Спасибо. Quote Share this post Link to post Share on other sites More sharing options...
makc 354 June 10, 2022 Posted June 10, 2022 · Report post 4 минуты назад, Eddy_Em сказал: Все равно не работает: жабоскрипт ломает все форматирование исходного кода: хоть ты его вставляй в теги через ctrl+c, хоть средней кнопкой мыши! Ctrl-C это копирование в буфер, средняя кнопка это вставка. Вы определитесь что именно вы делаете, где и опишите это всё по шагам с примерами. Quote Share this post Link to post Share on other sites More sharing options...
Eddy_Em 2 June 10, 2022 Posted June 10, 2022 · Report post On 6/10/2022 at 2:58 PM, makc said: Ctrl-C это копирование в буфер, средняя кнопка это вставка. Тьфу, ctrl+v, естественно — вставить из клавиатурного буфера. А вставка из мышиного буфера - средней кнопкой мыши. Я и так, и эдак пробовал. Можете воспроизвести: открываете окошко ввода сообщения, пишете ручками тег spoiler, внутри пишете ручками тег code, а потом внутрь этого пытаетесь вставить код. Ничего не получается: форматирование напрочь ломается! Quote Share this post Link to post Share on other sites More sharing options...
makc 354 June 10, 2022 Posted June 10, 2022 · Report post 13 минут назад, Eddy_Em сказал: Тьфу, ctrl+v, естественно — вставить из клавиатурного буфера. А вставка из мышиного буфера - средней кнопкой мыши. Ок. С этим разобрались. Вставлял по Ctrl-Shift-V #include <stdio.h> int main() { // printf() displays the string inside quotation printf("Hello, World!"); return 0; } Ещё пример: #include <sys/signalfd.h> #include <signal.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> #define handle_error(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) int main(int argc, char *argv[]) { sigset_t mask; int sfd; struct signalfd_siginfo fdsi; ssize_t s; sigemptyset(&mask); sigaddset(&mask, SIGINT); sigaddset(&mask, SIGQUIT); /* Block signals so that they aren't handled according to their default dispositions. */ if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1) handle_error("sigprocmask"); sfd = signalfd(-1, &mask, 0); if (sfd == -1) handle_error("signalfd"); for (;;) { s = read(sfd, &fdsi, sizeof(fdsi)); if (s != sizeof(fdsi)) handle_error("read"); if (fdsi.ssi_signo == SIGINT) { printf("Got SIGINT\n"); } else if (fdsi.ssi_signo == SIGQUIT) { printf("Got SIGQUIT\n"); exit(EXIT_SUCCESS); } else { printf("Read unexpected signal\n"); } } } Ctrl-C + Ctrl-V отсюда. Quote Share this post Link to post Share on other sites More sharing options...
Eddy_Em 2 June 10, 2022 Posted June 10, 2022 · Report post Проверка /** * @brief cmd_parser - command parsing * @param txt - buffer with commands & data (will be broken by this function!) * Common commands format: command [[N]=I], where * command - one of `command` from `cmdlist` * N - optional parameter (0..255) * I - value (int32_t), need for setter * Special commands format: s_command [text], where * s_command - one of `spec_cmdlist` * text - optional list of arguments */ void cmd_parser(char *txt){ char cmd[32], *pcmd = cmd; int i = 0; char *eptr = omit_spaces(txt); if(!*eptr) return; while(*eptr && i < 30){ if(*eptr < 'a' || *eptr > 'z') break; *pcmd++ = *eptr++; ++i; } *pcmd = 0; if(cmd[0] == 0){ // empty command showHelp(); return; } if(eptr && *eptr){ eptr = omit_spaces(eptr); } // find command const commands *c = textcommands; while(c->command){ if(0 == cmpstr(c->command, cmd)){ #ifdef EBUG SEND("Find known command: "); SEND(cmd); if(eptr && *eptr) SEND(", args: "); SEND(eptr); NL(); #endif if(c->cmd_code < 0){ // USB-only command speccmdlist[-(c->cmd_code)](eptr); }else{ // common command uint8_t par = CANMESG_NOPAR; int32_t val = 0; if(eptr && *eptr){ char *nxt = getnum(eptr, &val); if(nxt && nxt != eptr){ // command has parameter? if(val < 0 || val >= CANMESG_NOPAR){ SEND("Command parameter should be 0..126!"); NL(); return; } par = (uint8_t)val; }else nxt = eptr; eptr = getchr(nxt, '='); if(eptr){ // command has value? eptr = omit_spaces(eptr + 1); nxt = getnum(eptr, &val); if(nxt != eptr){ par |= 0x80; // setter } } } // here we got command & ppar/pval -> call CMD errcodes retcode = cmdlist[c->cmd_code](par, &val); SEND(cmd); par &= 0x7f; if(par != CANMESG_NOPAR) printu(par); bufputchar('='); printi(val); SEND(" ("); printuhex((uint32_t)val); bufputchar(')'); if(ERR_OK != retcode){ SEND("\nERRCODE="); printu(retcode); } } NL(); return; } ++c; } showHelp(); } Не работает, как и раньше. Я уж не знаю, чего там у вас, у меня firefox 100.0.2 на Gentoo, из нужных жабоскриптов (форум и яндекс) оба разрешены. Может, в настройках форума какие-то "галочки" есть? Повторю MWE: 1. Открываем форму для вставки сообщения. 2. Вводим текст [ spoiler ] [ code ] [ / code ] [ / spoiler ] (теги в MWE ввести не могу по понятным причинам). 3. Между тегами [ code ] [ / code ] вставляем код. Проверю-ка я и в хроме. Кстати, здесь форма по-другому выглядит: в firefox у меня все поля кнопок текстом подписаны, а в chrome - рисунками помечены. static void showHelp(){ SEND("https://github.com/eddyem/stm32samples/tree/master/F0-nolib/3steppersLB build#" BUILD_NUMBER " @ " BUILD_DATE "\n"); SEND("Common commands format is cmd[ N[ = val]]\n\twhere N is command argument (0..127), val is its value\n"); //SEND("Commands list:\n"); const commands *cmd = textcommands; while(cmd->command){ if(*cmd->command){ bufputchar('\t'); SEND(cmd->command); SEND(" - "); } SEND(cmd->help); newline(); ++cmd; } } место для текста Quote Share this post Link to post Share on other sites More sharing options...
makc 354 June 10, 2022 Posted June 10, 2022 · Report post 8 минут назад, Eddy_Em сказал: Повторю MWE: 1. Открываем форму для вставки сообщения. 2. Вводим текст [ spoiler ] [ code ] [ / code ] [ / spoiler ] (теги в MWE ввести не могу по понятным причинам). 3. Между тегами [ code ] [ / code ] вставляем код. Я делаю всё то же самое с точностью до размещения тегов. У меня каждый тег на своей строке и всё получается правильно. Quote Share this post Link to post Share on other sites More sharing options...
Eddy_Em 2 June 10, 2022 Posted June 10, 2022 (edited) · Report post Ну, не знаю, как это у вас получается. Если я пытаюсь в форму для ввода любой текст с форматированием вставить, форматирование ломается. Текст вставляется с широкими промежутками - как будто каждую строчку заключают в тег <p></p>. Могу даже скринкаст записать ☺ Edited June 10, 2022 by Eddy_Em Quote Share this post Link to post Share on other sites More sharing options...
makc 354 June 10, 2022 Posted June 10, 2022 · Report post Я вставляю через Ctrl-Shift-V и перед отправкой выглядит всё так: Спойлер Получается: #include <stdio.h> int main() { FILE *fp; int c; // open the current input file fp = fopen(__FILE__,"r"); do { c = getc(fp); // read character putchar(c); // display character } while(c != EOF); // loop until the end of file is reached fclose(fp); return 0; } Браузер: Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0 Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye Quote Share this post Link to post Share on other sites More sharing options...
petrov 17 June 10, 2022 Posted June 10, 2022 · Report post Eddy_Em Почему нельзя форму ввода сообщения сделать обычной веб-формой ввода текста? Зачем эти жабоскриптовские извращения??? Ввел текст, нажал `Save`, оно "улетело". Для любителей кнопочки потыкать можно было бы менюшку сделать, которая автоматом вставляла бы теги. _ Вот никак не получается донести до админа, что эта херь не работает. Просто какой-то звиздец на ровном месте, иной раз сообщение писать неохота. _ makc _ Ну не работает этот движок, пожалуйста смените на вменяемый. Quote Share this post Link to post Share on other sites More sharing options...
Eddy_Em 2 June 10, 2022 Posted June 10, 2022 (edited) · Report post ОК, записываю видео: вот оно! static void showHelp(){ SEND("https://github.com/eddyem/stm32samples/tree/master/F0-nolib/3steppersLB build#" BUILD_NUMBER " @ " BUILD_DATE "\n"); SEND("Common commands format is cmd[ N[ = val]]\n\twhere N is command argument (0..127), val is its value\n"); //SEND("Commands list:\n"); const commands *cmd = textcommands; while(cmd->command){ if(*cmd->command){ bufputchar('\t'); SEND(cmd->command); SEND(" - "); } SEND(cmd->help); newline(); ++cmd; } } Edited June 10, 2022 by Eddy_Em Quote Share this post Link to post Share on other sites More sharing options...
makc 354 June 10, 2022 Posted June 10, 2022 · Report post 1 минуту назад, petrov сказал: Ну не работает этот движок, пожалуйста смените на вменяемый. Напишите инструкцию как это сделать и мы сразу же займёмся этой задачей. 4 минуты назад, Eddy_Em сказал: ОК, записываю спойлер! Запустите браузер в safemode и повторите тот же самый эксперимент. Судя по внешнему виду браузера вы над ним крепко поработали. Quote Share this post Link to post Share on other sites More sharing options...
Eddy_Em 2 June 10, 2022 Posted June 10, 2022 (edited) · Report post В сети же полным-полно примеров, как сделать форму для ввода текста. А по нажатию submit содержимое отправляется в обработчик POST/GET запросом! Ну так я и в chrome проверял! А там почти ничего нет, кроме adblock, stylish и ublock… Edited June 10, 2022 by Eddy_Em Quote Share this post Link to post Share on other sites More sharing options...
makc 354 June 10, 2022 Posted June 10, 2022 · Report post 2 минуты назад, Eddy_Em сказал: В сети же полным-полно примеров, как сделать форму для ввода текста. А по нажатию submit содержимое отправляется в обработчик POST/GET запросом! Конечно полно, только они оторваны от контекста движка данного форума. Дайте ссылку на способ замены стандартного редактора на примитивный, какой вам так нравится и тогда можно будет продолжить разговор на эту тему. Quote Share this post Link to post Share on other sites More sharing options...