Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба Попробую код внутрь спойлера вставить: // 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(); } } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 (изменено) · Жалоба Все равно не работает: жабоскрипт ломает все форматирование исходного кода: хоть ты его вставляй в теги через ctrl+c, хоть средней кнопкой мыши! Вроде бы раньше этого бага не было, форматирование не ломалось. Если отключить жабоскрипт, вообще невозможно ничего сделать. И да, неправильно работает режим редактирования: там уже содержимое тегов отображается как веб. А должно отображаться натурально: чтобы все теги было видно и можно было нормально править. Скажем, я не смог добавить текст к предыдущему сообщению! Почему нельзя форму ввода сообщения сделать обычной веб-формой ввода текста? Зачем эти жабоскриптовские извращения??? Ввел текст, нажал `Save`, оно "улетело". Для любителей кнопочки потыкать можно было бы менюшку сделать, которая автоматом вставляла бы теги. Изменено 10 июня, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба В 10.06.2022 в 14:49, makc сказал: Сначала вставляем тег спойлера, в него вставляем код, далее в код вставляем текст. Попробуйте так. Да, так все норм. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба 4 минуты назад, Eddy_Em сказал: Все равно не работает: жабоскрипт ломает все форматирование исходного кода: хоть ты его вставляй в теги через ctrl+c, хоть средней кнопкой мыши! Ctrl-C это копирование в буфер, средняя кнопка это вставка. Вы определитесь что именно вы делаете, где и опишите это всё по шагам с примерами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба On 6/10/2022 at 2:58 PM, makc said: Ctrl-C это копирование в буфер, средняя кнопка это вставка. Тьфу, ctrl+v, естественно — вставить из клавиатурного буфера. А вставка из мышиного буфера - средней кнопкой мыши. Я и так, и эдак пробовал. Можете воспроизвести: открываете окошко ввода сообщения, пишете ручками тег spoiler, внутри пишете ручками тег code, а потом внутрь этого пытаетесь вставить код. Ничего не получается: форматирование напрочь ломается! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба 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 отсюда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба Проверка /** * @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; } } место для текста Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба 8 минут назад, Eddy_Em сказал: Повторю MWE: 1. Открываем форму для вставки сообщения. 2. Вводим текст [ spoiler ] [ code ] [ / code ] [ / spoiler ] (теги в MWE ввести не могу по понятным причинам). 3. Между тегами [ code ] [ / code ] вставляем код. Я делаю всё то же самое с точностью до размещения тегов. У меня каждый тег на своей строке и всё получается правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 (изменено) · Жалоба Ну, не знаю, как это у вас получается. Если я пытаюсь в форму для ввода любой текст с форматированием вставить, форматирование ломается. Текст вставляется с широкими промежутками - как будто каждую строчку заключают в тег <p></p>. Могу даже скринкаст записать ☺ Изменено 10 июня, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба Я вставляю через 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба Eddy_Em Почему нельзя форму ввода сообщения сделать обычной веб-формой ввода текста? Зачем эти жабоскриптовские извращения??? Ввел текст, нажал `Save`, оно "улетело". Для любителей кнопочки потыкать можно было бы менюшку сделать, которая автоматом вставляла бы теги. _ Вот никак не получается донести до админа, что эта херь не работает. Просто какой-то звиздец на ровном месте, иной раз сообщение писать неохота. _ makc _ Ну не работает этот движок, пожалуйста смените на вменяемый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 (изменено) · Жалоба ОК, записываю видео: вот оно! 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; } } Изменено 10 июня, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба 1 минуту назад, petrov сказал: Ну не работает этот движок, пожалуйста смените на вменяемый. Напишите инструкцию как это сделать и мы сразу же займёмся этой задачей. 4 минуты назад, Eddy_Em сказал: ОК, записываю спойлер! Запустите браузер в safemode и повторите тот же самый эксперимент. Судя по внешнему виду браузера вы над ним крепко поработали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 10 июня, 2022 Опубликовано 10 июня, 2022 (изменено) · Жалоба В сети же полным-полно примеров, как сделать форму для ввода текста. А по нажатию submit содержимое отправляется в обработчик POST/GET запросом! Ну так я и в chrome проверял! А там почти ничего нет, кроме adblock, stylish и ublock… Изменено 10 июня, 2022 пользователем Eddy_Em Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 192 10 июня, 2022 Опубликовано 10 июня, 2022 · Жалоба 2 минуты назад, Eddy_Em сказал: В сети же полным-полно примеров, как сделать форму для ввода текста. А по нажатию submit содержимое отправляется в обработчик POST/GET запросом! Конечно полно, только они оторваны от контекста движка данного форума. Дайте ссылку на способ замены стандартного редактора на примитивный, какой вам так нравится и тогда можно будет продолжить разговор на эту тему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться