コード例 #1
0
int fappend_data_to_fs(FILE *f, void *data, unsigned int data_size) {
	// Append data to an existing fsave. In this case, the file must
	// be pointing at the beginning of the fsave header.
	//
	// File pointer is returned to original position.
	
	if(f == NULL) { return MCF_ERR_NOFILE; }
	if(data == NULL || data_size == 0) { return MCF_ERR_NODATA; }
	
	int rv = 0;
	fsave bfs = null_fs();
	
	long pos = ftell(f);
	
	// Get the header - afterwards pointer will be at the beginning of the data.
	if((rv = get_fs_header_from_file(f, &bfs)) != 0) { goto error; }
	fseek(f, -1*sizeof(unsigned int), SEEK_CUR);
	unsigned int new_size = bfs.size + data_size;
	
	if(fwrite(&new_size, sizeof(unsigned int), 1, f) < 1) { 
		rv = MCF_ERR_FILEWRITE;
		goto error;
	}
	
	fseek(f, bfs.size, SEEK_CUR);
	
	if(rv = insert_into_file(f, data, data_size, -1)) { goto error; }
	
	error:
	free_fsave(&bfs);		
	fseek(f, pos, SEEK_SET);
	
	return rv;
}
コード例 #2
0
int main(void)
{
  buf_code_fp = fopen("u8g2_d_memory.c", "w");
  fprintf(buf_code_fp, "/* u8g2_d_memory.c */\n");
  fprintf(buf_code_fp, "/* generated code, codebuild, u8g2 project */\n");
  fprintf(buf_code_fp, "\n");
  fprintf(buf_code_fp, "#include \"u8g2.h\"\n");
  fprintf(buf_code_fp, "\n");
  
  buf_header_fp = fopen("u8g2_memory.h", "w");
  //fprintf(buf_header_fp, "/* start of generated code, codebuild, u8g2 project */\n");

  setup_code_fp = fopen("u8g2_d_setup.c", "w");
  fprintf(setup_code_fp, "/* u8g2_d_setup.c */\n");
  fprintf(setup_code_fp, "/* generated code, codebuild, u8g2 project */\n");
  fprintf(setup_code_fp, "\n");
  fprintf(setup_code_fp, "#include \"u8g2.h\"\n");
  fprintf(setup_code_fp, "\n");

  setup_header_fp = fopen("u8g2_setup.h", "w");
  //fprintf(setup_header_fp, "/* start of generated code, codebuild, u8g2 project */\n");
  
  u8g2_cpp_header_fp = fopen("U8g2lib.h", "w");
  fprintf(u8g2_cpp_header_fp, "/* generated code (codebuild), u8g2 project */\n");
  
  u8x8_cpp_header_fp = fopen("U8x8lib.h", "w");
  fprintf(u8x8_cpp_header_fp, "/* generated code (codebuild), u8g2 project */\n");


  u8x8_setup_c_md_fp = fopen("u8x8setupc.md", "w");
  u8x8_setup_cpp_md_fp = fopen("u8x8setupcpp.md", "w");
  u8g2_setup_c_md_fp = fopen("u8g2setupc.md", "w");
  u8g2_setup_cpp_md_fp = fopen("u8g2setupcpp.md", "w");




  do_controller_list();
  
  
  
  md_fp = u8g2_setup_cpp_md_fp;
  is_arduino_cpp = 1;
  is_u8g2 = 1;
  do_md_controller_list();
  
  md_fp = u8g2_setup_c_md_fp;
  is_arduino_cpp = 0;
  is_u8g2 = 1;
  do_md_controller_list();
  
  md_fp = u8x8_setup_cpp_md_fp;
  is_arduino_cpp = 1;
  is_u8g2 = 0;
  do_md_controller_list();
  
  md_fp = u8x8_setup_c_md_fp;
  is_arduino_cpp = 0;
  is_u8g2 = 0;
  do_md_controller_list();
  
  fprintf(buf_code_fp, "/* end of generated code */\n");
  fclose(buf_code_fp);
  
  //fprintf(buf_header_fp, "/* end of generated code */\n");
  fclose(buf_header_fp);

  fprintf(setup_code_fp, "/* end of generated code */\n");
  fclose(setup_code_fp);

  //fprintf(setup_header_fp, "/* end of generated code */\n");
  fclose(setup_header_fp);

  fclose(u8g2_cpp_header_fp);

  fclose(u8x8_cpp_header_fp);


  fclose(u8x8_setup_c_md_fp);
  fclose(u8x8_setup_cpp_md_fp);
  fclose(u8g2_setup_c_md_fp);
  fclose(u8g2_setup_cpp_md_fp);


  system("cp u8g2_d_memory.c ../../csrc/.");
  puts("generate u8g2_d_memory.c");
  system("cp u8g2_d_setup.c ../../csrc/.");
  puts("generate u8g2_d_setup.c");

  insert_into_file("../../csrc/u8g2.h", "u8g2_memory.h", "/* u8g2_d_memory.c generated code start */", "/* u8g2_d_memory.c generated code end */");
  insert_into_file("../../csrc/u8g2.h", "u8g2_setup.h", "/* u8g2_d_setup.c generated code start */", "/* u8g2_d_setup.c generated code end */");
  insert_into_file("../../cppsrc/U8g2lib.h", "U8g2lib.h", "/* Arduino constructor list start */", "/* Arduino constructor list end */");
  insert_into_file("../../cppsrc/U8x8lib.h", "U8x8lib.h", "// constructor list start", "// constructor list end");

  insert_into_file("../../../u8g2.wiki/u8g2setupc.md", "u8g2setupc.md", "# Setup Function Reference", "# Links");
  insert_into_file("../../../u8g2.wiki/u8g2setupcpp.md", "u8g2setupcpp.md", "# Constructor Reference", "# Links");
  insert_into_file("../../../u8g2.wiki/u8x8setupc.md", "u8x8setupc.md", "# Setup Function Reference", "# Links");
  insert_into_file("../../../u8g2.wiki/u8x8setupcpp.md", "u8x8setupcpp.md", "# Constructor Reference", "# Links");


  return 0;
}