Exemplo n.º 1
0
formularioActEmpresa::formularioActEmpresa(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	connect(ui.comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(labelCombo(QString)));
	connect(ui.pushButton_3,SIGNAL(clicked()),this,SLOT(ayuda()));
}
Exemplo n.º 2
0
formularioHerr::formularioHerr(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	QImage formula("costo_herramienta.png");
	ui.label_11->setPixmap(QPixmap::fromImage(formula));
	ui.label_11->setScaledContents(true);
	connect(ui.comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(labelCombo(QString)));
	connect(ui.pushButton_3,SIGNAL(clicked()),this,SLOT(ayuda()));
}
Exemplo n.º 3
0
void gestotux::createActions()
{
      exitAct = new QAction( "Salir", this);
      exitAct->setStatusTip( "Salir del programa" );
      exitAct->setIcon( QIcon( ":/imagenes/exit.png" ) );
      exitAct->setShortcut( QKeySequence( Qt::CTRL + Qt::Key_Q ) );
      connect(exitAct, SIGNAL( triggered() ), this, SLOT( close() ) );

      ActAyuda = new QAction( "Ayuda", this );
      ActAyuda->setStatusTip( "Muestra la ayuda del programa " );
      ActAyuda->setIcon( QIcon( ":/imagenes/ayuda.png" ) );
      ActAyuda->setShortcut( QKeySequence( Qt::SHIFT + Qt::Key_F1 ) );
      connect( ActAyuda, SIGNAL( triggered() ), this, SLOT( ayuda() ) );

      acercade = new QAction( "Acerca de...", this );
      acercade->setStatusTip( "Muestra informacion del programa" );
      connect( acercade, SIGNAL( triggered() ), this, SLOT( acerca() ) );

      ActClientes = new QAction( "Ver Clientes... ", this );
      ActClientes->setStatusTip( "Muestra la lista de clientes" );
      ActClientes->setIcon( QIcon( ":/imagenes/clientes.png" ) );
      ActClientes->setShortcut( QKeySequence( Qt::SHIFT + Qt::Key_C ) );
      connect( ActClientes, SIGNAL( triggered() ), this, SLOT( verClientes() ) );

      ActPreferencias = new QAction ( "Configuracion" , this );
      ActPreferencias->setStatusTip( "Modifica las preferencias de la aplicacion" );
      ActPreferencias->setIcon( QIcon( ":/imagenes/configure.png" ) );
      ActPreferencias->setShortcut( QKeySequence( Qt::SHIFT + Qt::Key_O ) );
      connect( ActPreferencias, SIGNAL( triggered() ), this, SLOT( verPreferencias() ) );

      ActBackup = new QAction( "Backup", this );
      ActBackup->setStatusTip( "Genera y retaura backups del programa" );
      ActBackup->setIcon( QIcon( ":/imagenes/backup.png" ) );
      ActBackup->setShortcut( QKeySequence( Qt::SHIFT + Qt::Key_B ) );
      connect( ActBackup, SIGNAL( triggered() ), this, SLOT( verBackup() ) );

      ActActualizar = new QAction( "Actualizar", this );
      ActActualizar->setIcon( QIcon( ":/imagenes/actualizar.png" ) );
      ActActualizar->setStatusTip( "Actualiza la aplicacion " );
      connect( ActActualizar, SIGNAL( triggered() ), this, SLOT( verActualizacion() ) );

      ActResumenGeneral = new QAction( "Resumen General", this );
      ActResumenGeneral->setText( "Resumen General" );
      ActResumenGeneral->setStatusTip( "Genera un resumen general del estado del programa en formato pdf" );
      connect( ActResumenGeneral, SIGNAL( triggered() ), this, SLOT( resumenGeneral() ) );

      ActRestaurar = new QAction( "Restaurar", this );
      connect( ActRestaurar, SIGNAL( triggered() ), this, SLOT( ocultar_mostrar() ) );
}
Exemplo n.º 4
0
void menu()
{
    int op=-1, xm, ym, i, margin = 70;
    String opciones[] = {"Jugar", "Tienda", "Ayuda", "Créditos"};
    setbkcolor(0x0066F4);
    setfillstyle(1, 0x0066F4);
    setcolor(0x003988);
    settextstyle(2, HORIZ_DIR, 8);

    for(i=0; i<4; i++, margin+=50)
    {
        bar(WIDTH/2-textwidth(opciones[3])/2-5, HEIGHT/2+margin-10, WIDTH/2+textwidth(opciones[3])/2+5, HEIGHT/2+margin+textheight(opciones[3])+10);
        outtextxy(WIDTH/2-textwidth(opciones[i])/2, HEIGHT/2+margin, opciones[i]);
    }

    do
    {
        while(!ismouseclick(WM_LBUTTONDOWN));
        getmouseclick(WM_LBUTTONDOWN, xm, ym);
        margin = 70;
        for(i=0; i<4; i++, margin+=50)
            if(xm>WIDTH/2-textwidth(opciones[3])/2-5
               && xm<WIDTH/2+textwidth(opciones[0])/2-10
               && ym>HEIGHT/2+margin-10
               && ym<HEIGHT/2+margin+textheight(opciones[3])+10)
                {
                    op = i;
                    i=5;
                    break;
                }
    }while(op==-1);

    fflush(stdin);
    switch(op)
    {
        case 0:
            juego(3);
            break;
        case 1:
            tienda();
            break;
        case 2:
            ayuda();
            break;
        case 3:
            creditos();
            break;
    }
}
Exemplo n.º 5
0
formularioMaq::formularioMaq(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	QImage formula("costo_maq.png");
	ui.label_17->setPixmap(QPixmap::fromImage(formula));
	ui.label_17->setScaledContents(true);

	connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(pathDialog()));
	connect(ui.doubleSpinBox_2,SIGNAL(valueChanged(double)),this,SLOT(calcularDepre(double)));
	connect(ui.spinBox,SIGNAL(valueChanged(int)),this,SLOT(calcularDepre2(int)));
	connect(ui.doubleSpinBox_2,SIGNAL(valueChanged(double)),this,SLOT(costo_hora(double)));
	connect(ui.spinBox_2,SIGNAL(valueChanged(int)),this,SLOT(costo_hora2(int)));
	connect(ui.spinBox,SIGNAL(valueChanged(int)),this,SLOT(costo_hora3(int)));
	connect(ui.pushButton_4,SIGNAL(clicked()),this,SLOT(ayuda()));
}
Exemplo n.º 6
0
int main()
{

// Declaracion de objetos 
  
  CListaTfnos Trabajo;			//objeto para manejar los billetes de la estacion
  Registro NuevoReg, reg;		//objeto que representa un bilete
								//el objeto reg lo utilizamos para hacer una copia 
								//en el de el billete que queremos ver


  //se trata del menu principal del programa. Usa la funcion system() contenida en
  //la librería stdlib.h que está en el directorio de los includes
  
  int opcion;
  inicializar(Trabajo);	
  do
  {
    menu( opcion );
    system( "cls" );
    switch ( opcion )
    {
      case 1:										//opcion nueva reserva
        nuevareserva(NuevoReg, Trabajo, reg);
			
		 break;
      case 2:
	     ayuda();									//ayuda interactiva
		 break;
      case 3:
        visualizar( Trabajo );						//interfaz de navegacion
        break;
      case 4:
		  menubuscar(Trabajo, NuevoReg);			//búsqueda por campos
		  break;
	  case 5:										//Salida del programa
        return 0;
    }
    cout << "\nPulse Entrar para continuar ";
    cin.get();
  }
  while ( 1 );										//el bucle se repite mientras
													//nos devuelva un valor 1 (TRUE)

}
Exemplo n.º 7
0
 int main (){
 	int selector=1;
 	char usr[10]= "q" , csñ[10] = "q";

 	while (selector){
 		printf("\n\n||	MENU PRINCIPAL	||\n1-Ingresar\n2-Crear usuario\n3-Ayuda\n0-Salir\n");
 		scanf("%d",&selector);

 		switch(selector){
 			case 1:
 				ingreso(usr,csñ);
 				break;
 			/*case 2:
 				crear_usuario();
 				break;*/
 			case 3:
 				ayuda();
 				break;
 		}
 	}
 	return 0;
 }
