Перейти к содержанию
    

Список желаемых доработок форума

Попробую код внутрь спойлера вставить:

	// 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();
	}
	}
	}
	

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все равно не работает: жабоскрипт ломает все форматирование исходного кода: хоть ты его вставляй в теги через ctrl+c, хоть средней кнопкой мыши!

Вроде бы раньше этого бага не было, форматирование не ломалось.

Если отключить жабоскрипт, вообще невозможно ничего сделать.

 

И да, неправильно работает режим редактирования: там уже содержимое тегов отображается как веб. А должно отображаться натурально: чтобы все теги было видно и можно было нормально править. Скажем, я не смог добавить текст к предыдущему сообщению!

 

Почему нельзя форму ввода сообщения сделать обычной веб-формой ввода текста? Зачем эти жабоскриптовские извращения??? Ввел текст, нажал `Save`, оно "улетело". Для любителей кнопочки потыкать можно было бы менюшку сделать, которая автоматом вставляла бы теги.

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 10.06.2022 в 14:49, makc сказал:

Сначала вставляем тег спойлера, в него вставляем код, далее в код вставляем текст. Попробуйте так.

Да, так все норм. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, Eddy_Em сказал:

Все равно не работает: жабоскрипт ломает все форматирование исходного кода: хоть ты его вставляй в теги через ctrl+c, хоть средней кнопкой мыши!

Ctrl-C это копирование в буфер, средняя кнопка это вставка. Вы определитесь что именно вы делаете, где и опишите это всё по шагам с примерами. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/10/2022 at 2:58 PM, makc said:

Ctrl-C это копирование в буфер, средняя кнопка это вставка.

Тьфу, ctrl+v, естественно — вставить из клавиатурного буфера. А вставка из мышиного буфера - средней кнопкой мыши.

Я и так, и эдак пробовал.

Можете воспроизвести: открываете окошко ввода сообщения, пишете ручками тег spoiler, внутри пишете ручками тег code, а потом внутрь этого пытаетесь вставить код. Ничего не получается: форматирование напрочь ломается!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 отсюда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверка

 
	/**
	* @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;
	}
	}
	 
	

место для текста

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, Eddy_Em сказал:

Повторю MWE:

1. Открываем форму для вставки сообщения.

2. Вводим текст [ spoiler ] [ code ] [ / code ] [ / spoiler ] (теги в MWE ввести не могу по понятным причинам).

3. Между тегами [ code ] [ / code ] вставляем код.

Я делаю всё то же самое с точностью до размещения тегов. У меня каждый тег на своей строке и всё получается правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, не знаю, как это у вас получается. Если я пытаюсь в форму для ввода любой текст с форматированием вставить, форматирование ломается. Текст вставляется с широкими промежутками - как будто каждую строчку заключают в тег <p></p>.

Могу даже скринкаст записать ☺

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вставляю через Ctrl-Shift-V и перед отправкой выглядит всё так:

Спойлер

1172896543_.thumb.png.3e3d9d81aa4520789d1fa32eaded137b.png



Получается:

 
#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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Eddy_Em

Почему нельзя форму ввода сообщения сделать обычной веб-формой ввода текста? Зачем эти жабоскриптовские извращения??? Ввел текст, нажал `Save`, оно "улетело". Для любителей кнопочки потыкать можно было бы менюшку сделать, которая автоматом вставляла бы теги.

_

Вот никак не получается донести до админа, что эта херь не работает. Просто какой-то звиздец на ровном месте, иной раз сообщение писать неохота.

_

makc

_

Ну не работает этот движок, пожалуйста смените на вменяемый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ОК, записываю видео: вот оно!

 
	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;
	}
	}
	 
	
Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, petrov сказал:

Ну не работает этот движок, пожалуйста смените на вменяемый.

Напишите инструкцию как это сделать и мы сразу же займёмся этой задачей.

4 минуты назад, Eddy_Em сказал:

ОК, записываю спойлер!

Запустите браузер в safemode и повторите тот же самый эксперимент. Судя по внешнему виду браузера вы над ним крепко поработали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В сети же полным-полно примеров, как сделать форму для ввода текста. А по нажатию submit содержимое отправляется в обработчик POST/GET запросом!

Ну так я и в chrome проверял! А там почти ничего нет, кроме adblock, stylish и ublock…

Изменено пользователем Eddy_Em

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Eddy_Em сказал:

В сети же полным-полно примеров, как сделать форму для ввода текста. А по нажатию submit содержимое отправляется в обработчик POST/GET запросом!

Конечно полно, только они оторваны от контекста движка данного форума. Дайте ссылку на способ замены стандартного редактора на примитивный, какой вам так нравится и тогда можно будет продолжить разговор на эту тему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...