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: 551
			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/raw.php
Line Number: 2
	Backtrace:
	
		
	
		
	
		
	
		
			
			File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/raw.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: 558
			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;
}