view ringtools/imy/main.c @ 965:2969032bdfac

fcup-smsend[mult]: fix buglet in K&R C NULL pointer passing The only 100% safe way to pass a NULL pointer as a function argument in K&R C is to cast 0 to a pointer type; failing to do so may cause mysterious bugs (invalid stack frames or garbage in argument registers) on 64-bit machines. This issue has already been fixed in most of FC host tools, but I just found some missed spots: passing of NULL UDH to PDU encoding functions in fcup-smsend[mult] in the case of single (not concatenated) SMS.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 01 Sep 2023 07:33:51 +0000
parents a96cb97b66a2
children
line wrap: on
line source

/*
 * This file contains the top-level code for fc-imy2pwt.
 */

#include <stdio.h>
#include <stdlib.h>
#include "sizelimits.h"

char *imy_filename;
char melody_str_buf[MELODY_BUF_SIZE];
unsigned beats_per_min = 120;
FILE *outF;

main(argc, argv)
	char **argv;
{
	if (argc < 2 || argc > 3) {
		fprintf(stderr, "usage: %s imy-file [outfile]\n", argv[0]);
		exit(1);
	}
	imy_filename = argv[1];
	read_imy_firstpass();
	compute_note_durations();
	if (argc > 2) {
		outF = fopen(argv[2], "w");
		if (!outF) {
			perror(argv[2]);
			exit(1);
		}
	} else
		outF = stdout;
	melody_convert_pass();
	exit(0);
}