Exemplo n.º 8
0
int main(int argc, char **argv){
	FILE *ecg, *salida;
	int n_valores, i, j;
	float **valores;
	char *dir_ecg, *opt, dir_salida[DIR_SALIDA_LEN];
	
	int flag = 0;
	
	if(argc != 2){
		ayuda(argv[0]);
		exit(1);
	}
	
	dir_ecg = argv[1];
	
	ecg = fopen(dir_ecg, "r");
	if(ecg == NULL){
			fprintf(stderr, "Error al abrir el archivo.\n");
			exit(1);
	}
	
	valores = leer_datos(ecg, &n_valores);
	fclose(ecg);
	
	for(i = 0; i < DATA_COLS; i++){
		sprintf(dir_salida, "query_%d.sql", i+1);
		salida = fopen(dir_salida, "w");
		
		fprintf(salida, "INSERT INTO TABLA (ATRIBUTO)\nVALUES('{");
		for(j = 0; j < n_valores-1; j++)
			fprintf(salida, "%f,", valores[i][j]);
			
		fprintf(salida, "%f}');", valores[i][j]);
		fclose(salida);
		fprintf(stdout, "Escribio el archivo query_%d.sql\n", i+1);
	}
	
	return 0;
}
Exemplo n.º 9
0
void menu()
{
    char seleccion = '0';

    printf("=== ADIVINANDO 0.2 ===\n");
    printf("     === MENU ===\n\n");
    printf("1. Jugar\n");
    printf("2. Ayuda\n");
    printf("3. Salir\n\n");

    printf("Tu seleccion: ");
    seleccion = getchar();
    putchar(seleccion);

    if(seleccion == '1')
    {
    	juego();
    }
    else if(seleccion == '2')
    {
    	ayuda();
    }
    else if(seleccion == '3')
    {
        /*Adios !*/
        limpiar();
    	printf("Bye !\n");
    }
    else /*El juego se puede volver "Loco" y puede crashear...*/
    {
    	limpiar();
    	printf("Por favor, elija una opcion valida...\n\n");
	pause();
	limpiar();
    	menu();
    }
}
Exemplo n.º 10
0
void ayuda()
{
	limpiar();

	char op;
	printf("=== AYUDA ===\n");
	printf("Hola, en el siguiente juego tendras que adivinar un numero\na partir de una serie de pistas que se te iran dando a\nmedida que vayas digitando tu opcion.\n\n");
	printf("Entendiste (S/n) ?: ");
	op = getchar();
	putchar(op);

	if(op == 'S' || op == 's')
	{
		limpiar();
		menu();
	}
	else if(op == 'N' || op == 'n')
	{
		limpiar();
		printf("Lee bien... Si tienes alguna duda puedes\ncontactarme a traves de mi E-mail: [email protected]\n\n");
		pause();
		ayuda();
	}
}
Exemplo n.º 11
0
int main(int argc, char* argv[])
{
	FILE *fp;
	byte trans;
	byte *px;
	SDL_Surface *imagen ;
	int i, x, y, pos=0;
	unsigned char fuente[256*8];
	char nombre[256];
	char nombreh[256];
	
	if(argc<2)
		ayuda();

	imagen = SDL_LoadBMP(argv[1]);
	if(imagen==NULL) {
		printf("No se ha podido abrir: %s\n",argv[1]);
		ayuda();
	}

	SDL_LockSurface(imagen);
        
	px = (byte*)imagen->pixels+imagen->pitch+1;

	// Color transparente ( Fila 1, Columna1, corresponde al caracter 0 )
	trans = *px;

	for(i=0;i<256;i++) {
		for(y=0;y<8;y++) {
			fuente[pos]=0;
			for(x=0;x<6;x++) {
				if(*px!=trans)
					fuente[pos]|=1<<x;
				px++;
			}
			px+=imagen->pitch-6;
			pos++;
		}
		px+=(-imagen->pitch*8)+7;
	}
	SDL_UnlockSurface( imagen );
	SDL_FreeSurface(imagen);

	// Descomentarizar esto para ver el resultado en la consola
	/*pos=0;
	for(i=0;i<256;i++) {
		for(y=0;y<8;y++) {
			for(x=0;x<6;x++) {
				if(fuente[pos]&(1<<x))
					printf("X");
				else
					printf(".");
			}
			printf("\n");
			pos++;
		}
		getchar();
	}
	exit(EXIT_SUCCESS);*/

	// Hace un bin2h de fuente[]
	sscanf(argv[1],"%[^.]",nombre);
	strcpy(nombreh,nombre);
	strcat(nombreh,".h");

	fp=fopen(nombreh,"w");
	if(fp==NULL) {
		printf("Error al crear %s\n",nombreh);
		exit(EXIT_FAILURE);
	}
	fprintf(fp,"/**\n * @file %s\n * Definición de la fuente %s (generado por builtinfont)\n */\n\n",nombreh,nombre);
	fprintf(fp,"#ifndef __EDIV__%s_h__\n#define __EDIV__%s_h__\n\n",nombre,nombre);
	fprintf(fp,"static unsigned char %s[256*8] = {\n",nombre);

	x=0;
	for(i=0;i<256*8;i++) {
		if(i<256*8-1)
			fprintf(fp,"%d,",fuente[i]);
		else
			fprintf(fp,"%d",fuente[i]);
		x++;
		if(x==30) {
			fprintf(fp,"\n");
			x=0;
		}
	}

	fprintf(fp,"\n};\n\n#endif /*__EDIV__%s_h__*/\n",nombre);
	fclose(fp);

	printf("Creado %s\n",nombreh);

	exit (EXIT_SUCCESS);
}
Exemplo n.º 12
0
/* 
 * Programa que lee un archivo de imagen BMP y almacena su contenido en 
 * la estructura archivo_bmp, la cual, a su vez, guardará el header, la 
 * paleta de coloures (si la hay) y la MATRIZ (pertenenciente a la 
 * imagen real) en respectivas variables. Luego, de acuerdo a los
 * parámetros recibidos, invocará a las diferentes funciones asociadas a
 * éstos, a fin de manipular la imagen.
 * Por último, de ser necesario, se escribirá la información en un nuevo
 * archivo.
 */
