forked from KolibriOS/kolibrios
Shell version 0.6.2
git-svn-id: svn://kolibrios.org@3268 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7eb55c9625
commit
2a7660964a
@ -1,4 +1,9 @@
|
||||
|
||||
Shell 0.6.2 // 24.02.2013 // Albom
|
||||
* „®¡ ¢«¥ ®¡à ¡®âª ã¯à ¢«ïîé¨å ᨬ¢®«®¢ (\n, \t, \", \', \\, \?)
|
||||
* Œ¥«ª¨¥ ¨á¯à ¢«¥¨ï
|
||||
|
||||
|
||||
Shell 0.6.1 // 17.02.2013 // Albom
|
||||
* <20>à®áâ ï ®¡à ¡®âª ®è¨¡®ª ¢ãâà¥¨å ª®¬ ¤
|
||||
* Š®¬ ¤ killall âà áä®à¬¨à®¢ ¢ ¯ à ¬¥âà all ª®¬ ¤ë kill
|
||||
|
@ -11,3 +11,4 @@ Shell %s\n\r\n\r\
|
||||
printf(message, SHELL_VERSION);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -17,3 +17,4 @@ if ( ( 0 != result ) && ( -1 != result ) )
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -52,3 +52,4 @@ else
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -4,3 +4,4 @@ int cmd_clear(char param[])
|
||||
con_cls();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
#define SHELL_VERSION "0.6"
|
||||
#define SHELL_VERSION "0.6.2"
|
||||
|
||||
extern char PATH[256];
|
||||
extern char PARAM[256];
|
||||
|
@ -20,6 +20,39 @@ for (i = 0; i < param_len; i++)
|
||||
{
|
||||
switch (param[i])
|
||||
{
|
||||
|
||||
case '\\':
|
||||
if (param[i+1]!='\0')
|
||||
{
|
||||
switch(param[i+1])
|
||||
{
|
||||
|
||||
case 'n':
|
||||
argv[argc-1][argv_len] = '\n';
|
||||
argv_len++;
|
||||
i++;
|
||||
break;
|
||||
|
||||
case 't':
|
||||
argv[argc-1][argv_len] = '\t';
|
||||
argv_len++;
|
||||
i++;
|
||||
|
||||
case '\\':
|
||||
case '\'':
|
||||
case '"':
|
||||
case '?':
|
||||
argv[argc-1][argv_len] = param[i+1];
|
||||
argv_len++;
|
||||
i++;
|
||||
break;
|
||||
|
||||
default:
|
||||
i++;
|
||||
};
|
||||
}
|
||||
break;
|
||||
|
||||
case '"':
|
||||
if (quote == 0)
|
||||
quote = 1;
|
||||
@ -62,6 +95,7 @@ for (i = 0; i < param_len; i++)
|
||||
argv[argc-1][argv_len] = param[i];
|
||||
argv_len++;
|
||||
break;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,5 @@ void alias_list();
|
||||
int parameters_prepare(char *param, char* argv[]);
|
||||
void parameters_free(int argc, char* argv[]);
|
||||
|
||||
void print_error(void);
|
||||
|
||||
/// ===========================================================
|
||||
|
||||
|
@ -4,10 +4,10 @@
|
||||
|
||||
#include "program_console.h"
|
||||
|
||||
char *buffer; // используется только одна именованная область, поэтому можно сделать её глобальной переменной
|
||||
char name[32]; // имя нужно как для создания области, так и для удаления, поэтому можно сделать её глобальной переменной
|
||||
char *buffer; // ¨á¯®«ì§ã¥âáï ⮫쪮 ®¤ ¨¬¥®¢ ï ®¡« áâì, ¯®í⮬㠬®¦® ᤥ« âì ¥ñ £«®¡ «ì®© ¯¥à¥¬¥®©
|
||||
char name[32]; // ¨¬ï 㦮 ª ª ¤«ï ᮧ¤ ¨ï ®¡« áâ¨, â ª ¨ ¤«ï 㤠«¥¨ï, ¯®í⮬㠬®¦® ᤥ« âì ¥ñ £«®¡ «ì®© ¯¥à¥¬¥®©
|
||||
|
||||
int sc_init() // инициализация - создание именованной области
|
||||
int sc_init() // ¨¨æ¨ «¨§ æ¨ï - ᮧ¤ ¨¥ ¨¬¥®¢ ®© ®¡« áâ¨
|
||||
{
|
||||
|
||||
char *buf1k;
|
||||
@ -19,15 +19,15 @@ buf1k = malloc(1024);
|
||||
if (NULL == buf1k)
|
||||
return -1;
|
||||
|
||||
kol_process_info(-1, buf1k); // получаем СВОЙ (-1) идентификатор процесса
|
||||
kol_process_info(-1, buf1k); // ¯®«ãç ¥¬ ‘‚Ž‰ (-1) ¨¤¥â¨ä¨ª â®à ¯à®æ¥áá
|
||||
PID = *(buf1k+30);
|
||||
free(buf1k);
|
||||
|
||||
itoa(PID, name); // формируем из номера процесса строку с заглавными нулями 42 -> 0042 (т.е. до 9999)
|
||||
itoa(PID, name); // ä®à¬¨à㥬 ¨§ ®¬¥à ¯à®æ¥áá áâபã
|
||||
strcat(name, "-SHELL");
|
||||
|
||||
*buffer = NULL;
|
||||
result = kol_buffer_open(name, SHM_OPEN_ALWAYS | SHM_WRITE, 1024*16, &buffer); // создаём область (16 кил)
|
||||
result = kol_buffer_open(name, SHM_OPEN_ALWAYS | SHM_WRITE, 1024*16, &buffer); // ᮧ¤ ñ¬ ®¡« áâì (16 ª¡ ©â)
|
||||
|
||||
return result;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user