version 1.5, 2025/03/31 16:33:56
|
version 1.7, 2025/04/13 04:22:43
|
Line 24
|
Line 24
|
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
* |
* |
* $Log$ |
* $Log$ |
|
* Revision 1.7 2025/04/13 04:22:43 snw |
|
* Fix snprintf calls |
|
* |
|
* Revision 1.6 2025/04/09 19:52:02 snw |
|
* Eliminate as many warnings as possible while building with -Wall |
|
* |
* Revision 1.5 2025/03/31 16:33:56 snw |
* Revision 1.5 2025/03/31 16:33:56 snw |
* Work on fmadm edit global |
* Work on fmadm edit global |
* |
* |
Line 159 void ge_describe_gbl(void)
|
Line 165 void ge_describe_gbl(void)
|
printf ("global %s [#%d]\n", ge_buffers[ge_curbuf].name, ge_curbuf); |
printf ("global %s [#%d]\n", ge_buffers[ge_curbuf].name, ge_curbuf); |
printf ("namespace %s\n", ge_buffers[ge_curbuf].namespace); |
printf ("namespace %s\n", ge_buffers[ge_curbuf].namespace); |
printf ("block size %d bytes\n", BLOCKLEN); |
printf ("block size %d bytes\n", BLOCKLEN); |
printf ("block count %d\n", ge_buffers[ge_curbuf].blockct); |
printf ("block count %ld\n", ge_buffers[ge_curbuf].blockct); |
printf ("file size %d bytes\n", ge_buffers[ge_curbuf].gblsize); |
printf ("file size %ld bytes\n", ge_buffers[ge_curbuf].gblsize); |
} |
} |
|
|
void ge_update_gbl(void) |
void ge_update_gbl(void) |
Line 181 int fma_globals_edit(int optc, char **op
|
Line 187 int fma_globals_edit(int optc, char **op
|
char **args; |
char **args; |
int mode = MODE_GBL; |
int mode = MODE_GBL; |
char *result = (char *) malloc (65535 * sizeof (char));; |
char *result = (char *) malloc (65535 * sizeof (char));; |
int argc; |
/* int argc;*/ |
int tmpres; |
|
register int i; |
register int i; |
|
|
/* first dimension */ |
/* first dimension */ |
Line 217 int fma_globals_edit(int optc, char **op
|
Line 222 int fma_globals_edit(int optc, char **op
|
|
|
while(1) { |
while(1) { |
if (mode == MODE_GBL) { |
if (mode == MODE_GBL) { |
sprintf (fmge_prompt, "global edit %s [buf %d/%d]> ", |
snprintf (fmge_prompt, sizeof (fmge_prompt), "global edit %s [buf %d/%d]> ", |
ge_buffers[ge_curbuf].name, |
ge_buffers[ge_curbuf].name, |
ge_curbuf, |
ge_curbuf, |
GE_MXGBL); |
GE_MXGBL); |
} |
} |
else { |
else { |
sprintf (fmge_prompt, "block edit %s [blk %d/%d]> ", |
snprintf (fmge_prompt, sizeof (fmge_prompt), "block edit %s [blk %d/%ld]> ", |
ge_buffers[ge_curbuf].name, |
ge_buffers[ge_curbuf].name, |
ge_buffers[ge_curbuf].blocknum, |
ge_buffers[ge_curbuf].blocknum, |
ge_buffers[ge_curbuf].blockct); |
ge_buffers[ge_curbuf].blockct); |
Line 239 int fma_globals_edit(int optc, char **op
|
Line 244 int fma_globals_edit(int optc, char **op
|
while ((result = strtok (NULL, " ")) != NULL) { |
while ((result = strtok (NULL, " ")) != NULL) { |
strcpy (args[i++], result); |
strcpy (args[i++], result); |
} |
} |
|
|
argc = i; |
|
|
|
for (i = 0; i < strlen (cmdt); i++) cmdt[i] = cmdt[i] | 0140; |
for (i = 0; i < strlen (cmdt); i++) cmdt[i] = cmdt[i] | 0140; |
|
|
Line 330 short ge_select_block(int buf, long bloc
|
Line 333 short ge_select_block(int buf, long bloc
|
long length; |
long length; |
|
|
if ((blocknum < 0) || (blocknum > (ge_buffers[buf].blockct - 1))) { |
if ((blocknum < 0) || (blocknum > (ge_buffers[buf].blockct - 1))) { |
printf ("block number for global %s must be between 0 and %d\n", ge_buffers[buf].name, ge_buffers[buf].blockct - 1); |
printf ("block number for global %s must be between 0 and %ld\n", ge_buffers[buf].name, ge_buffers[buf].blockct - 1); |
return FALSE; |
return FALSE; |
} |
} |
|
|
Line 347 short ge_select_block(int buf, long bloc
|
Line 350 short ge_select_block(int buf, long bloc
|
switch (b->btype) { |
switch (b->btype) { |
|
|
case DATA: |
case DATA: |
snprintf (b->bt_desc, 39, "DATA"); |
snprintf (b->bt_desc, sizeof (b->bt_desc) - 1, "DATA"); |
break; |
break; |
|
|
case POINTER: |
case POINTER: |
snprintf (b->bt_desc, 39, "POINTER"); |
snprintf (b->bt_desc, sizeof (b->bt_desc) - 1, "POINTER"); |
break; |
break; |
|
|
case BOTTOM: |
case BOTTOM: |
snprintf (b->bt_desc, 39, "BTM PTR"); |
snprintf (b->bt_desc, sizeof (b->bt_desc) - 1, "BTM PTR"); |
break; |
break; |
|
|
case EMPTY: |
case EMPTY: |
snprintf (b->bt_desc, 39, "EMPTY"); |
snprintf (b->bt_desc, sizeof (b->bt_desc) - 1, "EMPTY"); |
break; |
break; |
|
|
case FBLK: |
case FBLK: |
snprintf (b->bt_desc, 39, "FBLK"); |
snprintf (b->bt_desc, sizeof (b->bt_desc) - 1, "FBLK"); |
break; |
break; |
|
|
default: |
default: |
snprintf (b->bt_desc, 39, "ILLEGAL TYPE"); |
snprintf (b->bt_desc, sizeof (b->bt_desc) - 1, "ILLEGAL TYPE"); |
break; |
break; |
|
|
} |
} |
Line 488 void ge_describe_block(void)
|
Line 491 void ge_describe_block(void)
|
printf ("type = %s\n", ge_buffers[ge_curbuf].block.bt_desc); |
printf ("type = %s\n", ge_buffers[ge_curbuf].block.bt_desc); |
|
|
if (ge_buffers[ge_curbuf].blocknum != ROOT) { |
if (ge_buffers[ge_curbuf].blocknum != ROOT) { |
printf ("llptr = %d\n", ge_buffers[ge_curbuf].block.llptr); |
printf ("llptr = %ld\n", ge_buffers[ge_curbuf].block.llptr); |
printf ("rlptr = %d\n", ge_buffers[ge_curbuf].block.rlptr); |
printf ("rlptr = %ld\n", ge_buffers[ge_curbuf].block.rlptr); |
} |
} |
else { |
else { |
printf ("block count = %d\n", ge_buffers[ge_curbuf].block.blockcount); |
printf ("block count = %ld\n", ge_buffers[ge_curbuf].block.blockcount); |
printf ("offset to free space = %d\n", ge_buffers[ge_curbuf].block.free_offset); |
printf ("offset to free space = %ld\n", ge_buffers[ge_curbuf].block.free_offset); |
} |
} |
|
|
printf ("key count = %d\n", ge_buffers[ge_curbuf].block.keyct); |
printf ("key count = %ld\n", ge_buffers[ge_curbuf].block.keyct); |
} |
} |
|
|
void ge_update_block(void) |
void ge_update_block(void) |
{ |
{ |
|
|
printf ("fmadm: selected block %d of %d\n", ge_buffers[ge_curbuf].blocknum, ge_buffers[ge_curbuf].blockct); |
printf ("fmadm: selected block %d of %ld\n", ge_buffers[ge_curbuf].blocknum, ge_buffers[ge_curbuf].blockct); |
|
|
} |
} |
|
|
Line 514 int ge_open_global(char *gblname)
|
Line 517 int ge_open_global(char *gblname)
|
|
|
buf = ge_nextbuf++; |
buf = ge_nextbuf++; |
|
|
snprintf (gpath, 4095, "%s/%s", fma_global_path, gblname); |
snprintf (gpath, sizeof (gpath) - 1, "%s/%s", fma_global_path, gblname); |
|
|
printf ("fmadm: opening global %s [path %s, namespace %s]... ", gblname, gpath, fma_namespace); |
printf ("fmadm: opening global %s [path %s, namespace %s]... ", gblname, gpath, fma_namespace); |
|
|