string askForFilename(string defFilename) {
	WINDOW* dialog;
	FORM* form;
	FIELD* fields[2];
	int key;
	
	//tworzymy formularz
	fields[0] = new_field(1, 26, 0, 0, 0, 0);
	fields[1] = 0;
	set_field_type(fields[0], TYPE_ALNUM, 50);
	set_field_buffer(fields[0], 0, defFilename.c_str());
	
	//opcje
	//curs_set(0); 
	form = new_form(fields);
	set_field_back(fields[0], A_REVERSE);

	//odpalamy okno
	dialog = newwin(5, 30, 8, 25);
	mvwaddstr(dialog, 1, 6, "Podaj nazwe pliku:");
	keypad(dialog, true);
	box(dialog, 0 , 0);
	wrefresh(dialog);
	
	//zależności między oknami
	set_form_win(form, dialog);
	set_form_sub(form, derwin(dialog, 1, 26, 3, 2));
	
	//odpalamy formularz…
	post_form(form);
	
	//i obsługujemy go
	do {
		wrefresh(dialog);

		key = wgetch(dialog);

		switch(key) {
			case KEY_LEFT: {
				form_driver(form, REQ_PREV_CHAR);
				break;
			} case KEY_RIGHT: {
				form_driver(form, REQ_NEXT_CHAR);
				break;
			} case KEY_BACKSPACE: {
				form_driver(form, REQ_DEL_PREV);
				break;
			} case KEY_DC: {
				form_driver(form, REQ_DEL_CHAR);
				break;
			} default: {
				form_driver(form, key);
			}
		}
	} while (key != 10);
	
	//zapisujemy wartość
	defFilename = stripSpace(field_buffer(fields[0], 0));
	printw("test: %s", defFilename.c_str());

	//niszczymy okno i formularz
	unpost_form(form);
	free_form(form);
	free_field(fields[0]);
	wclear(dialog);
	wrefresh(dialog);
	delwin(dialog);
	curs_set(1);
	refresh(); //żeby kursor wrócił na miejsce
	
	return defFilename;
}

Z jakiegoś powodu linijka "printw("test: %s", defFilename.c_str());" wyświetla mi stringa jedynie gdy to co wprowadzę w formularzu będzie dłuższe lub równe co jego długość (czyli 26). Problemem na pewno nie jest f-cja stripSpace. Czy ktoś ma jakiś pomysł?