Cita:
Assertion [cpMax <= pdoc->Length()] failed at ../src/Editor.cpp 6096
Abortado (`core' generado)
Cita:
Los siguientes paquetes se han retenido:
libsqlite3-0 libsqlite3-dev python3-update-manager sqlite3 sqlitebrowser update-manager-core
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 6 no actualizados.
Cita:
Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
libqscintilla2-qt5-15 libqscintilla2-qt5-l10n
Utilice «sudo apt autoremove» para eliminarlos.
Los siguientes paquetes se han retenido:
libsqlite3-0 libsqlite3-dev python3-update-manager sqlite3 update-manager-core
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 5 no actualizados.
sudo apt list --upgradableCita:
Listando... Hecho
libsqlite3-0/jammy 3.44.0-0-20359~202311021114~202311041424~ubuntu22.04.1 amd64 [actualizable desde: 3.37.2-2ubuntu0.3]
libsqlite3-dev/jammy 3.44.0-0-20359~202311021114~202311041424~ubuntu22.04.1 amd64 [actualizable desde: 3.37.2-2ubuntu0.3]
python3-update-manager/jammy-updates,jammy-updates 1:22.04.20 all [actualizable desde: 1:22.04.19]
sqlite3/jammy 3.44.0-0-20359~202311021114~202311041424~ubuntu22.04.1 amd64 [actualizable desde: 3.37.2-2ubuntu0.3]
update-manager-core/jammy-updates,jammy-updates 1:22.04.20 all [actualizable desde: 1:22.04.19]
sudo apt-get install libsqlite3-0 libsqlite3-dev python3-update-manager sqlite3 update-manager-coreCita:
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
glib-networking:i386 gstreamer1.0-x:i386 libaa1:i386 libavc1394-0:i386 libcaca0:i386 libcairo-gobject2:i386 libdv4:i386 libgdk-pixbuf-2.0-0:i386 libgstreamer-plugins-good1.0-0:i386 libgudev-1.0-0:i386 libiec61883-0:i386
libmp3lame0:i386 libproxy1v5:i386 libraw1394-11:i386 libshout3:i386 libslang2:i386 libspeex1:i386 libtag1v5:i386 libtag1v5-vanilla:i386 libtwolame0:i386 libvpx7:i386 libwavpack1:i386 libxdamage1:i386 libxv1:i386
Utilice «sudo apt autoremove» para eliminarlos.
Paquetes sugeridos:
sqlite3-doc
Los siguientes paquetes se ELIMINARÁN:
gstreamer1.0-plugins-good:i386 libsoup2.4-1:i386 libsqlite3-0:i386
Se actualizarán los siguientes paquetes:
libsqlite3-0 libsqlite3-dev python3-update-manager sqlite3 update-manager-core
5 actualizados, 0 nuevos se instalarán, 3 para eliminar y 0 no actualizados.
Se necesita descargar 2.727 kB de archivos.
Se liberarán 9.666 kB después de esta operación.
Cita:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Calculando la actualización... Hecho
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados.

Cita:
«DB Browser for SQLite» Versión 3.13.99 (Jul 23 2024)
Último «commit hash» cuando fue compilado: Unknown
Compilado para x86_64-little_endian-lp64, ejecutándose en x86_64
Versión de Qt 5.15.3
Versión de SQLCipher 4.5.5 community (basado en SQLite 3.42.0).
Cita:Firefox ha detectado una potencial amenaza de seguridad y no ha continuado a www.sede.fnmt.gob.es porque este sitio web requiere una conexión segura.
¿Qué puede hacer al respecto?
www.sede.fnmt.gob.es tiene una política de seguridad llamada HTTP Strict Transport Security (HSTS), que significa que Firefox solo puede conectarse a él de forma segura. No puede añadir una excepción para visitar este sitio.
El problema está probablemente en el sitio web, y no hay nada que pueda hacer para resolverlo.
Si está en una red corporativa o utilizando un antivirus, puede ponerse en contacto con el equipo de asistencia para obtener ayuda. También puede notificar el problema al administrador del sitio web.
Ventana inferior dice:
Alguien podría estar tratando de suplantar el sitio y usted no debería continuar. Los sitios web prueban su identidad mediante certificados. Firefox no confía en www.sede.fnmt.gob.es porque su emisor del certificado es desconocido, el certificado es autofirmado o el servidor no está enviando los certificados intermediarios correctos.
which javajava -version
#include <stdio.h>
#include <stdlib.h>
#include <libredwg.h>
const char* list_blocks(const char* filename) {
static char result[4096];
DWG_Data *dwg;
int i;
// Inicializa la biblioteca
dwg = dwg_read(filename);
if (!dwg) {
return "Error reading DWG file.";
}
// Recorre los bloques y crea una lista
result[0] = '\0';
for (i = 0; i < dwg->num_blocks; i++) {
strcat(result, dwg->blocks[i].name);
strcat(result, "\n");
}
// Limpia
dwg_free(dwg);
return result;
}/*****************************************************************************/
/* LibreDWG - free implementation of the DWG file format */
/* */
/* Copyright (C) 2018-2019 Free Software Foundation, Inc. */
/* */
/* This library is free software, licensed under the terms of the GNU */
/* General Public License as published by the Free Software Foundation, */
/* either version 3 of the License, or (at your option) any later version. */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/*****************************************************************************/
/*
* dwglayers.c: print list of layers in a DWG
*
* written by Reini Urban
*/
#include "../src/config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <getopt.h>
#ifdef HAVE_VALGRIND_VALGRIND_H
# include <valgrind/valgrind.h>
#endif
#include <dwg.h>
#include "common.h"
#include "bits.h"
#include "logging.h"
static int
usage (void)
{
printf ("\nUsage: dwglayers [-f|--flags] [--on] <input_file.dwg>\n");
return 1;
}
static int
opt_version (void)
{
printf ("dwglayers %s\n", PACKAGE_VERSION);
return 0;
}
static int
help (void)
{
printf ("\nUsage: dwglayers [OPTION]... DWGFILE\n");
printf ("Print list of layers.\n"
"\n");
#ifdef HAVE_GETOPT_LONG
printf (" -x, --extnames prints EXTNAMES (r13-r14 only)\n"
" i.e. space instead of _\n");
printf (" -f, --flags prints also flags:\n"
" 3 chars for: f for frozen, + or - for ON or OFF, l "
"for locked\n");
printf (" -o, --on prints only ON layers\n");
printf (" -h, --help display this help and exit\n");
printf (" --version output version information and exit\n"
"\n");
#else
printf (" -x prints EXTNAMES (r13-r14 only)\n"
" i.e. space instead of _\n");
printf (" -f prints also flags:\n"
" 3 chars for: f for frozen, + or - for ON or OFF, l "
"for locked\n");
printf (" -o prints only ON layers\n");
printf (" -h display this help and exit\n");
printf (" -i output version information and exit\n"
"\n");
#endif
printf ("GNU LibreDWG online manual: "
"<https://www.gnu.org/software/libredwg/>\n");
return 0;
}
int
main (int argc, char *argv[])
{
int error;
long i = 1;
int flags = 0, on = 0, extnames = 0;
char *filename_in;
Dwg_Data dwg;
Dwg_Object *obj;
Dwg_Object_LAYER *layer;
Dwg_Object_LAYER_CONTROL *_ctrl;
int c;
#ifdef HAVE_GETOPT_LONG
int option_index = 0;
static struct option long_options[] = { { "flags", 0, 0, 'f' },
{ "extnames", 0, 0, 'x' },
{ "on", 0, 0, 'o' },
{ "help", 0, 0, 0 },
{ "version", 0, 0, 0 },
{ NULL, 0, NULL, 0 } };
#endif
while
#ifdef HAVE_GETOPT_LONG
((c = getopt_long (argc, argv, "xfoh", long_options, &option_index))
!= -1)
#else
((c = getopt (argc, argv, "xfohi")) != -1)
#endif
{
if (c == -1)
break;
switch (c)
{
#ifdef HAVE_GETOPT_LONG
case 0:
if (!strcmp (long_options[option_index].name, "version"))
return opt_version ();
if (!strcmp (long_options[option_index].name, "help"))
return help ();
break;
#else
case 'i':
return opt_version ();
#endif
case 'x':
extnames = 1;
break;
case 'f':
flags = 1;
break;
case 'o':
on = 1;
break;
case 'h':
return help ();
case '?':
fprintf (stderr, "%s: invalid option '-%c' ignored\n", argv[0],
optopt);
break;
default:
return usage ();
}
}
i = optind;
if (i >= argc)
return usage ();
filename_in = argv[i];
memset (&dwg, 0, sizeof (Dwg_Data));
error = dwg_read_file (filename_in, &dwg);
if (error >= DWG_ERR_CRITICAL)
fprintf (stderr, "READ ERROR %s: 0x%x\n", filename_in, error);
obj = dwg_get_first_object (&dwg, DWG_TYPE_LAYER_CONTROL);
_ctrl = obj->tio.object->tio.LAYER_CONTROL;
for (i = 0; i < _ctrl->num_entries; i++)
{
char *name;
assert (_ctrl->entries);
assert (_ctrl->entries[i]);
obj = _ctrl->entries[i]->obj;
if (!obj || obj->type != DWG_TYPE_LAYER) // can be DICTIONARY also
continue;
assert (_ctrl->entries[i]->obj->tio.object);
layer = _ctrl->entries[i]->obj->tio.object->tio.LAYER;
if (on && (!layer->on || layer->frozen))
continue;
if (flags)
printf ("%s%s%s\t", layer->frozen ? "f" : " ", layer->on ? "+" : "-",
layer->locked ? "l" : " ");
if (extnames && dwg.header.from_version >= R_13 && dwg.header.from_version < R_2000)
{
if (!(name = dwg_find_table_extname (&dwg, obj)))
name = layer->name;
}
else
name = layer->name;
// since r2007 unicode, converted to utf-8
if (dwg.header.from_version >= R_2007)
{
char *utf8 = bit_convert_TU ((BITCODE_TU)name);
printf ("%s\n", utf8);
free (utf8);
}
else
printf ("%s\n", name);
fflush (stdout);
}
// forget about valgrind. really huge DWG's need endlessly here.
if ((dwg.header.version && dwg.num_objects < 1000)
#if defined __SANITIZE_ADDRESS__ || __has_feature(address_sanitizer)
|| 1
#endif
#ifdef HAVE_VALGRIND_VALGRIND_H
|| (RUNNING_ON_VALGRIND)
#endif
)
dwg_free (&dwg);
return error >= DWG_ERR_CRITICAL ? 1 : 0;
}