view anagram/agcl/agcl.cpp @ 7:57b2cc9b87f7

Use memcpy instead of strncpy when we know the length anyway. Modern gcc seems to think it knows how to detect misuse of strncpy, but it's wrong (in fact: very, very wrong) and the path of least resistance is to not try to fight with it.
author David A. Holland
date Mon, 30 May 2022 23:47:52 -0400
parents 13d2b8934445
children
line wrap: on
line source

/*
 * AnaGram, A System for Syntax Directed Programming
 * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
 * Copyright 2006, 2007 David A. Holland. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * agcl.cpp - main function for command line version
 */

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

#define AG_EXE
#include "aglib.h"
#include "version.h"

//#define INCLUDE_LOGGING
#include "log.h"

#ifdef DUMMYGUI
void bailOut(const char *problem) {
  LOGSECTION("bailOut");
  LOGV(problem);
  LOGSTACK;
  fprintf(stderr, "%s\nUnexpected program termination\n", problem);
  exit(1);
  //IAssertionFailure exception("problem", 0);
  //throw(exception);
}
#endif

int main(int argc, char *argv[]) {
  LOGSECTION("Main Program");
  init(argv[0]);

  if (argc != 2) {
    fprintf(stderr, "\n");
    fprintf(stderr, "   AnaGram, A System for Syntax-Directed Programming\n");
    fprintf(stderr, "   %s\n", VERSIONSTRING);
    fprintf(stderr, "   Copyright 1993-2002 Parsifal Software.\n");
    fprintf(stderr, "   Copyright 2006, 2007 David A. Holland.\n");
    fprintf(stderr, "   All Rights Reserved.\n");
    fprintf(stderr, "\n");
    fprintf(stderr, "Usage: agcl <file name>\n");
    return 1;
  }

  return commandLineBuild(argv[1]);
}