int main(int argc, char *argv[]){

	FILE *bmp;
	FILE *copia_bmp;
	archivo_bmp image;

	int j=1,aux;
	char entro='N';
	char okey='F';/*F=FALSE*/
	
	/*Se recorre el arreglo de parámetros al main.*/
	while ((*(argv[j]+1)!='i') &&(j<=argc)) /*Busco -i y abro el archivo.*/
		j++;
	if ((*(argv[j])=='-')&&(*(argv[j]+1)=='i')&&(*(argv[j]+2)=='\0')){
		if ((argc-1) == j)
			ayuda(ERROR);
		else{	
			j++;
			bmp=fopen(argv[j],"r");
			if (bmp==NULL){
				printf("No se pudo abrir el archivo. \n");
				exit(1);
			}
			image=leer_bmp(bmp);
			fclose(bmp);
		}
	}
	
	for (j=1;j<argc;j++){
	    /*Se consulta por el patrón "-" + argumento + " ".*/
		if(*argv[j]=='-'){
			if (*(argv[j]+2)=='\0'){
				switch (*(argv[j]+1)){
					case '?': ayuda(OK);
					break;
					case 'h': ayuda(OK);
					break;
					case 's':	imprimir_header(image.h, image.rgb);
								okey='T';/*T=TRUE*/
					break;
					case 'p': image.matriz=invertir(image.matriz);
					break;
					case 'r': 	image.matriz=rotar(image.matriz);
								image.h.ih.width=image.matriz.max_columnas;
								image.h.ih.height=image.matriz.max_filas;
								aux=image.h.ih.XpixelsPerM;
								image.h.ih.XpixelsPerM=image.h.ih.YpixelsPerM;
								image.h.ih.YpixelsPerM=aux;
					break;
					case 'n':	image.matriz=negativo(image.matriz,image.h.ih.BitCount);
					break;
					case 'd':	image.matriz=duplicar(image.matriz,image.h.ih.BitCount);
								image.h.ih.width=image.h.ih.width*2;
								image.h.ih.height=image.h.ih.height*2;
								image.h.ih.XpixelsPerM=image.h.ih.XpixelsPerM*2;
								image.h.ih.YpixelsPerM=image.h.ih.YpixelsPerM*2;
								image.h.ih.imageSize=image.h.ih.height*image.h.ih.width;
								image.h.fh.FileSize=(image.h.ih.height*image.h.ih.width)*(image.h.ih.BitCount/8)+54;
								if(image.h.ih.BitCount<=8)
									image.h.fh.FileSize+=(4*image.h.ih.coloursUsed);
					break;
					case 'f':	image.matriz=reducir(image.matriz,image.h.ih.BitCount);
								image.h.ih.width=image.h.ih.width/2;
								image.h.ih.height=image.h.ih.height/2;
								image.h.ih.XpixelsPerM=image.h.ih.XpixelsPerM/2;
								image.h.ih.YpixelsPerM=image.h.ih.YpixelsPerM/2;
								image.h.ih.imageSize=image.h.ih.height*image.h.ih.width;
								image.h.fh.FileSize=(image.h.ih.height*image.h.ih.width)*(image.h.ih.BitCount/8)+54;
								if(image.h.ih.BitCount<=8)
									image.h.fh.FileSize+=(4*image.h.ih.coloursUsed);

					break;
					case 'b':if ((argc-1) == j)
									ayuda(ERROR);
								else{
									j++;
									/*Con la función atoi() convierto un string a entero y, 
									* utilizando abs(), me aseguro que el resultado sea siempre positivo. (1)*/
									int radio=abs(atoi(argv[j]));
									image.matriz=blur(image.matriz,image.h.ih.BitCount,radio);
								}
							
					break;
					case 'o':	if ((argc-1) == j)
									ayuda(ERROR);
								else{	
									j++;
									copia_bmp=fopen(argv[j],"w");
									entro='S'; /*Utilizo la variable entro para indicar que se recibió el parámetro -o.*/
								}
					break;
					case 'i':	if ((argc-1) == j)
									ayuda(ERROR);
								else{	
									j++;
								}
					break;
					default:	printf("\nERROR: Incorrect parameters.\n");//Si el parámetro es incorrecto se interrumpe el programa.
								ayuda(ERROR);
					}
				}else{ 
					if((*(argv[j]+1)=='l')&&(*(argv[j]+3)=='\0')){ /* Si los parámetros recibidos son lh o lv..*/
						switch (*(argv[j]+2)){								
							case 'h':	if ((argc-3) <= j)
										ayuda(ERROR);
										else{
											int width=abs(atoi(argv[j+1])); /*Vale la aclaración (1).*/
											int space=abs(atoi(argv[j+2])); /*Vale la aclaración (1).*/
											int colour=abs(atoi(argv[j+3]));/*Vale la aclaración (1).*/
											image.matriz=lineas_horizontales(image.matriz,width,space,colour);
											j+=3;
										}
							break;
							case 'v':	if ((argc-3) <= j)
											ayuda(ERROR);
										else{
											int width=abs(atoi(argv[j+1]));/*Vale la aclaración (1).*/
											int space=abs(atoi(argv[j+2]));/*Vale la aclaración (1).*/
											int colour=abs(atoi(argv[j+3]));/*Vale la aclaración (1).*/
											image.matriz=lineas_verticales(image.matriz,width,space,colour);
											j+=3;
										}
							break;
							default: 	printf("\nERROR: Parametros incorrectos.\n");//Si el parámetro es incorrecto se interrumpe el programa.
										ayuda(ERROR);
							}
					}
				}
				}else{
					/*En caso que el patrón no se cumpla, se llama a la función ayuda 
					interrumpiendo el programa a través de la función EXIT (librería stdlib.h).*/
					printf("\nERROR: Parametros incorrectos.\n\n");
					ayuda(ERROR);
				}
			}
			/* Si la condición de los siguientes if es falsa, significa 
			 * que el único parámetro recibido (además de -i) fue -s, 
			 * por lo que NO debo crear una copia*/
			if((argc!=4)){
				if(entro=='N')
					copia_bmp=fopen("out.bmp","w");
				escribir_bmp(image,copia_bmp);
				fclose(copia_bmp);
			}
			else{
				if(okey=='F'){
					if(entro=='N')
						copia_bmp=fopen("out.bmp","w");
					escribir_bmp(image,copia_bmp);
					fclose(copia_bmp);
				}
			}
			liberar_matriz(image.matriz.m,image.matriz.max_filas);
			free(image.rgb);
			return 0;
}
Exemplo n.º 13
0
int main(int argc, char *argv[])
{
    //system("rm -f *pgm");
    //system("rm -f *ppm");
    int algoritmo = -1;
    int error = 0;
    int tam = -1;
    int iteraciones = -1;
    int tam_tarea = -1;

    if (argc > 1) {
        algoritmo = atoi(argv[1]);
        if (algoritmo < 0 || algoritmo > 1) {
            error = 1;
        }
    } else {
        error = 1;
    }

    if (argc > 2) {
        tam = atoi(argv[2]);
        if (tam < 1 || !is_power_of_two(tam)) {
            error = 1;
        }
    } else {
        error = 1;
    }

    if (argc > 3) {
        iteraciones = atoi(argv[3]);
        if (iteraciones < 1) {
            error = 1;
        }
    } else {
        error = 1;
    }

    if (argc > 4) {
        tam_tarea = atoi(argv[4]);
        if (algoritmo == 1 && tam_tarea < 1) {
            error = 1;
        }
    }
    if (algoritmo == 1 && argc < 5) {
        error = 1;
    }

    if (error) {
        //only one node should print errors
        MPI_Init(&argc, &argv);
        int com_rank;
        MPI_Comm_rank(MPI_COMM_WORLD, &com_rank);
        if (com_rank == 0) {
            ayuda(argv[0]);
        }
        MPI_Finalize();
        return EXIT_SUCCESS;
    }

    switch (algoritmo) {
    case 0:
        continuous_rows_version(argc, argv);
        break;
    case 1:
        dynamic2(argc, argv);
        break;
    case 2:
        //sparse_rows_version(argc, argv);
        break;
    case 3:
        //dynamic_row_assignment(argc, argv);
        break;
    }
    return EXIT_SUCCESS;
}
Exemplo n.º 14
0
formularioSerExternos::formularioSerExternos(QWidget *parent)
	: QWidget(parent)
{
	ui.setupUi(this);
	connect(ui.pushButton_3,SIGNAL(clicked()),this,SLOT(ayuda()));
}
Exemplo n.º 15
0
int main(int argc, char **argv) {
  struct words *palabras;
  int c=0;

  banner();

  // Inicializaciones globales

  memset(&options, 0, sizeof(struct opciones));

  options.exitonwarn=1;
  options.ignore_nec=0;
  options.default_nec=404;
  options.lasting_bar=1;
  options.speed=0;
  options.add_header=0;

  encontradas=0;
  descargadas=0;
  listable=0;
  exts_num=0;

  strncpy(options.agente, AGENT_STRING, STRING_SIZE-1);

  dirlist_current=(struct words *)malloc(sizeof(struct words));
  memset(dirlist_current, 0, sizeof(struct words));
  dirlist_base=dirlist_current;
  dirlist_final=dirlist_current;

  curl=curl_easy_init();

  // Recepcion de parametros

  if(argc<2) {
    ayuda();
    exit(-1);
    }

  if(strncmp(argv[1], "-resume", 7)==0) {
    printf("(!) RESUMING...\n\n");
    resume();
    }

  strncpy(options.url_inicial, argv[1], STRING_SIZE-1);

  if(argc==2 || strncmp(argv[2], "-", 1)==0) {
    strncpy(options.mfile, DEFAULT_WORDLIST, STRING_SIZE-1);
    optind+=1;
    } else {
    strncpy(options.mfile, argv[2], STRING_SIZE-1);
    optind+=2;
    }

  while((c = getopt(argc,argv,"a:c:d:fgh:H:ilm:M:n:N:o:p:P:rRsSvwx:X:u:tz:"))!= -1){
    switch(c) {
      case 'a':
        options.use_agent=1;
        strncpy(options.agente, optarg, STRING_SIZE-1);
        break;
      case 'c':
        options.use_cookie=1;
        strncpy(options.cookie, optarg, STRING_SIZE-1);
        break;
      case 'd':
        options.debuging=atoi(optarg);
        break;
      case 'f':
        options.finetunning=1;
        break;
      case 'g':
        options.save_found=1;
        break;
      case 'h':
        options.use_vhost=1;
        strncpy(options.vhost, optarg, STRING_SIZE-1);
        break;
      case 'H':
        if(options.add_header) {
          strcat(options.header_string, "\n");
          strncat(options.header_string, optarg, STRING_SIZE-strlen(options.header_string)-2);
          } else {
  	      strncpy(options.header_string, optarg, STRING_SIZE-1);
	      }
        options.add_header++;
        break;
      case 'i':
        options.insensitive=1;
        break;
      case 'l':
        options.print_location=1;
        break;
      case 'm':
        options.mutations_file=1;
        strncpy(options.mutation_file, optarg, STRING_SIZE-1);
        break;
      case 'M':
        options.mutations_list=1;
        strncpy(options.mutation_list, optarg, STRING_SIZE-1);
        break;
      case 'N':
        options.ignore_nec=atoi(optarg);
        break;
      case 'o':
        options.saveoutput=1;
        strncpy(options.savefile, optarg, STRING_SIZE-1);
        break;
      case 'p':
        options.use_proxy=1;
        strncpy(options.proxy, optarg, STRING_SIZE-1);
        break;
      case 'P':
        options.use_proxypass=1;
        strncpy(options.proxypass_string, optarg, STRING_SIZE-1);
        break;
      case 'r':
        options.dont_recurse=1;
        break;
      case 'R':
        options.interactive=1;
        break;
      case 's':
        options.verify_ssl=1;
        break;
      case 'S':
        options.silent_mode=1;
        break;
      case 't':
        options.lasting_bar=0;
        break;
      case 'u':
        options.use_pass=1;
        strncpy(options.pass_string, optarg, STRING_SIZE-1);
        break;
      case 'v':
        options.nothide=1;
        break;
      case 'w':
        options.exitonwarn=0;
        break;
      case 'x':
        options.extensions_file=1;
        strncpy(options.exts_file, optarg, STRING_SIZE-1);
        break;
      case 'X':
        options.extensions_list=1;
        strncpy(options.exts_list, optarg, STRING_SIZE-1);
        break;
      case 'z':
        options.speed=(atoi(optarg)<=0)?0:atoi(optarg);
        break;
      default:
        printf("\n(!) FATAL: Incorrect parameter\n");
        exit(-1);
        break;
        }
      }

  // Limpia el input

  limpia_url(options.url_inicial);

  if(options.lasting_bar && !strchr(options.url_inicial, '?')) barra(options.url_inicial);

  check_url(options.url_inicial);

  limpia_url(options.mfile);

  // Chequeos iniciales

  get_options();

  init_exts();

  IMPRIME("\n-----------------\n\n");

  // Creamos la lista de palabras

  palabras=crea_wordlist(options.mfile);

  // Abrimos el fichero de mutations y creamos la lista

  /*

  if(options.mutations_file) {
    muts_base=crea_wordlist_fich(options.mutation_file);
    } else if(options.mutations_list) {
    muts_base=crea_extslist(options.mutation_list);
    }
  */

  // Lanzamos el bucle de descarga

  lanza_ataque(options.url_inicial, palabras);

  // Finalizamos

  cierre();
  exit(0);

}