/* nparted - a frontend to libparted for manipulating disk partitions thinked to dbootstrap Copyright (C) 1998-2000 Mario Teijeiro Otero Esteve Fernández Jaime Villate La Espiral Mario Teijeiro Otero Esteve Fernández < esteve@crosswinds.net > Jaime Villate La Espiral http://www.laespiral.org This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include void i18n_initialize (void) { /* Si HAVE_NLS es definido, asumimos la existencia de * tres funciones invocadas aquí */ #ifdef HAVE_NLS /* Ponemos la localización actual */ setlocale(LC_MESSAGES,""); bindtextdomain(PACKAGE,LOCALDIR); textdomain(PACKAGE); #endif } static char *device_type[]={"UNKNOWN","SCSI","IDE","DAC960","CPQARRAY"}; char *get_name_device_type ( PedDeviceType type){ switch (type){ case PED_DEVICE_UNKNOWN: return device_type[0]; case PED_DEVICE_SCSI:return device_type[1]; case PED_DEVICE_IDE:return device_type[2]; case PED_DEVICE_DAC960:return device_type[3]; case PED_DEVICE_CPQARRAY: return device_type[4]; } return device_type[0]; } /* FIXME: Mejor que salir directamente, llamar a las funciones * para que cierren todos los dispositivos abiertos y esass cosas*/ void * NP_malloc(int size){ void *p; p=malloc(size); if(p==NULL){ ped_exception_throw(PED_EXCEPTION_FATAL, PED_EXCEPTION_OK,_("I can't malloc, abort")); ped_exception_catch(); exit(-1); } return p; } char* select_file_system ( void ) { newtComponent list,form; struct newtExitStruct toexit; PedFileSystemType* fs_type; char *type; int i; list=newtListbox(5,1,5,NEWT_FLAG_SCROLL|NEWT_FLAG_RETURNEXIT); newtListboxSetWidth(list,20); fs_type=NULL; i=0; while( (fs_type=ped_file_system_type_get_next (fs_type)) !=NULL){ if (!fs_type->name) break; newtListboxAppendEntry(list,fs_type->name, fs_type->name); i++; } newtCenteredWindow(30, 7,_("Please, select file system")); form=newtForm(NULL,NULL,0); newtFormAddComponents(form,list,NULL); newtFormAddHotKey(form,(int)''); newtFormRun(form,&toexit); if (toexit.reason==NEWT_EXIT_COMPONENT) type=(char*)newtListboxGetCurrent(list); else type=NULL; newtFormDestroy(form); newtPopWindow(); return type; } char select_partition_type (void) { newtComponent list,form; struct newtExitStruct toexit; char types[]={'p','l','e'}; char *type; int i; list=newtListbox(5,1,5,NEWT_FLAG_SCROLL|NEWT_FLAG_RETURNEXIT); newtListboxSetWidth(list,20); i=0; newtListboxAppendEntry(list,_("primary"), &types[0]); newtListboxAppendEntry(list,_("logical"), &types[1]); newtListboxAppendEntry(list,_("extended"), &types[2]); newtCenteredWindow(30, 7,_("Please, select partition_type")); form=newtForm(NULL,NULL,0); newtFormAddComponents(form,list,NULL); newtFormAddHotKey(form,(int)''); newtFormRun(form,&toexit); if (toexit.reason==NEWT_EXIT_COMPONENT){ type=(char*)newtListboxGetCurrent(list); newtFormDestroy(form); newtPopWindow(); return *type; } newtFormDestroy(form); newtPopWindow(); return '\0'; } PedSector is_sector_valid(char *d){ char *p; p=d; while (*p!='\0' && (isdigit(*p)||isspace(*p)) ) p++; if (*p=='\0'){ return strtol(d,&p,10); }else{ return -1; } }