Bimbang is an Indonesian pop song originally composed and written by Melly Goeslaw

This commit is contained in:
radhitya 2025-01-14 15:53:06 +07:00
parent 5dae148967
commit 2271650ca8

65
main.c
View File

@ -21,7 +21,7 @@ FILE *fptr;
void checker() { void checker() {
fptr = fopen("./source/data.txt", "rb+"); fptr = fopen("./source/data.txt", "rb+");
if (fptr == NULL) { if (fptr == NULL) {
perror("Galat checker buat ./source/data.txt"); perror("galat checker buat ./source/data.txt");
exit(1); exit(1);
} }
} }
@ -54,9 +54,9 @@ int main(int argc, char *argv[]) {
mkdir("./target", 0700); mkdir("./target", 0700);
} }
fptr = fopen("./source/data.txt", "rb+"); fptr = fopen("./source/data.txt", "r");
if (fptr == NULL) { if (fptr == NULL) {
fptr = fopen("./source/data.txt", "wb"); fptr = fopen("./source/data.txt", "w");
if (fptr == NULL) { if (fptr == NULL) {
perror("galat buat ./source/data.txt (fptr)"); perror("galat buat ./source/data.txt (fptr)");
exit(1); exit(1);
@ -74,7 +74,7 @@ int main(int argc, char *argv[]) {
char txt[MAX_LENGTH], of[MAX_LENGTH]; char txt[MAX_LENGTH], of[MAX_LENGTH];
int i, len; int i, len;
mdt.italic = 0, mdt.bold = 0, mdt.quote = 0; mdt.italic = 0, mdt.bold = 0, mdt.quote = 0, mdt.headingone = 0;
const char *file_name = strrchr(argv[1], '/'); const char *file_name = strrchr(argv[1], '/');
if (file_name == NULL) { if (file_name == NULL) {
@ -87,13 +87,13 @@ int main(int argc, char *argv[]) {
fptr = fopen(argv[1], "rt"); fptr = fopen(argv[1], "rt");
if (fptr == NULL) { if (fptr == NULL) {
perror("Galat membuka masukan berkas fptr\n"); perror("galat membuka masukan berkas fptr\n");
return 1; return 1;
} }
FILE *fpto = fopen(of, "wb"); FILE *fpto = fopen(of, "wb");
if (fpto == NULL) { if (fpto == NULL) {
perror("Galat membuat keluaran berkas fpto\n"); perror("galat membuat keluaran berkas fpto\n");
fclose(fptr); fclose(fptr);
return 1; return 1;
} }
@ -101,18 +101,26 @@ int main(int argc, char *argv[]) {
fprintf(fpto, "<html>\n<body>\n"); fprintf(fpto, "<html>\n<body>\n");
while (fgets(txt, MAX_LENGTH, fptr) != NULL) { while (fgets(txt, MAX_LENGTH, fptr) != NULL) {
len = strlen(txt); len = strlen(txt);
if (len > 0 && txt[len-1] == '\n') { if (len > 0 && txt[len-1] == '\n') {
txt[--len] = '\0'; txt[--len] = '\0';
} }
mdt.headingone = 0; mdt.headingone = 0;
mdt.quote = 0; mdt.quote = 0;
if(len > 0 && txt[0] == '#' && ) if(len == 0) {
fprintf(fpto, "\n");
} else {
if(len > 0 && txt[0] == '#' && (len == 1 || txt[1] != '\\')) {
fprintf(fpto, "<h1>");
mdt.headingone = 1;
}
else if (len > 0 && txt[0] == '>' && (len == 1 || txt[1] != '\\')) {
fprintf(fpto, "<blockquote>");
mdt.quote = 1;
}
else {
fprintf(fpto, "<p>"); fprintf(fpto, "<p>");
}
for(i = 0; i < len; i++) { for(i = 0; i < len; i++) {
if (txt[i] == '_' && (i == 0 || txt[i-1] != '\\')) { if (txt[i] == '_' && (i == 0 || txt[i-1] != '\\')) {
if(!mdt.italic) { if(!mdt.italic) {
fprintf(fpto, "<i>"); fprintf(fpto, "<i>");
@ -122,9 +130,8 @@ int main(int argc, char *argv[]) {
mdt.italic = 0; mdt.italic = 0;
} }
} }
else if (i + 1 < len && txt[i] == '*' && txt[i+1] == '*' && (i == 0 || txt[i-1] != '\\')) { else if (i + 1 < len && txt[i] == '*' && txt[i+1] == '*' && (i == 0 || txt[i-1] != '\\')) {
if(mdt.bold) { if(!mdt.bold) {
fprintf(fpto, "<b>"); fprintf(fpto, "<b>");
mdt.bold = 1; mdt.bold = 1;
i++; i++;
@ -134,41 +141,25 @@ int main(int argc, char *argv[]) {
i++; i++;
} }
} }
else if (txt[i] == '>' && (i == 0 || txt[i-1] != '\\')) {
if(!mdt.quote) {
fprintf(fpto, "<blockquote>");
mdt.quote = 1;
} else {
fprintf(fpto, "</blockquote>");
mdt.quote = 0;
}
}
else { else {
fputc(txt[i], fpto); fputc(txt[i], fpto);
} }
} }
if(mdt.italic) { if(mdt.italic) fprintf(fpto, "</i>");
fprintf(fpto, "</i>"); else if(mdt.bold) fprintf(fpto, "</b>");
}; else if(mdt.quote) fprintf(fpto, "</blockquote>");
if(mdt.bold) { else if(mdt.headingone) {
fprintf(fpto, "</b>"); fprintf(fpto, "</h1>\n");
} } else {
if(mdt.quote) {
fprintf(fpto, "</blockquote>");
}
if(mdt.headingone) {
fprintf(fpto, "</h1>");
}
fprintf(fpto, "</p>\n"); fprintf(fpto, "</p>\n");
}
mdt.italic = mdt.bold = mdt.quote = mdt.headingone = 0; mdt.italic = mdt.bold = mdt.quote = mdt.headingone = 0;
} }
}
fprintf(fpto, "</body>\n</html>"); fprintf(fpto, "</body>\n</html>");
fclose(fptr); fclose(fptr);
fclose(fpto); fclose(fpto);
return 0; return 0;
} }