A PHP Error was encountered
Severity: 8192
Message: Function create_function() is deprecated
Filename: geshi/geshi.php
Line Number: 4698
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4698
Function: _error_handler
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4621
Function: _optimize_regexp_list_tokens_to_string
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 1655
Function: optimize_regexp_list
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2029
Function: optimize_keyword_group
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2168
Function: build_parse_cache
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/Process.php
Line: 45
Function: parse_code
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/models/Pastes.php
Line: 517
Function: syntax
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 624
Function: getPaste
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)
Filename: view/download.php
Line Number: 2
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 2
Function: header
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)
Filename: view/download.php
Line Number: 3
Backtrace:
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 3
Function: header
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view
File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once
#include "DoubleLinkedList.h"
// инициализация двусвязного списка
void InitDList(DList *L) {
L->left = NULL;
L->right = NULL;
L->ptr = NULL;
DListError = DListEmpty;
}
// включить элемент в список перед рабочим указателем
void PrevPutDList(DList *L, BaseType E) {
PtrEl next = NULL; // сохранение следующего значения
PtrEl prev = NULL; // сохранение предыдущего значения
PtrEl NewEl = new elementDList [1];
// если не получилось выделить память
if (NewEl == NULL) {
DListError = DListNotMem;
return;
}
// если список пуст, то нужно указатели на левую и правую часть
// списка переназначить на новый элемент
if (EmptyDList(L)) {
L->left = NewEl;
L->right = L->left;
L->ptr = L->left;
} else {
next = L->ptr; // запомнить текущий элемнент
prev = L->ptr->prev; // запомнить указатель на предыдущий элемент
L->ptr->prev = NewEl;
L->ptr = NewEl;
if (BeginDList(L)) {
L->left = L->ptr;
} else {
prev->next = NewEl;
}
}
L->ptr->next = next;
L->ptr->prev = prev;
L->ptr->data = E;
DListError = DListOk;
}
// включить элемент в список после рабочего указателя
void NextPutDList(DList *L, BaseType E) {
PtrEl next = NULL;
PtrEl prev = NULL;
PtrEl NewEl = new elementDList [1];
if (NewEl == NULL) {
DListError = DListNotMem;
return;
}
if (EmptyDList(L)) {
L->left = NewEl;
L->right = L->left;
L->ptr = L->left;
} else {
next = L->ptr->next;
prev = L->ptr;
L->ptr->next = NewEl;
L->ptr = NewEl;
if (EndDList(L)) {
L->right = NewEl;
} else {
next->prev = NewEl;
}
}
L->ptr->next = next;
L->ptr->prev = prev;
L->ptr->data = E;
DListError = DListOk;
}
// исключить элемент из списка до указателя
void PrevGetDList(DList *L, BaseType *E) {
if (EmptyDList(L)) {
return;
}
ReadDList(L, E);
if (L->left == L->right && L->left == L->ptr) {
*E = L->ptr->data;
delete L->ptr;
L->ptr = NULL;
L->left = NULL;
L->right = NULL;
return;
}
if (BeginDList(L)) {
return;
} else {
*E = L->ptr->prev->data;
if (L->ptr->prev->prev) {
PtrEl pntr = L->ptr->prev;
delete L->ptr->prev;
L->ptr->prev = pntr->prev;
pntr->prev->next = L->ptr;
} else {
L->left = L->ptr;
delete L->ptr->prev;
L->ptr->prev = NULL;
}
}
}
// исключить элемент из списка после указателя
void NextGetDList(DList *L, BaseType *E) {
if (EmptyDList(L)) {
return;
}
if (L->left == L->right && L->left == L->ptr) {
*E = L->ptr->data;
delete L->ptr;
L->ptr = NULL;
L->left = NULL;
L->right = NULL;
return;
}
if (EndDList(L)) {
return;
} else {
*E = L->ptr->next->data;
if (L->ptr->next->next) {
PtrEl pntr = L->ptr->next->next;
delete L->ptr->next;
L->ptr->next = pntr;
L->ptr->next->prev = L->ptr;
} else {
L->right = L->ptr;
delete L->ptr->next;
L->ptr->next = NULL;
}
}
}
// прочитать текущий элемент из списка
void ReadDList(DList *L, BaseType *E) {
if (EmptyDList(L)) {
return;
}
*E = L->ptr->data;
}
// удалить список
void DoneDList(DList *L) {
BeginPtrDList(L);
BaseType e;
while (!EmptyDList(L)) {
NextGetDList(L, &e);
}
NextGetDList(L, &e);
}
// передвинуть указатель вперед
void NextMoveDList(DList *L) {
if (!EndDList(L)) {
L->ptr = L->ptr->next;
}
}
// передвинуть указатель назад
void PrevMoveDList(DList *L) {
if (!BeginDList(L)) {
L->ptr = L->ptr->prev;
}
}
// проверить, пуст ли список
int EmptyDList(DList *L) {
if (!L->left && !L->right) {
DListError = DListEmpty;
return 1;
}
return 0;
}
// проверить, на начале ли списка установлен рабочий указатель
int BeginDList(DList *L) {
if (EmptyDList(L) || !L->ptr->prev) {
DListError = DListBegin;
return 1;
}
return 0;
}
// проверить, в конце ли списка установлен рабочий указатель
int EndDList(DList *L) {
if (EmptyDList(L) || !L->ptr->next) {
DListError = DListEnd;
return 1;
}
return 0;
}
// установить указатель в начало
void BeginPtrDList(DList *L) {
L->ptr = L->left;
BeginDList(L);
}
// установить указатель в конец
void EndPtrDList(DList *L) {
L->ptr = L->right;
EndDList(L);
}
// получить последнюю ошибку списка
int GetLastErrorDList() {
return DListError;
}