author | "German Poo-Caaman~o <gpoo@gnome.org>" |
Wed, 15 Nov 2006 22:50:31 -0300 | |
changeset 6 | 4e44e6123b42 |
parent 5 | 4ca4c0227161 |
child 7 | 00ea2985a116 |
permissions | -rw-r--r-- |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1 |
<?xml version="1.0" encoding="ISO-8859-1"?> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2 |
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
3 |
"/usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd" [ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
4 |
<!ENTITY Emacs "<application>Emacs</application>"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
5 |
<!ENTITY Vim "<application>Vim</application>"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
6 |
<!ENTITY ChangeLog "<filename>ChangeLog</filename>"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
7 |
]> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
8 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
9 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
10 |
<article class="techreport" id="index" lang="es"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
11 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
12 |
<articleinfo> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
13 |
<title>Guía de programación de GNOME</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
14 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
15 |
<authorgroup> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
16 |
<author> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
17 |
<firstname>Federico</firstname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
18 |
<surname>Mena Quintero</surname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
19 |
<affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
20 |
<address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
21 |
<email>federico@gnu.org</email> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
22 |
</address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
23 |
</affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
24 |
</author> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
25 |
<author> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
26 |
<firstname>Miguel</firstname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
27 |
<surname>de Icaza</surname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
28 |
<affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
29 |
<address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
30 |
<email>miguel@kernel.org</email> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
31 |
</address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
32 |
</affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
33 |
</author> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
34 |
<author> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
35 |
<firstname>Morten</firstname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
36 |
<surname>Welinder</surname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
37 |
<affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
38 |
<address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
39 |
<email>terra@diku.dk</email> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
40 |
</address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
41 |
</affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
42 |
</author> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
43 |
<othercredit> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
44 |
<firstname>Germán</firstname> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
45 |
<surname>Poó Caamaño</surname> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
46 |
<contrib>Traducción al español</contrib> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
47 |
<affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
48 |
<address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
49 |
<email>gpoo@ubiobio.cl</email> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
50 |
</address> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
51 |
</affiliation> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
52 |
</othercredit> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
53 |
<othercredit> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
54 |
<firstname>Lucas</firstname> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
55 |
<surname>Vieites Fariña</surname> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
56 |
<contrib>Revisión de la traducción al español </contrib> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
57 |
<affiliation> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
58 |
<address> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
59 |
<email>lucas@asixinformatica.com</email> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
60 |
</address> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
61 |
</affiliation> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
62 |
</othercredit> |
4
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
63 |
<othercredit> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
64 |
<firstname>Sergio</firstname> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
65 |
<surname>Villar Senin</surname> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
66 |
<contrib>Revisión de la traducción al español </contrib> |
4
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
67 |
<affiliation> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
68 |
<address> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
69 |
<email>svillar@igalia.com</email> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
70 |
</address> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
71 |
</affiliation> |
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
72 |
</othercredit> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
73 |
</authorgroup> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
74 |
<copyright> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
75 |
<year>2000</year> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
76 |
<holder>The Free Software Foundation</holder> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
77 |
</copyright> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
78 |
<copyright> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
79 |
<year>2004—2006</year> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
80 |
<holder>GNOME Foundation, respecto de la versión en español.</holder> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
81 |
</copyright> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
82 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
83 |
<abstract> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
84 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
85 |
Este artículo contiene varías guías y sugerencias para los |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
86 |
programadores de GNOME, así como ciertas políticas que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
87 |
deberían seguirse cuando se escriben programas para GNOME. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
88 |
Es un intento para que los programadores puedan aprender |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
89 |
acerca del proceso de desarrollo de GNOME y su filosofía. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
90 |
GNOME es un esfuerzo de equipo, así que será útil para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
91 |
que los programadores sepan «la forma de hacer la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
92 |
cosas». |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
93 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
94 |
</abstract> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
95 |
</articleinfo> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
96 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
97 |
<!-- Introduction --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
98 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
99 |
<sect1 id="intro"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
100 |
<title>Introducción</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
101 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
102 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
103 |
GTK+, la biblioteca de interfaz de usuario básica de GNOME, nos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
104 |
ha enseñado algunas lecciones importantes en el diseño de software. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
105 |
El código de GTK+ es limpio, consistente, mantenible y tiene |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
106 |
sentido. Tal código no sólo provoca placer al trabajar con el, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
107 |
sino que además es un incentivo para las buenas prácticas de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
108 |
programación para aquellos que quieran extenderlo y modificarlo. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
109 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
110 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
111 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
112 |
En este artículo intentamos presentar algunas sugerencias y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
113 |
lineamientos que deberías tener en cuenta cuando escribas código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
114 |
para el proyecto GNOME. Presentamos algunas de las políticas |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
115 |
que deben seguirse cuando se modifica el código de otras |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
116 |
personas, usando el repositorio CVS y asegurándose de que el |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
117 |
código se ajusta para ser incluído en GNOME. También |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
118 |
presentamos información que será útil para los mantenedores |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
119 |
de paquetes. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
120 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
121 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
122 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
123 |
Además de este documento, asegúrate de leer los Estándares de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
124 |
Programación de GNU. Estos se encuentran disponibles en el |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
125 |
nodo info <filename>(Standards)</filename> en la documentación |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
126 |
estándar de GNU. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
127 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
128 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
129 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
130 |
<!-- The Importance of Writing Good Code --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
131 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
132 |
<sect1 id="good-code"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
133 |
<title>La importancia de escribir buen código</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
134 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
135 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
136 |
GNOME es un proyecto de software libre muy ambicioso y, como tal, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
137 |
está compuesto por muchos paquetes de software que son más o menos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
138 |
independientes el uno del otro. Mucho del trabajo en GNOME lo |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
139 |
realizan voluntarios; programadores que vienen y se van |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
140 |
en cualquier momento y que serán capaces de dedicar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
141 |
diferentes cantidades de tiempo al proyecto GNOME. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
142 |
Muchas personas trabajan en software libre en su tiempo libre o |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
143 |
como un pasatiempo, así, si sus responsabilidades del ‘mundo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
144 |
real’ cambian, se verá reflejado en la cantidad de trabajo que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
145 |
dedicarán a proyectos de software libre. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
146 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
147 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
148 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
149 |
Se tarda mucho tiempo en escribir software y supone una |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
150 |
gran cantidad de trabajo. Es por esto que muchos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
151 |
de los voluntarios de tiempo parcial no pueden comenzar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
152 |
grandes proyectos por sí mismos; es mucho más fácil y |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
153 |
gratificante contribuir a proyectos existentes, puesto que |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
154 |
los resultados son inmediatamente visibles y usables. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
155 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
156 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
157 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
158 |
Teniendo esto en cuenta y el hecho que los programadores de |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
159 |
software libre tiene recursos escasos, concluimos que |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
160 |
para los proyectos existentes es muy importante facilitar, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
161 |
tanto como sea posible, que otras personas puedan contribuir. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
162 |
Una forma de hacerlo es asegurándose de que los programas |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
163 |
sean fáciles de leer, entender y modificar. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
164 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
165 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
166 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
167 |
El código desordenado es difícil de leer y las personas pueden |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
168 |
perder interés si no son capaces de descifrar lo que el código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
169 |
intenta hacer. Además, es importante que los programadores sean |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
170 |
capaces de entender el código rápidamente, y así poder comenzar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
171 |
a contribuir reparando fallos y extendiéndolo en un período breve |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
172 |
de tiempo. El código fuente es una forma de comunicación, y así |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
173 |
como a alguien podría no querer leer una novela con errores |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
174 |
ortográficos y mala puntuación, los programadores deben intentar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
175 |
escribir buen código de tal forma que sea fácil de entender y |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
176 |
modificar por otros. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
177 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
178 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
179 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
180 |
Existen algunas cualidades que son importantes en un buen |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
181 |
código y por qué son importantes para los desarrolladores |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
182 |
de software libre: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
183 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
184 |
<variablelist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
185 |
<varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
186 |
<term>Limpieza</term> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
187 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
188 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
189 |
Un código limpio es fácil de leer; permite a las |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
190 |
personas leerlo con un mínimo esfuerzo y así pueden |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
191 |
entenderlo más fácilmente. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
192 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
193 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
194 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
195 |
<varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
196 |
<term>Consistencia</term> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
197 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
198 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
199 |
El código consistente permite más fácilmente que las |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
200 |
personas entiendan como funciona el programa; cuando se |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
201 |
lee código consistente, subconcientemente uno se forma |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
202 |
un número de supuestos y expectativas acerca del |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
203 |
funcionamiento del código, de esta forma es más fácil |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
204 |
y seguro realizarle modificaciones. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
205 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
206 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
207 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
208 |
<varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
209 |
<term>Extensibilidad</term> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
210 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
211 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
212 |
El código de propósito general es más fácil de reutilizar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
213 |
y modificar que el código demasiado específico con muchos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
214 |
supuestos escritos directamente en el código (hardcoded). |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
215 |
Cuando alguien desea agregar una nueva característica |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
216 |
a un programa, obviamente será más fácil hacerlo si el |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
217 |
código fue diseñado para ser extensible desde el inicio. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
218 |
El código que no fue escrito de esta forma hará que las |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
219 |
personas deban implementar hacks muy feos para poder |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
220 |
añadir características. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
221 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
222 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
223 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
224 |
<varlistentry> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
225 |
<term>Corrección</term> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
226 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
227 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
228 |
Finalmente, el código diseñado debe ser correcto para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
229 |
que las personas pierdan menos tiempo preocupándose de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
230 |
los errores y se ocupen en extender las |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
231 |
características de un programa. Los usuarios también |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
232 |
apreciarán un código correcto, ya que a nadie le gusta |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
233 |
que un programa se caiga. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
234 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
235 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
236 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
237 |
</variablelist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
238 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
239 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
240 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
241 |
En resumen, los programadores a menudo contribuyen en |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
242 |
su tiempo libre a proyectos de software libre, y aún quienes |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
243 |
contribuyen de forma regular pueden detenerse en cualquier |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
244 |
instante del tiempo, así que es muy importante que el código |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
245 |
sea bueno y les permita modificarlo facilmente. El resultado |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
246 |
final será un mejor software al que los programadores |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
247 |
querrán extender. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
248 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
249 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
250 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
251 |
<!-- Coding Style --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
252 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
253 |
<sect1 id="code-style"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
254 |
<title>Estilo de programación</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
255 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
256 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
257 |
‘El estilo de programación’ se refiere a la forma en |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
258 |
que se da formato al código fuente. Para C, esto involucra |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
259 |
la forma en que se ubican las llaves, se indenta el código y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
260 |
se utilizan los paréntesis. GNOME tiene una mezcla de estilos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
261 |
de programación y no se obliga el uso de ninguno de ellos. Lo más |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
262 |
importante es que el código sea consistente dentro de un programa |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
263 |
o una biblioteca — el código con un formato desordenado |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
264 |
no es aceptable debido a que es difícil de leer. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
265 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
266 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
267 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
268 |
Cuando escribas un nuevo programa o biblioteca, sigue un |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
269 |
estilo consistente de ubicación de llaves y de indentación. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
270 |
Si no tienes ninguna preferencia personal de estilo, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
271 |
recomendamos el estilo de programación del núcleo de Linux o |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
272 |
el estilo de programación de GNU. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
273 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
274 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
275 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
276 |
Lee el nodo de info <filename>(Standards)Writing C</filename> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
277 |
en la documentación de GNU. Luego, obtén el código fuente |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
278 |
de Linux y lee el archivo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
279 |
<filename>linux/Documentation/CodingStyle</filename>, e |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
280 |
ignora los chistes de Linus. Estos dos documentos te darán |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
281 |
una buena idea de nuestras recomendaciones para el código de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
282 |
GNOME. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
283 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
284 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
285 |
<!-- Indentation Style --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
286 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
287 |
<sect2 id="indent"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
288 |
<title>Estilo de indentación</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
289 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
290 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
291 |
Para el código del núcleo de GNOME preferimos el estilo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
292 |
de indentación del núcleo de Linux. Usa tabuladores |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
293 |
de 8 espacios para la indentación. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
294 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
295 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
296 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
297 |
Usar tabuladores de 8 espacios para indentación proporciona |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
298 |
un número de beneficios. Permite que el código sea más |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
299 |
fácil de leer, ya que la indentación se marca claramente. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
300 |
También ayuda a mantener el código ordenado |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
301 |
forzando a dividir funciones en trozos más modulares y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
302 |
bien definidos — si la indentación va más allá del |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
303 |
margen derecho, significa que la función está mal |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
304 |
diseñada y que debiera dividirse para hacerla más modular |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
305 |
o bien, repensarla. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
306 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
307 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
308 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
309 |
Los tabuladores de 8 espacios para indentación también |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
310 |
ayudan al diseño de funciones que encajen bien en la pantalla, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
311 |
lo cual significa que las personas puedan entender el código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
312 |
sin tener que desplazarse atrás y adelante para entenderlo. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
313 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
314 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
315 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
316 |
Si usas &Emacs;, entonces puedes seleccionar el estilo de |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
317 |
indentación del núcleo de Linux incluyendo en el |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
318 |
archivo <filename>.emacs</filename> lo siguiente: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
319 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
320 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
321 |
(add-hook 'c-mode-common-hook |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
322 |
(lambda () |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
323 |
(c-set-style "k&r") |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
324 |
(setq c-basic-offset 8)))</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
325 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
326 |
En los nuevos Emacs o con el nuevo cc-mode, puedes ser capaz |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
327 |
de hacerlo más simple con: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
328 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
329 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
330 |
(add-hook 'c-mode-common-hook |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
331 |
(lambda () |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
332 |
(c-set-style "linux")))</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
333 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
334 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
335 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
336 |
El estilo de indentación de GNU es el predeterminado para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
337 |
&Emacs;, así que no es necesario agregar nada en el |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
338 |
archivo <filename>.emacs</filename> para habilitarlo. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
339 |
Si deseas seleccionarlo explícitamente, sustituye |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
340 |
«gnu» por «linux» en el ejemplo anterior. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
341 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
342 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
343 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
344 |
Si usas &Vim;, entonces puedes seleccionar el estilo |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
345 |
de indentación del núcleo de Linux incluyendo el |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
346 |
siguiente fragmento en el archivo |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
347 |
<filename>.vimrc</filename>: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
348 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
349 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
350 |
set ts=8 |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
351 |
if !exists("autocommands_loaded") |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
352 |
let autocommands_loaded = 1 |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
353 |
augroup C |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
354 |
autocmd BufRead *.c set cindent |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
355 |
augroup END |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
356 |
endif</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
357 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
358 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
359 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
360 |
Como alternativa puedes seleccionar el estilo de |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
361 |
indentación de GNU en &Vim; usando lo siguiente en |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
362 |
el archivo <filename>.vimrc</filename>: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
363 |
<footnote> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
364 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
365 |
Gracias a Tomas Ögren por proporcionar este código. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
366 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
367 |
</footnote>: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
368 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
369 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
370 |
augroup C |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
371 |
autocmd BufRead *.c set cinoptions={.5s,:.5s,+.5s,t0,g0,^-2,e-2,n-2,p2s,(0,=.5s formatoptions=croql cindent shiftwidth=4 tabstop=8 |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
372 |
augroup END</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
373 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
374 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
375 |
<note> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
376 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
377 |
Si sabe personalizar el estilo de indentación en otros |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
378 |
editores populares, por favor háganoslo saber y así podemos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
379 |
expandir este documento. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
380 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
381 |
</note> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
382 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
383 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
384 |
<!-- Naming Conventions --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
385 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
386 |
<sect2 id="naming"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
387 |
<title>Convenciones de nombres</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
388 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
389 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
390 |
Es importante seguir una buena convención de nombres para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
391 |
los símbolos de los programas. Es específicamente |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
392 |
importante para las bibliotecas, ya que no debería |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
393 |
ensuciarse el espacio de nombres global — es muy |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
394 |
molesto cuando una biblioteca tiene símbolos nombrados |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
395 |
desordenadamente que chocan con nombres que pueda |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
396 |
querer usar en sus programas. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
397 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
398 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
399 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
400 |
Los nombres de las funciones deberían ser de la forma |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
401 |
<function>modulo_submodulo_operacion</function>, por ejemplo, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
402 |
<function>gnome_canvas_set_scroll_region</function> o |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
403 |
<function>gnome_mime_get_keys</function>. Esta convención |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
404 |
elimina las colisiones de nombres de símbolos entre módulos. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
405 |
Es muy importante para las bibliotecas. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
406 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
407 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
408 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
409 |
Los símbolos deben tener nombres descriptivos. Como Linus |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
410 |
dice, no use <function>cntusr()</function>, sino que use |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
411 |
<function>count_active_users()</function>. Esto permite |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
412 |
que el código sea más fácil de leer y casi se auto |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
413 |
documenta. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
414 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
415 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
416 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
417 |
Intente usar las mismas convenciones de nombre que tienen |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
418 |
GTK+ y las bibliotecas de GNOME: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
419 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
420 |
<itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
421 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
422 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
423 |
Los nombres de las funciones en minúsculas, con líneas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
424 |
de subrayado para separar palabras, tal como: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
425 |
<function>gnome_canvas_set_scroll_region()</function>, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
426 |
<function>gnome_mime_get_keys()</function>. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
427 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
428 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
429 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
430 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
431 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
432 |
Las macros y las enumeraciones en mayúsculas, con líneas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
433 |
de subrayado para separar palabras, tal como: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
434 |
<symbol>GNOMEUIINFO_SUBTREE()</symbol> para una macro y |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
435 |
<symbol>GNOME_INTERACT_NONE</symbol> para un valor |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
436 |
enumerado. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
437 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
438 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
439 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
440 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
441 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
442 |
Los nombres de tipos y estructuras usan una mezcla de |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
443 |
mayúsculas y minúsculas, tal como: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
444 |
<symbol>GnomeCanvasItem</symbol>, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
445 |
<symbol>GnomeIconList</symbol>. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
446 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
447 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
448 |
</itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
449 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
450 |
Al utilizar líneas de subrayado para separar palabras el |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
451 |
código estará menos apretado y facilita la edición, ya |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
452 |
que puede usar las secuencias de teclas que permiten |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
453 |
navegar entre palabras más rápidamente en cualquier editor. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
454 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
455 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
456 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
457 |
Si estás escribiendo una biblioteca, entonces puedes necesitar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
458 |
exportar símbolos que serán usados sólo dentro de la |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
459 |
biblioteca. Por ejemplo, dos de los archivos objeto que |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
460 |
componen la biblioteca <filename>libfoo.so</filename> pueden |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
461 |
requerir acceder a símbolos ubicados en el otro archivo, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
462 |
pero se tiene la intención que éstos símbolos no sean |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
463 |
utilizados desde los programas de usuario. En este caso, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
464 |
coloca una línea de subrayado antes del nombre de la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
465 |
función y haz que la primera palabra siga la convención |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
466 |
estándar módulo/submódulo. Por ejemplo, podrías tener |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
467 |
una función llamada |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
468 |
<function>_foo_internal_frobnicate()</function>. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
469 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
470 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
471 |
<!-- Consistency in Naming --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
472 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
473 |
<sect3 id="consist"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
474 |
<title>Consistencia entre nombres</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
475 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
476 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
477 |
Es importante que las variables se nombren de manera |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
478 |
consistente. Por ejemplo, un módulo que manipula una |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
479 |
lista puedes elegir nombrar las variables que mantienen |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
480 |
un puntero a la lista como «<symbol>l</symbol>», |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
481 |
por elegancia y simplicidad. Sin embargo, es importante que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
482 |
un módulo que manipula widgets y tamaños no use variables |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
483 |
llamadas «<symbol>w</symbol>» tanto para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
484 |
widgets y anchos («width») (como en valores de ancho/alto); |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
485 |
esto podría hacer que el código sea inconsistente |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
486 |
y difícil de leer. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
487 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
488 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
489 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
490 |
Por supuesto, nombre muy cortos y elegantes solamente deberían |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
491 |
ser usados para variables locales de funciones. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
492 |
Nunca llame una variable global «<symbol>x</symbol>»; use |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
493 |
un nombre más largo que indique lo que significa. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
494 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
495 |
</sect3> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
496 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
497 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
498 |
<!-- Cleanliness --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
499 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
500 |
<sect2 id="clean"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
501 |
<title>Limpieza</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
502 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
503 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
504 |
El código de GNOME debe ser tan limpio como sea posible. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
505 |
Esto implica usar un estilo de indentación consistente |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
506 |
y una buena convención para nombrar símbolos, como se |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
507 |
ha indicado anteriormente. Esto también implica lo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
508 |
siguiente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
509 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
510 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
511 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
512 |
Aprender el uso correcto de la palabra reservada |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
513 |
<symbol>static</symbol>. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
514 |
<emphasis>No</emphasis> declarar todos los símbolos como |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
515 |
globales. Esto tiene la ventaja de poder usar nombres |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
516 |
más cortos dentro de las funciones en un sólo archivo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
517 |
fuente, ya que no son globalmente visibles y por |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
518 |
consiguiente no necesitas emplear el prefijo |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
519 |
módulo/submódulo. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
520 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
521 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
522 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
523 |
Aprender el uso correcto de la palabra reservada |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
524 |
<symbol>const</symbol>. Úsala consistentemente, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
525 |
así permitirás al compilador que atrape muchos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
526 |
errores estúpidos. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
527 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
528 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
529 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
530 |
Si tienes una función que retorna un puntero a |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
531 |
un dato interno que se supone que el usuario |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
532 |
no debe liberar, deberías usar el modificador |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
533 |
<symbol>const</symbol>. Este avisará al usuario si intenta |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
534 |
hacer alguna operación incorrecta, por ejemplo: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
535 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
536 |
<programlisting> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
537 |
const char *gnome_mime_get_info (const char *info);</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
538 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
539 |
El compilador avisará si el usuario intenta liberar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
540 |
la cadena retornada. Esto puede atrapar muchos |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
541 |
errores. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
542 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
543 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
544 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
545 |
Si tienes «valores mágicos» en el programa o |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
546 |
biblioteca, usa macros que los definan en vez de usarlos |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
547 |
directamente en el código: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
548 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
549 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
550 |
/* Amount of padding for GUI elements */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
551 |
#define GNOME_PAD 8 |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
552 |
#define GNOME_PAD_SMALL 4 |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
553 |
#define GNOME_PAD_BIG 12</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
554 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
555 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
556 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
557 |
Si tienes una lista de valores posibles para una variable, |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
558 |
no uses macros para ellas, usa enum para darle |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
559 |
un nombre de tipo — esto permite disponer de nombres |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
560 |
simbólicos en un depurador. Además, no uses |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
561 |
«int» para almacenar un valor enumerado; usa |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
562 |
el tipo enum. Esto le permite al compilador atrapar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
563 |
los errores por tí, permitiéndole al depurador mostrar los |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
564 |
valores apropiados y hacer obvios los valores que una |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
565 |
variable puede tomar. A continuación un ejemplo: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
566 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
567 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
568 |
/* Shadow types */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
569 |
typedef enum { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
570 |
GTK_SHADOW_NONE, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
571 |
GTK_SHADOW_IN, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
572 |
GTK_SHADOW_OUT, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
573 |
GTK_SHADOW_ETCHED_IN, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
574 |
GTK_SHADOW_ETCHED_OUT |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
575 |
} GtkShadowType; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
576 |
|
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
577 |
void gtk_frame_set_shadow_type (GtkFrame *frame, GtkShadowType type);</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
578 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
579 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
580 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
581 |
Si define un conjunto de valores para un campo de bits, haz |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
582 |
lo siguiente: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
583 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
584 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
585 |
<![CDATA[ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
586 |
/* Update flags for items */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
587 |
enum { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
588 |
GNOME_CANVAS_UPDATE_REQUESTED = 1 << 0, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
589 |
GNOME_CANVAS_UPDATE_AFFINE = 1 << 1, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
590 |
GNOME_CANVAS_UPDATE_CLIP = 1 << 2, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
591 |
GNOME_CANVAS_UPDATE_VISIBILITY = 1 << 3, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
592 |
GNOME_CANVAS_UPDATE_IS_VISIBLE = 1 << 4 |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
593 |
};]]></programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
594 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
595 |
Esto hace más fácil modificar la lista de valores y menos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
596 |
propenso a error que especificando los valores a mano. También |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
597 |
permite usar estos valores como símbolos en un depurador. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
598 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
599 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
600 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
601 |
No escribas código ofuscado, intenta que sea espartano. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
602 |
Para clarificar una expresión, no uses más paréntesis que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
603 |
los necesarios. Usa espacios antes de los paréntesis y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
604 |
después de las comas y también alrededor de los operadores |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
605 |
binarios. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
606 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
607 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
608 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
609 |
No escribas hacks en el código. En vez de escribir un |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
610 |
hack feo, reescribe el código para que quede limpio, |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
611 |
extensible y mantenible. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
612 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
613 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
614 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
615 |
Asegúrate de que el código compila absolutamente sin ningún |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
616 |
aviso del compilador. Esto te ayudará a atrapar errores |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
617 |
estúpidos. Usa los prototipos de las funciones en los |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
618 |
archivos de encabezados de forma consistente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
619 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
620 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
621 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
622 |
Dentro de GNOME puedes usar la macro de Autoconf |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
623 |
<symbol>GNOME_COMPILE_WARNINGS</symbol> en el archivo |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
624 |
<filename>configure.in</filename>. Esto permitirá contar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
625 |
con un buen conjunto de avisos del compilador de una manera |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
626 |
portable. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
627 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
628 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
629 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
630 |
Comenta el código. Coloca comentarios antes de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
631 |
cada función para decir que hace. No digas cómo lo hace |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
632 |
a menos que sea absolutamente necesario; debería ser |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
633 |
obvio al leer el código. Si no lo fuera, entonces |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
634 |
puedes desear reescribirla hasta que sea fácil de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
635 |
entender. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
636 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
637 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
638 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
639 |
Cuando documentes las funciones de la API de una biblioteca, |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
640 |
sigue las directrices indicadas en el archivo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
641 |
<filename>gnome-libs/devel-docs/api-comment-style.txt</filename>. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
642 |
Esto permite que el código fuente pueda proporcionar documentación |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
643 |
en línea, que posteriormente se extrae mediante el sistema |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
644 |
<application>gtk-doc</application> para crear un manual DocBook |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
645 |
de forma automática. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
646 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
647 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
648 |
<!-- Portability considerations --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
649 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
650 |
<sect3 id="portability"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
651 |
<title>Consideraciones de portabilidad</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
652 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
653 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
654 |
Se construye GNOME en muchas plataformas diferentes. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
655 |
Se puede asumir que serán plataformas más o menos tipo Unix; |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
656 |
hasta el momento GNOME no ha sido portado a sistema no-Unix, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
657 |
así que se puede asumir que los servicios estándares de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
658 |
Unix estarán disponibles.<footnote> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
659 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
660 |
¿Servicios estándar de Unix? Por supuesto que estamos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
661 |
bromeando. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
662 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
663 |
</footnote> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
664 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
665 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
666 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
667 |
Recuerda que el mundo no es tu propio equipo con GNU/Linux; |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
668 |
las gente realmente usa otros tipos de máquinas. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
669 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
670 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
671 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
672 |
Intenta no usar extensiones específicas de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
673 |
<application>GCC</application> debido a que éstas no |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
674 |
funcionarán con otros compiladores. Si realmente debes |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
675 |
hacer uso de tal cosa, ve la forma en que se hace |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
676 |
en <application>Glib</application> con el conjunto de |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
677 |
macros G_GNUC; asegúrate también de incluir código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
678 |
que funcione con compiladores ISO C. Si sólo tienes |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
679 |
disponible <application>GCC</application>, aprende a usar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
680 |
las opciones <option>-ansi -pedantic</option> que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
681 |
permiten probar código sospechoso. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
682 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
683 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
684 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
685 |
Recuerda que algunas plataformas no disponen de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
686 |
<application>GCC</application> o que |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
687 |
<application>GDB</application> puede ser inusable en ellos, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
688 |
y se querrán usar otros compiladores y depuradores. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
689 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
690 |
</sect3> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
691 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
692 |
<!-- GTK+-related Issues --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
693 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
694 |
<sect3 id="gtk"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
695 |
<title>Tópicos relacionados con GTK+</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
696 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
697 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
698 |
GTK+ permite hacer mucha magia y ofuscación con manejadores |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
699 |
de señal, pasar cerraduras y conjuntos de datos. Si te |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
700 |
encuentras utilizando muchos |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
701 |
<function>gtk_object_set_data()</function> en un mismo lugar, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
702 |
o estas pasando estados de forma extraña a través de manejadores |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
703 |
de señales, reescribe el código. Si necesitas adjuntar muchos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
704 |
datos a un objeto en particular, entonces es un buen candidato |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
705 |
para una nueva clase derivada, que no sólo hará al código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
706 |
más limpio, sino que también lo hará más extensible. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
707 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
708 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
709 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
710 |
Mucha de la heurística en manejadores de eventos complicadas |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
711 |
a menudo se pueden reemplazar limpiando el código a través |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
712 |
de una máquina de estados. Esto es útil cuando se quieren |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
713 |
implementar cosas truculentas como selección y comportamientos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
714 |
de arrastrado, y hará al código más fácil de depurar y extender. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
715 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
716 |
</sect3> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
717 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
718 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
719 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
720 |
<!-- Correctness and Robustness --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
721 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
722 |
<sect1 id="robust"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
723 |
<title>Corrección y robustez</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
724 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
725 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
726 |
Es extremadamente importante que el código de GNOME sea |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
727 |
correcto y robusto. Esto significa que el código debería hacer |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
728 |
lo que se espera que haga y debería manejar bien las condiciones |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
729 |
de excepción. Aunque esto pueda parecer obvio, esta sección |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
730 |
dará algunas ideas para asegurar la corrección de tu código |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
731 |
de GNOME. Esto es muy importante, ya que los usuarios esperan |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
732 |
y merecen un software confiable que se ejecute correctamente |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
733 |
y que no se caiga. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
734 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
735 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
736 |
<!-- Ensuring Consistency --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
737 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
738 |
<sect2 id="ensure"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
739 |
<title>Cómo asegurar la consistencia</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
740 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
741 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
742 |
<!-- FIXME: Buscar un mejor termino para "assertion" --> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
743 |
Utiliza las macros de aserción de Glib para asegurarte |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
744 |
que el estado de un programa es consistente. Estas macros |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
745 |
ayudan a localizar errores muy rápidamente y se gastará |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
746 |
mucho menos tiempo en el depurado si se emplean de forma |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
747 |
generosa y consistente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
748 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
749 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
750 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
751 |
Inserta verificaciones de sanidad en el código en puntos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
752 |
importantes como es el inicio de funciones públicas, al |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
753 |
final de código que realiza una búsqueda que siempre |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
754 |
debe ser exitosa y en cualquier lugar donde |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
755 |
el rango de valores calculados es importante. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
756 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
757 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
758 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
759 |
<!-- Assertions and Preconditions --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
760 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
761 |
<sect2 id="assert"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
762 |
<title>Aserciones y precondiciones</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
763 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
764 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
765 |
Las aserciones y precondiciones ayudan a asegurar que |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
766 |
el estado de un programa es consistente. Glib proporciona |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
767 |
macros para colocar aserciones y precondiciones en el |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
768 |
código. Deberías usarlas libremente; a cambio podrás |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
769 |
localizar errores muy rápidamente y ocuparás menos tiempo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
770 |
rastreando errores con el depurador. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
771 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
772 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
773 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
774 |
Existen macros de Glib para precondiciones, las cuales |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
775 |
emiten un mensaje cuando una condición falla y retornan |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
776 |
de la función desde donde fueron llamadas. Debieran ser |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
777 |
usadas en el inicio de las funciones. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
778 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
779 |
<variablelist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
780 |
<varlistentry> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
781 |
<term><function>g_return_if_fail |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
782 |
(condición)</function></term> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
783 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
784 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
785 |
Retorna desde la línea actual de la función si la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
786 |
<symbol>condición</symbol> es falsa. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
787 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
788 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
789 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
790 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
791 |
<varlistentry> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
792 |
<term><function>g_return_val_if_fail (condición, |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
793 |
valor)</function></term> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
794 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
795 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
796 |
Retorna el <symbol>valor</symbol> indicado desde |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
797 |
la función actual si la <symbol>condición</symbol> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
798 |
es falsa. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
799 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
800 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
801 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
802 |
</variablelist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
803 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
804 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
805 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
806 |
También existen macros para aserciones. Estas emitirán |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
807 |
un mensaje cuando una condición falle y llamará a la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
808 |
función <function>abort(3)</function> para terminar el |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
809 |
programa. Debieran ser usadas para asegurarse la |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
810 |
consistencia para códigos internos. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
811 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
812 |
<variablelist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
813 |
<varlistentry> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
814 |
<term><function>g_assert (condición)</function></term> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
815 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
816 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
817 |
Aborta el programa si la <symbol>condición</symbol> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
818 |
es falsa. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
819 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
820 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
821 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
822 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
823 |
<varlistentry> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
824 |
<term><function>g_assert_not_reached ()</function></term> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
825 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
826 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
827 |
Aborta el programa si se llama a la macro. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
828 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
829 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
830 |
</varlistentry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
831 |
</variablelist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
832 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
833 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
834 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
835 |
Estas funciones debieran emplearse para imponer |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
836 |
precondiciones en el código y verificar su corrección |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
837 |
— piensa en ellas como verificaciones de sanidad |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
838 |
en los programas. Debieras usarlas libremente como |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
839 |
asistencia para atrapar los errores rápidamente; una |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
840 |
vez que el programa se encuentre completamente depurado, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
841 |
puedes compilarlo con estas macros deshabilitadas y así |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
842 |
evitar añadirle sobrecarga al momento de ejecutarlos. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
843 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
844 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
845 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
846 |
Las macros <function>g_return_*()</function> debieran |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
847 |
emplearse al inicio de las funciones públicas de las |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
848 |
bibliotecas, para asegurarse de que los argumentos que se pasan |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
849 |
a ellas sean correctos y tengan un rango válido. Si |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
850 |
una función no retorna valor (por ejemplo, retorna |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
851 |
<symbol>void</symbol>), debieras usar |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
852 |
<function>g_return_if_fail()</function>. En caso contrario, |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
853 |
debiera usar <function>g_return_val_if_fail()</function> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
854 |
para retornar un valor ‘seguro’. Cuando |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
855 |
se invoca una función de biblioteca que usa estas macros |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
856 |
con un argumento incorrecto , se producirá un |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
857 |
mensaje de error y continuará la ejecución. El |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
858 |
programa cliente podrá tener algún sobresalto, hacer |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
859 |
nada o caerse, pero al menos sabrá |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
860 |
<emphasis>dónde</emphasis> se le ha pasado un valor |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
861 |
incorrecto a la función. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
862 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
863 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
864 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
865 |
La macro <function>g_assert()</function> debiera usarse para |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
866 |
asegurar la consistencia interna de una biblioteca o |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
867 |
programa. En vez de retornar de la función y continuar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
868 |
la ejecución si la condición falla, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
869 |
<function>g_assert()</function> producirá en mensaje de error |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
870 |
e inmediatamente abortará el programa. Esto es para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
871 |
evitar que el programa continúe ejecutándose en un |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
872 |
estado inconsistente. Debieras usar esta macro para |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
873 |
asegurarte de que el programa o biblioteca está usando |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
874 |
valores internos sanos. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
875 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
876 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
877 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
878 |
La macro <function>g_assert_not_reached()</function> se |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
879 |
usa para marcar el lugar en el código que nunca |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
880 |
debiera producirse. Por ejemplo, si tienes una |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
881 |
cláusula <symbol>switch</symbol> y piensas que manejas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
882 |
todos los valores posibles en las etiquetas |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
883 |
<symbol>case</symbol>, entonces debieras colocar |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
884 |
<function>g_assert_not_reached()</function> en la |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
885 |
etiqueta <symbol>default</symbol> para asegurarte de que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
886 |
el código nunca llegue allá (podría significar que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
887 |
ha perdido algún valor o que el programa se encuentra |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
888 |
incorrecto). |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
889 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
890 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
891 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
892 |
Estas macros ayudan a encontrar errores más rápido |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
893 |
a través de avisos que se producen tan pronto como |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
894 |
el programa alcanza un estado incosistente. Úsalos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
895 |
frecuentemente y encontrarás muchos errores más |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
896 |
fácilmente. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
897 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
898 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
899 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
900 |
<!-- GTK+-related Issues --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
901 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
902 |
<sect2 id="assert-gtk"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
903 |
<title>Tópicos relacionados con GTK+</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
904 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
905 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
906 |
Debe ser cuidadoso cuando escribas manejadores de eventos |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
907 |
— asegurate de que los eventos son manipulados en |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
908 |
las situaciones apropiadas. Es necesario asegurarse de |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
909 |
que los manejadores de señales tengan los prototipos |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
910 |
correctos. Esto es muy importante. Recuerda que no |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
911 |
todos los prototipos de manejadores de señal se parecen |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
912 |
a lo siguiente: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
913 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
914 |
<programlisting> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
915 |
static void my_handler (GtkWidget *widget, gpointer data);</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
916 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
917 |
Por ejemplo, los manejadores de eventos tienen un parámetro |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
918 |
extra de evento y retornan <symbol>gint</symbol>. Revisa los |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
919 |
archivos de encabezado de GTK+ cuando necesites verificarlo. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
920 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
921 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
922 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
923 |
Asegúrate que el programa trata de una forma apropiada |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
924 |
todas las acciones generadas por el usuario. Recuerda |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
925 |
que el usuario puede cerrar una ventana en cualquier |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
926 |
momento a través del administrador de ventanas; tenlo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
927 |
presente y escribe el código necesario para manejar esta |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
928 |
situación. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
929 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
930 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
931 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
932 |
Si verificas los modificadores de teclas con una máscara |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
933 |
de estado de eventos, por ejemplo, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
934 |
<keycombo><keycap>Control</keycap><keycap>F10</keycap></keycombo> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
935 |
escribe lo siguiente: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
936 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
937 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
938 |
guint modifiers; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
939 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
940 |
modifiers = gtk_accelerator_get_default_mod_mask (); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
941 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
942 |
if (event->keysym == GDK_F10 |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
943 |
&& (event->state & modifiers) == GDK_CONTROL_MASK) { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
944 |
do_something (); |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
945 |
}</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
946 |
|
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
947 |
Esto es necesario; si en vez de lo anterior escribes: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
948 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
949 |
<programlisting> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
950 |
if (event->keysym == GDK_F10 && event->state == GDK_CONTROL_MASK)</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
951 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
952 |
entonces el programa no funcionará correctamente si el |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
953 |
usuario tiene, por ejemplo, activada la tecla |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
954 |
<keycap>NumLock</keycap> — <keycap>NumLock</keycap> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
955 |
también es un modificador, y si está activado, entonces |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
956 |
la máscara de estado del evento no será como se espera |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
957 |
en el segundo ejemplo. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
958 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
959 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
960 |
<!-- Visuals and Colormaps --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
961 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
962 |
<sect3 id="visuals"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
963 |
<title>Vistas y mapas de color</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
964 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
965 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
966 |
<!-- FIXME: Buscar un término adecuado para "Visual" en |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
967 |
vez de "vista" --> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
968 |
Algunos usuarios utilizan tarjetas de vídeo avanzadas |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
969 |
(por ejemplo, SGIs y Suns) que soportan múltiples vistas |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
970 |
simúltaneamente. Una vista define la representación en memoria |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
971 |
que usa un dispositivo de hardware para almacenar los |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
972 |
contenidos de una imagen. Muchas tarjetas de vídeo de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
973 |
PC soportan sólo una vista a la vez, pero el hardware |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
974 |
avanzado puede tener diferentes ventanas y pixmaps en |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
975 |
diferentes vistas simultáneamente. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
976 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
977 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
978 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
979 |
Es importante entender las vistas y mapas de colores si |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
980 |
vas a escribir código que crea ventanas y pixmaps por tus |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
981 |
propios medios, en vez de utilizar las funciones de alto |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
982 |
nivel como GnomeCanvas y GnomePixmap. Para mayor información, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
983 |
lea el manual de programación de Xlib. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
984 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
985 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
986 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
987 |
En general, sólo necesitas recordar que la vista y el mapa |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
988 |
de colores de un área de dibujo debe coincidir con los de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
989 |
otra área de dibujo si deseas copiar un trozo desde la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
990 |
primera área de dibujo a la segunda. Si no son las mismas, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
991 |
podrías obtener el mensaje «BadMatch error» del servidor X y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
992 |
tu aplicación muy probablemente abortará su ejecución. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
993 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
994 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
995 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
996 |
Si creas un contexto gráfico (GC) y lo compartes para pintar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
997 |
en varias áreas de dibujo, asegúrate que todas ellas tengan |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
998 |
la misma vista y mapa de colores que fue definido para el |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
999 |
GC. Lo mismo se aplica si quieres copiar un área desde un |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1000 |
pixmap a una ventana; ambos deben tener la misma vista y mapa |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1001 |
de colores. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1002 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1003 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1004 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1005 |
Si no estás seguro de que tu código lo hace correctamente, |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1006 |
pregunta educadamente, en una de las listas de correo de |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1007 |
desarrollo de GNOME, si alguien puede realizar una prueba con |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1008 |
una tarjeta de video que soporta esta característica. Dicha |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1009 |
persona sabrá como arreglar el problema y te dirá al respecto. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1010 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1011 |
</sect3> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1012 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1013 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1014 |
<!-- Unix-related Issues --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1015 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1016 |
<sect2 id="unix"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1017 |
<title>Temas relacionados con Unix</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1018 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1019 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1020 |
Verifica los valores de retorno de <emphasis>todas</emphasis> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1021 |
las llamadas al sistema que el programa realice. Recuerda |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1022 |
que muchas de las llamadas al sistema pueden ser |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1023 |
interrumpidas (por ejemplo, la llamada retorna |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1024 |
<symbol>-1</symbol> y <symbol>errno</symbol> será definido a |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1025 |
<symbol>EINTR</symbol>) y deben reiniciarse. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1026 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1027 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1028 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1029 |
No asumas, por ejemplo, que la función |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1030 |
<function>write(2)</function> escribirá el buffer completo |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1031 |
de una vez; tienes que verificar el valor de retorno, el cual |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1032 |
indica el número de bytes escritos e intenta nuevamente |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1033 |
hasta que sea cero. Si el valor de retorno es |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1034 |
<symbol>-1</symbol>, recuerda |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1035 |
verificar el valor de errno y manejar el error |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1036 |
apropiadamente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1037 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1038 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1039 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1040 |
Si la aplicación llama a la función <function>fork(2)</function> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1041 |
sin llamar a <function>execve(2)</function>, recuerda que |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1042 |
el proceso hijo no puede hacer llamadas X. Normalmente se |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1043 |
puede diagnosticar este problema a través de un oscuro |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1044 |
mensaje de error de Xlib. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1045 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1046 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1047 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1048 |
Lee el libro «Advanced programming in the Unix |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1049 |
environment», de Richard Stevens, para aprender acerca de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1050 |
todos estos teassertmas y asegúrate que tus programas usan |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1051 |
la API de Unix de forma correcta. Si no deseas asegurarte |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1052 |
del uso correcto de las llamadas Unix, pregunta en las |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1053 |
listas de correo. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1054 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1055 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1056 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1057 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1058 |
<!-- Security Considerations --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1059 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1060 |
<sect1 id="security"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1061 |
<title>Consideraciones de seguridad</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1062 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1063 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1064 |
La seguridad es un tema complejo y en esta sección no se |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1065 |
puede explicar ni de lejos todo lo relacionado. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1066 |
Intentaremos indicar las situaciones más comunes donde tus |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1067 |
programas deben interesarse por la seguridad. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1068 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1069 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1070 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1071 |
Es muy fácil crear hoyos de seguridad a través de la creación |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1072 |
incorrecta de archivos temporales en <filename>/tmp</filename>. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1073 |
Debes garantizar que los archivos que usarás no existen al |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1074 |
momento de su creación. Usar un nombre de archivo «único» |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1075 |
e «impredecible» no es suficiente; debes garantizar que el archivo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1076 |
con ese nombre no será creado por alguien más entre el tiempo |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1077 |
en que se determina el nombre y el tiempo en que es efectivamente |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1078 |
creado (básicamente los ataques involucran que un tercero |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1079 |
cree un enlace simbólico al archivo que ellos quieren |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1080 |
sobreescribir). |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1081 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1082 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1083 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1084 |
Afortunadamente, esto es fácil de hacer. Usa el siguiente trozo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1085 |
de código: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1086 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1087 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1088 |
char *filename; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1089 |
int fd; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1090 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1091 |
do { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1092 |
filename = tempnam (NULL, "foo"); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1093 |
if (!filename) { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1094 |
fprintf (stderr, "Could not create temporary file name\n"); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1095 |
exit (EXIT_FAILURE); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1096 |
} |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1097 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1098 |
fd = open (filename, O_CREAT | O_EXCL | O_TRUNC | O_RDWR, 0600); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1099 |
free (filename); |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1100 |
} while (fd == -1);</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1101 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1102 |
Recuerde liberar <symbol>filename</symbol> usando la función |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1103 |
<function>free()</function> y llamar a las funciones |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1104 |
<function>close()</function> y <function>unlink()</function> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1105 |
con el archivo respectivo cuando haya terminado; aquí |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1106 |
liberamos <symbol>filename</symbol> con <function>free()</function> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1107 |
inmediatamente y así no causará una pérdida de memoria. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1108 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1109 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1110 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1111 |
Si deseas usar la biblioteca estándar de E/S, puede usar la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1112 |
función <function>fdopen()</function> para transformar el |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1113 |
descriptor de archivo en <symbol>FILE *</symbol>, o puedes |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1114 |
usar la función <function>tmpfile()</function> para hacerlo |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1115 |
en un solo paso. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1116 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1117 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1118 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1119 |
Intenta no usar buffers de tamaño fijo. Los buffers de tamaño |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1120 |
fijo para cadenas constituyen los típicas fuentes de hoyos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1121 |
explotables que pueden llegar a oscuros errores. Si definitivamente |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1122 |
debes usar buffers de tamaño fijo para cadenas, usa la función |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1123 |
<function>g_snprintf()</function> para especificar el tamaño |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1124 |
máximo del buffer. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1125 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1126 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1127 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1128 |
Glib proporciona la, muy conveniente, función |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1129 |
<function>g_strdup_printf()</function>, la cual funciona como |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1130 |
<function>sprintf()</function> pero automáticamente |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1131 |
localizará un buffer con el tamaño correcto. El valor de retorno |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1132 |
de esta función debiera ser liberada usando |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1133 |
<function>g_free()</function>. A menudo es más conveniente de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1134 |
usar que <function>g_snprintf()</function>, ya que esta no |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1135 |
limita el tamaño de las cadenas que un programa puede manipular. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1136 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1137 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1138 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1139 |
Si deseas concatenar un grupo de cadenas, puedes usar la función |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1140 |
<function>g_strconcat()</function>, la cual recibe una lista |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1141 |
variable de cadenas y un puntero a <symbol>NULL</symbol> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1142 |
como último argumento. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1143 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1144 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1145 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1146 |
<emphasis>Bajo ninguna circunstancia</emphasis> crees un |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1147 |
programa GTK+ con setuid root. Las bibliotecas de GTK+ y |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1148 |
GNOME son grandes y complejas y no han tenido auditorías |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1149 |
de seguridad. En cualquier caso, no debieras querer que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1150 |
una pieza tan grande código sea setuid root. Si definitivamente |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1151 |
requieres usar privilegios de root para algo, escribe un |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1152 |
programa que sea la interfaz de usuario como un proceso |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1153 |
normal, sin privilegios y crea un programa nexo que |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1154 |
tenga setuid y se encargue de realizar la operaciones |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1155 |
«peligrosas». Además, notifica a las listas |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1156 |
de correo de desarrollo de GNOME indicando que requieres |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1157 |
que alguien realice una auditoría de seguridad a tu |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1158 |
programa nexo. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1159 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1160 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1161 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1162 |
En general, si no estás seguro si puedes crear un riesgo de |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1163 |
seguridad, pregunte en las listas de correo de desarrollo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1164 |
de GNOME. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1165 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1166 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1167 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1168 |
Puedes leer más sobre temas de seguridad que debieras encontrar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1169 |
cuando programes una aplicación Unix en el documento |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1170 |
<ulink URL="http://www.fish.com/security/murphy.html">«Murphy's |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1171 |
Law and Computer Security»</ulink>, de Wietse Wenema. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1172 |
Hay otros documentos de seguridad en <ulink |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1173 |
URL="http://www.fish.com/security">el sitio fish.com</ulink> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1174 |
que podrías encontrar interesante. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1175 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1176 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1177 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1178 |
Puedes encontrar muchas otras guías útiles para escribir programas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1179 |
seguros en <ulink |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1180 |
url="http://www.dwheeler.com/secure-programs">«Secure |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1181 |
Programming for Linux and Unix HOWTO»</ulink>. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1182 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1183 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1184 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1185 |
<!-- Performace --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1186 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1187 |
<sect1 id="performance"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1188 |
<title>Rendimiento</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1189 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1190 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1191 |
No leas esta sección hasta que estés seguro que tu programa está |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1192 |
correcto, por ejemplo, cuando estés seguro que funciona |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1193 |
correctamente y no tiene errores. Es más importante que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1194 |
el código sea correcto a que sea rápido. Un programa lento |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1195 |
pero correcto es mucho mejor a uno rápido pero con errores. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1196 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1197 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1198 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1199 |
Si quieres optimizar tu programa, el primer paso es determinar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1200 |
un perfil al programa ejecutándolo con datos de la vida real |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1201 |
y recopilar puntos calientes que requieran optimización. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1202 |
Esto ayudará a determinar los lugares que necesitan optimizarse. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1203 |
Es importante que nunca adelantes la optimización si no tienes |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1204 |
una idea clara sobre donde está el problema. Podrías terminar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1205 |
perdiendo el tiempo en agilizar una rutina que no es la causa |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1206 |
del cuello de boteLla y como resultado podrías terminar ofuscando |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1207 |
dicha rutina. Esto podría reducir la legibilidad y mantenibilidad |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1208 |
del código sin ganancia visible en velocidad. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1209 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1210 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1211 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1212 |
Un código sencillo es bueno porque es fácil de entender y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1213 |
mantener. Si puedes escribir código simple que además sea |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1214 |
potente y rápido, tanto mejor. Si tienes un trozo de código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1215 |
inteligente pero que no es fácil de seguir, entonces documéntalo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1216 |
para que las personas no lo estropeen accidentalmente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1217 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1218 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1219 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1220 |
No escribas código que sea difícil de leer y mantener por el |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1221 |
sólo hecho de hacerlo más rápido. En cambio, prefiere un algoritmo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1222 |
agradable y claro e impleméntalo claramente. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1223 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1224 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1225 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1226 |
Hacer un buen trabajo en el caso general es a menudo mejor que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1227 |
tener muchos casos especiales. Sólo provee casos especiales |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1228 |
cuando se han identificado puntos débiles en el programa. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1229 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1230 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1231 |
<!-- List Management in Glib --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1232 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1233 |
<sect2 id="list"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1234 |
<title>Administración de listas en Glib</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1235 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1236 |
Evita emplear construcciones que terminen ralentizando |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1237 |
los algoritmos. Si usas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1238 |
<function>g_list_insert_sorted()</function> o |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1239 |
<function>g_list_append()</function> sin ningún cuidado, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1240 |
fácilmente puedes tener un algoritmo que se ejecuta en |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1241 |
tiempo proporcional a O(n<superscript>2</superscript>). |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1242 |
Normalmente puedes crear listas hacia atrás, usando |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1243 |
<function>g_list_prepend()</function>, e invirtiéndola |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1244 |
cuando hayas terminado usando |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1245 |
<function>g_list_reverse()</function>. Esta es una |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1246 |
operación O(n). Y si necesitas una lista ordenada, puedes |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1247 |
crearla de la misma forma (hacia atrás) y una vez terminado, |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1248 |
usar <function>g_list_sort()</function>. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1249 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1250 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1251 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1252 |
Si necesitas una lista ordenada en todo momento, puede ser |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1253 |
mejor emplear un estructura de árbol o un híbrido |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1254 |
lista/árbol. Si necesitas construir una lista añadiendo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1255 |
nodos a ella, mantén un puntero al final de la lista |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1256 |
y ve cambiándola según sea apropiado; esto te permitirá |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1257 |
insertar un nodo al inicio o al final en un tiempo constante. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1258 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1259 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1260 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1261 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1262 |
<!-- Localization --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1263 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1264 |
<sect1 id="l10n"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1265 |
<title>Localización</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1266 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1267 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1268 |
Se pretende que GNOME pueda ejecutarse en distintas localidades |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1269 |
y lenguajes, y los programas debieran tener esto en cuenta. No |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1270 |
tienes que localizar los programas, sólo debes permitir que éstos |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1271 |
sean traducibles y localizables. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1272 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1273 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1274 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1275 |
Debes recordar que los diferentes idiomas humanos tienen diferentes |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1276 |
gramáticas, así que no debieras suponer la forma de estructurar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1277 |
cada frase. Esto es importante, por ejemplo, cuando se |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1278 |
construyen cadenas a partir de trozos separados. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1279 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1280 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1281 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1282 |
La concatenación normalmente no es la forma correcta de construir |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1283 |
una cadena para que sea presentada al usuario. Normalmente terminan |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1284 |
en mensajes que no pueden ser traducidos correctamente en todos |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1285 |
los idiomas. En vez de concatenar, intenta usar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1286 |
<function>g_strdup_printf()</function>, por ejemplo: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1287 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1288 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1289 |
/* Una forma no muy buena */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1290 |
char *message = g_strconcat (_("Hello, "), |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1291 |
name, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1292 |
_(", would you like fries with that?"), |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1293 |
NULL); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1294 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1295 |
/* Una mejor forma */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1296 |
char *message = g_strdup_printf (_("Hello, %s, would you like fries with that?"), |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1297 |
name);</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1298 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1299 |
Esto permitirá al traductor mover %s donde corresponda según |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1300 |
lo requiera la gramática del idioma en el cual trabaja. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1301 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1302 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1303 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1304 |
Recuerda que no todos los idiomas forman los plurales añadiendo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1305 |
una «s» a las palabras. Además, las estructuras de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1306 |
frases pueden cambiar con los plurales. Por ejemplo, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1307 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1308 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1309 |
/* Una forma no muy buena */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1310 |
printf (_("%d happy monkey%s bouncing on the bed."), |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1311 |
num_monkeys, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1312 |
(num_monkeys > 1) ? "s", ""); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1313 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1314 |
/* Una mejor forma */ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1315 |
printf ((num_monkeys > 1) |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1316 |
? _("%d happy monkeys bouncing on the bed."), |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1317 |
: _("%d happy monkey bouncing on the bed."));</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1318 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1319 |
Se requiere de esta forma ya que el plural se forma de |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1320 |
distintas maneras en distintos idiomas, y la estructura |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1321 |
completa de la frase puede cambiar. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1322 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1323 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1324 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1325 |
Si el programa muestra fechas u horas, usa la función |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1326 |
<function>strftime()</function> para darles formato como |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1327 |
cadenas. Esto se encargará de usar la representación |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1328 |
adecuada de fecha y hora de acuerdo a la definición local |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1329 |
del usuario. Además, si el programa debe generar una |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1330 |
representación visual de un calendario, recuerda que en |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1331 |
algunos países se considera como primer día de la semana |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1332 |
el domingo y no el lunes. El programa debiera permitir |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1333 |
ambas formas de calendarios. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1334 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1335 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1336 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1337 |
Si el programa usa medidas, asegúrate de permitir tanto |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1338 |
el sistema métrico decimal como el sistema imperial (o anglosajón). |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1339 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1340 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1341 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1342 |
<!-- Binary Compatibility --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1343 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1344 |
<sect1 id="binary"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1345 |
<title>Compatibilidad binaria en las bibliotecas</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1346 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1347 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1348 |
Para bibliotecas estables y ya liberadas, es muy importante |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1349 |
intentar preservar la compatibilidad binaria en las revisiones |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1350 |
mayores del código. Los desarrolladores de bibliotecas deben |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1351 |
intentar no alienar a los usuarios realizando de forma frecuente |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1352 |
cambios que sean binariamente incompatibles en bibliotecas que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1353 |
son de producción. Por supuesto, en aquellas bibliotecas que se |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1354 |
encuentran en desarrollo o están etiquetadas como no finalizadas |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1355 |
puedes realizar tantos cambios como se necesiten. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1356 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1357 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1358 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1359 |
Una biblioteca típicamente exporta un número de interfaces. Estas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1360 |
incluyen nombres de rutinas, las firmas o prototipos de estas |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1361 |
rutinas, variables globales, estructuras, campos de estructura |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1362 |
(tanto los tipos como su significado), el significado de los |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1363 |
valores enumerados y la semántica de los archivos que la |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1364 |
biblioteca crea. Mantener compatibilidad binaria significa que |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1365 |
estas interfaces no cambiarán. Puedes añadir nuevas interfaces |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1366 |
sin romper la compatibilidad binaria, pero no puedes cambiar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1367 |
las ya existentes, ya que los programas antiguos no se ejecutarán |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1368 |
correctamente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1369 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1370 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1371 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1372 |
Esta sección incluye un número de ideas acerca de como lograr |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1373 |
que el código de una biblioteca sea compatible con sus |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1374 |
versiones anteriores. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1375 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1376 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1377 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1378 |
Mantener la compatibilidad binaria significa que los programas |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1379 |
y archivos objetos que fueron compilados con una versión |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1380 |
previa del código continuarán funcionando sin recompilar aún |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1381 |
cuando la biblioteca sea reemplazada. Es posible encontrar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1382 |
una descripción detallada en el nodo info |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1383 |
<filename>(libtool)Interfaces</filename> de la documentación |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1384 |
de GNU libtool. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1385 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1386 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1387 |
<!-- Private Information in Structures --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1388 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1389 |
<sect2 id="private"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1390 |
<title>Información privada en las estructuras</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1391 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1392 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1393 |
En el sistema GNOME es una tarea muy común crear un |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1394 |
nuevo <structname>GtkObject</structname> para crear |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1395 |
una estructura cuyo primer miembro corresponde a la |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1396 |
clase de la cual hereda este objeto y posteriormente |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1397 |
un número de variables de instancia que se añaden |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1398 |
después del primer miembro. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1399 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1400 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1401 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1402 |
Este esquema de diseño normalmente lleva a que el código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1403 |
sea difícil de actualizar y cambiar: si se quiere |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1404 |
extender un objeto donde se necesita mantener su estado |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1405 |
interno, los programadores necesitan recurrir a varios |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1406 |
hacks para mantener el mismo tamaño de las estructuras. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1407 |
Esto hace difícil agregar nuevos campos a las estructuras |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1408 |
públicas sin romper la compatibilidad binaria, ya que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1409 |
los campos de la estructura pueden cambiar y el tamaño |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1410 |
de las estructuras pueden variar. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1411 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1412 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1413 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1414 |
Por consiguiente, se sugiere una estrategia que puedan |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1415 |
adoptar los desarrolladores en el momento de crear nuevos |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1416 |
objetos. Esta estrategia asegurará la compatibilidad |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1417 |
binaria y al mismo tiempo mejorará la legibilidad y |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1418 |
mantenibilidad del código. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1419 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1420 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1421 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1422 |
La idea es que, para un objeto dado, el programador |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1423 |
debiera crear tres archivos: el primero que contiene |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1424 |
el contrato entre la biblioteca y el usuario (esto |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1425 |
es el archivo de encabezado que se instala en el |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1426 |
sistema); el segundo contiene la implementación del |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1427 |
objeto; y el tercer archivo contiene la definición |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1428 |
de la estructura para los campos privados o internos |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1429 |
que no necesitan estar en la estructura pública. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1430 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1431 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1432 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1433 |
La API pública de la estructura podría incluir un |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1434 |
puntero a un elemento privado, el cual podría |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1435 |
apuntar a los datos privado de la instancia. Las |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1436 |
rutinas de implementación podría dereferenciar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1437 |
este punto para acceder a los datos privados; por |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1438 |
supuesto, el puntero apunta a la estructura que se |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1439 |
localiza privadamente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1440 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1441 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1442 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1443 |
Por ejemplo, imagina que se crea el objeto GnomeFrob. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1444 |
La implementación del widget será dividido en tres |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1445 |
archivos: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1446 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1447 |
<table> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1448 |
<title>Archivos que muestran el widget de ejemplo |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1449 |
GnomeFrob</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1450 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1451 |
<tgroup cols="2"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1452 |
<thead> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1453 |
<row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1454 |
<entry>Archivo</entry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1455 |
<entry>Contenido</entry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1456 |
</row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1457 |
</thead> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1458 |
<tbody> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1459 |
<row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1460 |
<entry><filename>gnome-frob.h</filename></entry> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1461 |
<entry>API pública de GnomeFrob</entry> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1462 |
</row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1463 |
<row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1464 |
<entry><filename>gnome-frob.c</filename></entry> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1465 |
<entry>Implementación del objeto Gnomefrob</entry> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1466 |
</row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1467 |
<row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1468 |
<entry><filename>gnome-frob-private.h</filename></entry> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1469 |
<entry>Datos privados de la implementación de GnomeFrob. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1470 |
Debieras querer usar esto si planea compartir los |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1471 |
datos privados a través de varios archivos C. Si |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1472 |
limitas el uso de la información privada a sólo un |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1473 |
archivo, no necesita esto, ya que al definir la |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1474 |
estructura en el archivo de implementación se logrará |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1475 |
el mismo efecto.</entry> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1476 |
</row> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1477 |
</tbody> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1478 |
</tgroup> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1479 |
</table> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1480 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1481 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1482 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1483 |
<example> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1484 |
<title>Ejemplo de la API pública de <filename>gnome-frob.h</filename> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1485 |
</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1486 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1487 |
typedef struct _GnomeFrob GnomeFrob; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1488 |
typedef struct _GnomeFrobPrivate GnomeFrobPrivate; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1489 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1490 |
struct _GnomeFrob { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1491 |
GtkObject parent_object; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1492 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1493 |
int public_value; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1494 |
GnomeFrobPrivate *priv; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1495 |
} GnomeFrob; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1496 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1497 |
GnomeFrob *gnome_frob_new (void); |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1498 |
void gnome_frob_frobate (GnomeFrob *frob);</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1499 |
</example> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1500 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1501 |
<example> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1502 |
<title>Ejemplo de |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1503 |
<filename>gnome-frob-private.h</filename></title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1504 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1505 |
typedef struct { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1506 |
gboolean frobbed; |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1507 |
} GnomeFrobPrivate;</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1508 |
</example> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1509 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1510 |
<example> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1511 |
<title>Ejemplo de la implementación de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1512 |
<filename>gnome-frob.c</filename>.</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1513 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1514 |
void gnome_frob_frobate (GnomeFrob *frob) |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1515 |
{ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1516 |
g_return_if_fail (frob != NULL); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1517 |
g_return_if_fail (GNOME_IS_FROB (frob)); |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1518 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1519 |
frob->priv->frobbed = TRUE; |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1520 |
}</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1521 |
</example> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1522 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1523 |
Fíjese en el uso de prototipos de estructura: esto permite que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1524 |
el compilador realice más verificaciones en tiempo de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1525 |
compilación respecto a los tipos que estan siendo empleados. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1526 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1527 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1528 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1529 |
Este esquema es útil en algunas situaciones, particularmente |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1530 |
en el caso en el cual vale la pena almacenar un puntero |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1531 |
extra para una instancia del objeto. Si esto no fuera |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1532 |
posible, el programador necesitaría recurrir a otros |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1533 |
artilugios para evitar este problema. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1534 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1535 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1536 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1537 |
El propósito de tener un archivo de encabezado privado |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1538 |
extra para las estructuras privadas es permitir que las |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1539 |
clases derivadas usen esta información. Por supuesto, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1540 |
una buena práctica de programación indicaría que debiera |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1541 |
proveerse de interfaces o métodos de acceso precisamente |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1542 |
para que el programador no tenga que lidiar con |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1543 |
estructuras privadas. Se debiera intentar alcanzar un |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1544 |
balance entre buena práctica y pragmatismo cuando se |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1545 |
crean estructuras privadas y métodos de acceso públicos. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1546 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1547 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1548 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1549 |
Podrían aparecer algunos problemas, por ejemplo, cuando |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1550 |
se ha enviado un versión del código y que está siendo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1551 |
ampliamente usado y se desea extenderlo. Hay dos |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1552 |
soluciones para esto. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1553 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1554 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1555 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1556 |
La primera opción es encontrar un campo puntero en la |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1557 |
estructura pública que pueda hacerse privada y |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1558 |
reemplazar el puntero a la parte privada de la |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1559 |
estructura. Esto preserva el tamaño de la estructura |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1560 |
ya que, para los propósitos de GNOME, se puede |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1561 |
asumir que los punteros son todos del mismo tamaño. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1562 |
Se puede hacer que este campo apunte a la parte privada |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1563 |
de la estructura que será ubicada por la función que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1564 |
originalmente creaba la estructura pública. Es |
4
254f5b1f49db
2006-09-11 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
1
diff
changeset
|
1565 |
importante que este campo no sea llamado |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1566 |
<structfield>private</structfield>, se trata de |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1567 |
una palabra reservada de C++ y creará problemas cuando |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1568 |
el archivo de encabezado sea usado desde programas |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1569 |
fuentes C++ — mejor llámalo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1570 |
<structfield>priv</structfield>. Por supuesto, este |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1571 |
tipo de cambios sólo funcionará si el antiguo campo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1572 |
puntero solamente era usado para propósitos internos; |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1573 |
si los usuarios de la biblioteca habían tenido acceso |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1574 |
a dicho campo para cualquier propósito, será necesario |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1575 |
buscar otro campo o buscar una solución diferente. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1576 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1577 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1578 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1579 |
Si la estructura original fue derivada de |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1580 |
<structname>GtkObject</structname> y no hay campos punteros |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1581 |
que puedan ser reemplazados, puedes usar la facilidad |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1582 |
de datos de objetos de GTK+. Esto permite asociar punteros |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1583 |
a datos arbitrarios a objetos. Usa la función |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1584 |
<function>gtk_object_set_data()</function> para adjuntar |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1585 |
valores o estructuras a un objeto y cuando requieras usarlos |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1586 |
la función <function>gtk_object_get_data()</function> |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1587 |
permitirá recuperar dichos valores. Esto puede ser empleado |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1588 |
para adjuntar una estructura privada a un objeto GTK+. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1589 |
Esto no es tan eficiente como el enfoque anterior, pero podría |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1590 |
no importar para el dominio particular de la aplicación. Si |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1591 |
los datos serán accedidos frecuentemente, se pueden usar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1592 |
quarks en vez de cadenas para agregar y obtenerlos a través |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1593 |
de las funciones |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1594 |
<function>gtk_object_set_data_by_id()</function> y |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1595 |
<function>gtk_object_get_data_by_id()</function>, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1596 |
respectivamente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1597 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1598 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1599 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1600 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1601 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1602 |
<!-- Modifying Other People's Code --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1603 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1604 |
<sect1 id="modify"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1605 |
<title>Cómo modificar el código de otros</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1606 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1607 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1608 |
GNOME es un proyecto de equipo, así las contribuciones de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1609 |
código a programas de otras personas siempre son apreciadas. |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1610 |
Sigue los siguientes lineamientos cuando modifiques el código |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1611 |
de otra persona. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1612 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1613 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1614 |
<!-- General Etiquette --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1615 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1616 |
<sect2 id="etiquette"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1617 |
<title>Etiqueta general</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1618 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1619 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1620 |
Siga el mismo estilo de indentación usado en el código |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1621 |
original. El código original perdurará durante más tiempo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1622 |
que el que le pueda dedicar, mantener las |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1623 |
contribuciones consistentes respecto a la indentación |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1624 |
es más importante que forzar su estilo de indentación |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1625 |
en el código. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1626 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1627 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1628 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1629 |
Aunque sus parches pueden implementar una |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1630 |
funcionalidad muy llamativa, es muy molesto para el |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1631 |
autor tener que reindentar el código antes de aplicar |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1632 |
un parche al código principal. Así, si el código |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1633 |
original luce como: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1634 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1635 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1636 |
int |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1637 |
sum_plus_square_of_indices (int *values, int nvalues) |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1638 |
{ |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1639 |
int i, total; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1640 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1641 |
total = 0; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1642 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1643 |
for (i = 0; i < nvalues; i++) |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1644 |
total += values[i] + i * i; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1645 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1646 |
return total; |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1647 |
}</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1648 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1649 |
entonces no agregues una función que luce como: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1650 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1651 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1652 |
int sum_plus_cube_of_indices(int *values, int nvalues) { |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1653 |
int i,total; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1654 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1655 |
total=0; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1656 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1657 |
for (i=0;i<nvalues;i++) |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1658 |
total+=values[i]+i*i*i; |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1659 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1660 |
return total; |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1661 |
}</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1662 |
|
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1663 |
En el segundo ejemplo, la indentanción y ubicación de las |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1664 |
llaves no coincide con el código original, no hay espacios |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1665 |
alrededor de los operadores y el código no se parecerá |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1666 |
al original. Sigue el estilo de programación del autor |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1667 |
original del programa y los parches que envías tendrán una mejor |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1668 |
oportunidad de ser aceptados. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1669 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1670 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1671 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1672 |
No repares errores con artilugios o hacks rápidos; repáralo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1673 |
correctamente. Tampoco añadas características como hacks o |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1674 |
con código que no sea extensible; es mejor rehacer el |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1675 |
código original para que sea extensible y luego agrega |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1676 |
la nueva característica, utilizando el código como |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1677 |
estructura. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1678 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1679 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1680 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1681 |
La limpieza de código siempre es bienvenida; si encuentras |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1682 |
trozos de código feos y sucios en GNOME, será muy |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1683 |
apreciado si envías parches que hagan el código más |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1684 |
agradable y fácil de mantener. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1685 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1686 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1687 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1688 |
Como siempre, asegúrate de que el código que contribuye compila |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1689 |
sin ningún tipo de aviso, que tenga los prototipos correctos |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1690 |
y que sigan las directrices de este documento. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1691 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1692 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1693 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1694 |
<!-- Documenting Your Changes --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1695 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1696 |
<sect2 id="document"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1697 |
<title>Cómo documentar los cambios</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1698 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1699 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1700 |
GNOME utiliza los archivos &ChangeLog; estándar de GNU para |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1701 |
documentar los cambios al código. Cada cambio que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1702 |
efectúes a un programa <emphasis>debe</emphasis> ser |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1703 |
acompañado por una registro en el &ChangeLog;. Esto |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1704 |
permite a las personas leer la historia de cambios |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1705 |
del programa de una manera sencilla. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1706 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1707 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1708 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1709 |
Si usas &Emacs;, puede agregar las líneas al |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1710 |
&ChangeLog; presionando «C-x 4 a». |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1711 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1712 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1713 |
<note> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1714 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1715 |
Si conoces la forma de realizarlos para otros editores |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1716 |
populares, agradeceremos que nos lo hagas saber para |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1717 |
expandir este documento. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1718 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1719 |
</note> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1720 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1721 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1722 |
Cada registro en el &ChangeLog; tiene un forma general: |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1723 |
<programlisting> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1724 |
1999-04-19 J. Random Hacker <jrandom@foo.org> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1725 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1726 |
* foo.c (some_function): Changed the way MetaThingies are |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1727 |
frobnicated. We now use a hash table instead of a linked list to |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1728 |
look MetaThingies up. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1729 |
(some_other_function): Support the MetaThingies hash table by |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1730 |
feeding it when necessary |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1731 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1732 |
* bar.c (another_function): Fixed bug where it would print "Take |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1733 |
me to your leader" instead of "Hello, World". |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1734 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1735 |
1999-04-18 Johnny Grep <grep@foobar.com> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1736 |
|
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1737 |
* baz.c (ugly_function): Beautified by using a helper function.</programlisting> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1738 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1739 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1740 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1741 |
Si agregas una nueva función a una biblioteca, escribe |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1742 |
la referencia necesaria y la documentación de programación. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1743 |
Puedes escribir una referencia a la documentacion |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1744 |
en línea usando el formato de comentarios descrito en |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1745 |
<filename>gnome-libs/devel-docs/api-comment-style.txt</filename>. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1746 |
Si usas &Emacs;, |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1747 |
<filename>gnome-libs/tools/gnome-doc/gnome-doc.el</filename> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1748 |
provee un acelerador que puede ser empleado para añadir |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1749 |
una plantilla de documentación al programa. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1750 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1751 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1752 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1753 |
<!-- Changing Code on CVS --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1754 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1755 |
<sect2 id="change-cvs"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1756 |
<title>Cómo actualizar en CVS</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1757 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1758 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1759 |
Si tienes acceso de escritura en el repositorio CVS de GNOME, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1760 |
debes seguir algunas políticas adicionales. Ya que estás |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1761 |
trabajando en la copia maestra de los fuentes, debes tener |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1762 |
especial cuidado. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1763 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1764 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1765 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1766 |
Si estás reparando algo en un programa que está en el CVS |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1767 |
o si estás añadiendo una funcionalidad allí, y si no has |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1768 |
estado trabajando en dicho programa por un período largo |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1769 |
de tiempo, pregunta al autor original antes de aplicar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1770 |
sus parches. Generalmente está bien formular estas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1771 |
preguntas en la lista de correo |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1772 |
<filename>gnome-devel-list</filename>. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1773 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1774 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1775 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1776 |
Una vez que el autor del programa te indique como un |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1777 |
‘contribuyente frecuente’, puedes comenzar |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1778 |
aplicar los parches sin previo consentimiento. Si |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1779 |
quieres aplicar una reorganización mayor del código, |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1780 |
debieras preguntar primero. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1781 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1782 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1783 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1784 |
Algunos módulos en el CVS tienen rama estable y de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1785 |
desarrollo. Normalmente el desarrollo debiera ir |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1786 |
en la rama HEAD en el CVS, y la rama estable debiera |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1787 |
mantenerse separadamente. Generalmente no se añaden |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1788 |
nuevas características a las rama estable; sólo |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1789 |
se reparan errores. Repara el error a la rama estable |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1790 |
y pregunta al autor principal sobre la política para |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1791 |
mezclar parches en la rama de desarrollo; algunos |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1792 |
autores prefieren hacerlo por lotes, mientras hay otros |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1793 |
que prefieren mezclarlos inmediatamente. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1794 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1795 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1796 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1797 |
Si trabajas en una característica experimental que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1798 |
podría estropear mucho código, crea una rama en el CVS |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1799 |
y realiza los cambios allí. No los mezcles en la rama |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1800 |
principal de desarrollo hasta que te encuentres |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1801 |
razonablemente seguro que funcionará correctamente y que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1802 |
se integrará bien dentro del resto del código. El uso de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1803 |
una rama para trabajo en características experimentales |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1804 |
te permitirá evitar interrumpir el trabajo de otros |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1805 |
desarrolladores. Pregunte al autor principal antes de |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1806 |
mezclar tu rama y traer sus cambios a la parte principal |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1807 |
del árbol. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1808 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1809 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1810 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1811 |
Como siempre, agrega un registro en el &ChangeLog; |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1812 |
cuando realices un cambio. Algunos autores tienen la |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1813 |
política de rechazar, correctamente, los cambios que |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1814 |
no tienen tal registro. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1815 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1816 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1817 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1818 |
Algunas veces existen diferentes políticas para los módulos, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1819 |
verifica si el módulo contiene un archivo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1820 |
<filename>README.CVS</filename>. Si es así, lee ese archivo |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1821 |
antes de realizar cambios. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1822 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1823 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1824 |
<!-- Branches and Tags --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1825 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1826 |
<sect3 id="branches"> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1827 |
<title>Ramas y marcas</title> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1828 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1829 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1830 |
Tenemos una convención para nombrar las ramas y marcas o |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1831 |
puntos de una rama en el repositorio de CVS de GNOME. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1832 |
Las marcas deben ser definidas después que se libera cada |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1833 |
nueva version y deben ser de la forma |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1834 |
«MODULE_MAJOR_MINOR_MICRO», por ejemplo, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1835 |
«GNOME_LIBS_1_0_53». Los puntos de una rama |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1836 |
deben ser de la forma «MODULE_BRANCH_ANCHOR», |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1837 |
como en «GNOME_LIBS_1_0_ANCHOR». Finalmente, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1838 |
una rama raíz en este punto debiera ser de la forma |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1839 |
«module-branch», por ejemplo, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1840 |
«gnome-libs-1-0». Usa esta convención cuando |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1841 |
crees marcas, puntos de una rama y ramas. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1842 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1843 |
</sect3> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1844 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1845 |
<!-- Additional CVS Policies --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1846 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1847 |
<sect3 id="cvs-policies"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1848 |
<title>Políticas adicionales del CVS</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1849 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1850 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1851 |
CVS no proporciona un manera preconstruida para renombrar archivos |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1852 |
o moverlos a otros directorios. Debiera planificar |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1853 |
cuidadosamente el árbol del repositorio de tal forma que evite |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1854 |
mover o renombrar archivos. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1855 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1856 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1857 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1858 |
En el caso que debas mover o renombrar un archivo en el CVS, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1859 |
<emphasis>NO EJECUTES</emphasis> «cvs remove» |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1860 |
y luego «cvs add». Si lo haces, los archivos |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1861 |
«nuevos» perderán la capacidad de seguir su |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1862 |
historial de cambios, ya que desde el punto de vista de CVS |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1863 |
serán archivos completamente nuevos en su revisión |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1864 |
inicial. Un objetivo del repositorio CVS de GNOME es |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1865 |
poder seguir la historia de los fuentes de manera |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1866 |
precisa desde el inicio. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1867 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1868 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1869 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1870 |
<emphasis>Por favor</emphasis>, pregunte al mantenedor |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1871 |
del CVS, esto es, una persona conocida con acceso shell |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1872 |
a la máquina con CVS, para realizar la cirugía necesaria |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1873 |
para mover los archivos por ti. Esto requiere |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1874 |
conocimiento de la forma en que funciona CVS y debe ser |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1875 |
hecho muy cuidadosamente. La recuperación de un error de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1876 |
«cvs add/remove» es una tarea muy desagradable; |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1877 |
Si mueves archivo en esta forma equivocada, un mantenedor |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1878 |
del CVS, quien tendrá que ir a reparar y realizar el trabajo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1879 |
sucio, reclamará las penas del infierno. Así es que mejor |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1880 |
pregunta por una persona que pueda mover los archivos por |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1881 |
ti. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1882 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1883 |
</sect3> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1884 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1885 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1886 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1887 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1888 |
<!-- Maintaining a Package --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1889 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1890 |
<sect1 id="maintain"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1891 |
<title>Cómo mantener un paquete</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1892 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1893 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1894 |
Un mantenedor de paquete es una persona que se preocupa de |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1895 |
liberar versiones, integrar cambios de otras personas y, |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1896 |
en general, ser responsable de un paquete. Durante el |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1897 |
período de vida de un paquete, éste puede cambiar de |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1898 |
mantenedores, por ejemplo, una persona que pierde interés |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1899 |
o que ya no puede dedicarle tiempo suficiente como mantenedor. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1900 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1901 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1902 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1903 |
En conformidad con los Estándares de programación de GNU, GNOME |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1904 |
usa GNU Autoconf para manejar la portabilidad y GNU Automake |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1905 |
para crear makefiles. Automake hace especialmente fácil |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1906 |
construir paquetes correctos, así que si eres un mantenedor |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1907 |
de paquetes, debieras aprender como usarlo. Autoconf y |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1908 |
Automake tienen muchas áreas truculentas, así que siéntete |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1909 |
libre de pedir ayuda en las listas de desarrollo de GNOME |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1910 |
si tienes preguntas sobre la forma correcta de construir |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1911 |
makefiles para tu paquete. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1912 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1913 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1914 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1915 |
Un número de personas regularmente contribuye con traducciones |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1916 |
localizadas de los catálogos de mensajes en los paquetes de |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1917 |
GNOME. Para mantener las traducciones actualizadas tanto como |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1918 |
sea posible, los mantenedores deben coordinarse con los |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1919 |
traductores para que estos últimos puedan actualizar las |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1920 |
traducciones a tiempo cuando se va a liberar una nueva |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1921 |
versión del paquete. Una buena forma de notificar a los |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1922 |
traductores consiste en enviar un mensaje a |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1923 |
<email>gnome-i18n@gnome.org</email> con suficientes |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1924 |
días de anticipación. Esto les permitirá actualizar sus |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1925 |
respectivas traducciones a tiempo para puedan ser incluidas |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1926 |
en la siguiente versión liberada. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1927 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1928 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1929 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1930 |
<!-- Memory Leaks Agenda --> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1931 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1932 |
<sect1 id="memory-leak"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1933 |
<title>¿Por qué preocuparse por la pérdida de memoria?</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1934 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1935 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1936 |
Échale un vistazo a la lista de errores de Mozilla y una cosa es |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1937 |
clara: el nuevo código que entra a Mozilla no es (o no ha sido) |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1938 |
verificado suficientemente por pérdida de memoria y problemas |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1939 |
de acceso. |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1940 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1941 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1942 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1943 |
Las pérdidas de memoria son malas por varias razones: |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1944 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1945 |
<itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1946 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1947 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1948 |
Se comerá el área de intercambio lentamente. A la larga tu |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1949 |
programa, o hasta tu máquina sucumbirán. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1950 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1951 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1952 |
Nadie quiere que su programa o biblioteca adquiera la |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1953 |
reputación de ser una porquería sólo porque uno ha sido un |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1954 |
vago. Déjaselo a las personas en Redmond. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1955 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1956 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1957 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1958 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1959 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1960 |
Ocultan el mal uso de la memoria. Si olvidas liberar la |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1961 |
memoria, no hay forma de atrapar las lecturas y |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1962 |
escrituras a esos trozos de memoria. Si, posteriormente, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1963 |
reparas la pérdida, una parte completamente distinta |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1964 |
del programa podría fallar. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1965 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1966 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1967 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1968 |
<listitem> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1969 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1970 |
Cuando se usan verificadores automáticos de memoria, |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1971 |
nadie quiere ver 600 problemas, de los cuales 500 |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1972 |
se encuentran en las bibliotecas de soporte. Lo que |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1973 |
deseas saber es que estaba todo limpio antes que comenzara |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1974 |
el caos, y por lo tanto, esos problemas te corresponde a ti |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1975 |
arreglarlos. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1976 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1977 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1978 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1979 |
Este es uno de los problemas de Mozilla actualmente: |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1980 |
pierde memoria sin parar así que ¿cómo vas a saber si has |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1981 |
contribuido al problema? |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1982 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1983 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1984 |
</itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1985 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1986 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1987 |
<sect2 id="memory-advice"> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1988 |
<title>Algunos consejos contra la pérdida de memoria.</title> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1989 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1990 |
<para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1991 |
<itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1992 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1993 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1994 |
Usa «<symbol>const</symbol>» donde sea posible (para |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1995 |
punteros obviamente). |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
1996 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
1997 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1998 |
Si un argumento es «<symbol>const</symbol>», entonces |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
1999 |
indudablemente la función llamada no liberará la memoria por |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2000 |
ti. |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2001 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2002 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2003 |
Si el tipo de resultado de una función es |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2004 |
«<symbol>const</symbol>», entonces |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2005 |
claramente no eres responsable por liberarlo. |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2006 |
<emphasis>Probablemente</emphasis> lo será para un resultado |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2007 |
distinto de «<symbol>const</symbol>» (que no sea un entero |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2008 |
o algo similar). |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2009 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2010 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2011 |
Fíjate en que, desafortunadamente, esto no funciona muy bien |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2012 |
con los objetos que cuentan referencias. Funciona bien |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2013 |
con cadenas. |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2014 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2015 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2016 |
Dado que C usa llamadas por valor, no tiene sentido |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2017 |
aplicar «<symbol>const</symbol>» a tipos |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2018 |
<symbol>int</symbol>, <symbol>double</symbol> y similares. |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2019 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2020 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2021 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2022 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2023 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2024 |
<emphasis>Documenta las responsabilidades.</emphasis> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2025 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2026 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2027 |
<itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2028 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2029 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2030 |
Si una función toma la propiedad de un objeto/referencia, |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2031 |
sé explícito acerca de ello. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2032 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2033 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2034 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2035 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2036 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2037 |
Indica siempre si el que llama a la función debiera |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2038 |
liberar/desreferenciar los resultados. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2039 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2040 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2041 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2042 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2043 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2044 |
Documenta <emphasis>cómo</emphasis> entregar la |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2045 |
memoria: unref, free, g_free, ... |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2046 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2047 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2048 |
</itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2049 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2050 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2051 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2052 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2053 |
<emphasis>Se cuidadoso cuando uses copiar-y-pegar.</emphasis> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2054 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2055 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2056 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2057 |
El proceso de cortado y pegado no mejora el código, al |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2058 |
contrario de lo que creen muchos programadores. Primero, |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2059 |
mira el código y si intenta producir muchas copias, quizás |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2060 |
necesite una función ayudante o nexo. <!-- FIXME: mejor |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2061 |
traducción de helper --> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2062 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2063 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2064 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2065 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2066 |
<para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2067 |
<emphasis>Libera todo antes de salir.</emphasis> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2068 |
</para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2069 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2070 |
Esto lleva tiempo, así que quizás debieras hacerlo |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2071 |
sólo dentro de una condición. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2072 |
</para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2073 |
<para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2074 |
El motivo de este consejo es que los verificadores de memoria |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2075 |
toman tiempo en determinar entre una pérdida que tu conoces |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2076 |
y no te preocupan, y las otras pérdidas. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2077 |
</para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2078 |
</listitem> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2079 |
|
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2080 |
<listitem> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2081 |
<para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2082 |
<emphasis>No dejes punteros sueltos en tus estructuras de |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2083 |
datos.</emphasis> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2084 |
</para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2085 |
|
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2086 |
<para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2087 |
Asigna <symbol>NULL</symbol> o |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2088 |
<symbol>(void *)0xdeadbeef</symbol> para los miembros |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2089 |
liberados a menos que vayas a liberar la estructura a la |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2090 |
que pertenecen. |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2091 |
</para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2092 |
|
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2093 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2094 |
Los punteros sueltos tienen la mala tendencia a ocultar pérdidas |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2095 |
de memoria. |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2096 |
</para> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2097 |
</listitem> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2098 |
|
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2099 |
<listitem> |
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2100 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2101 |
<emphasis>Ejecuta el nuevo código en un ciclo 1 millón de |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2102 |
veces.</emphasis> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2103 |
</para> |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2104 |
|
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2105 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2106 |
Si pierdes memoria, lo sabrás — sólo sigue al proceso con |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2107 |
<command>top</command> en otra ventana. Podrías querer |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2108 |
especificar a top el <symbol>PID</symbol> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2109 |
del proceso con la opción <parameter>-p</parameter>. |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2110 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2111 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2112 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2113 |
<listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2114 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2115 |
<emphasis>Repáralo ahora, no después.</emphasis> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2116 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2117 |
|
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2118 |
<para> |
6
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2119 |
No escribas una porquería de código; más temprano que |
4e44e6123b42
Recode from latin1 to utf-8
"German Poo-Caaman~o <gpoo@gnome.org>"
parents:
5
diff
changeset
|
2120 |
tarde te pesará. |
1
52d161ada41e
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
0
diff
changeset
|
2121 |
</para> |
0
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2122 |
</listitem> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2123 |
</itemizedlist> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2124 |
</para> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2125 |
</sect2> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2126 |
</sect1> |
7e52f5046fb6
2006-09-07 German Poo-Caaman~o <gpoo@ubiobio.cl>
"German Poo-Caaman~o <gpoo@ubiobio.cl>"
parents:
diff
changeset
|
2127 |
</article> |